进程和线程的区别和联系(简单说明一下进程和程序的区别)

进程和线程的区别和联系(简单说明一下进程和程序的区别)

  大家平时打开任务管理器的时候,就能看到系统进程和系统服务。

  有好多是新安装的应用程序进程和服务,但是还有很多系统进程和服务,这些进程和服务有哪些?分别起什么作用?能不能关闭和删除?今天我们就以本篇文章内容详细阐述一下"Windows自带的系统进程和服务"!

  1、进程阐述

  进程定义:一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位。

  进程和线程区别: 线程是进程的一个实体,是调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。

  例如,有一个Web服务器要进程的方式并发地处理来自不同用户的网页访问请求的话,可以创建父进程和多个子进程的方式来进行处理,但是创建一个进程要花费较大的系统开销和占用较多的资源。除外,这些不同的用户子进程在执行的时候涉及到进程,上下文切换是一个复杂的过程。所以,为了减少和创建的开销,提高执行效率和节省资源,人们在操作系统中引入了"线程(thread)"的概念。 进程的作用:进程是为了提高CPU的执行效率,减少因为程序等待带来的CPU空转以及其他计算机软硬件资源的浪费而提出来的。

  进程与程序的区别:程序是一组指令的集合,它是静态的实体,没有执行的含义。而进程是一个动态的实体,有自己的生命周期。一般说来,一个进程肯定与一个程序相对应,并且只有一个,但是一个程序可以有多个进程,或者一个进程都没有。除此之外,进程还有并发性和交往性。简单地说,进程是程序的一部分,程序运行的时候会产生进程。总结: 线程是进程的一部分,进程是程序的一部分。

  2、系统服务阐述

  系统服务基本定义:服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。

  系统服务的作用 : (1)启动、停止、暂停、恢复或禁用远程和本地计算机服务; (2)管理本地和远程计算机上的服务; (3)设置服务失败时的故障恢复操作; (4)为特定的硬件配置文件启用或禁用服务; (5)查看每个服务的状态和描述。

  常见系统进程详解以及开启和终止进程的方法

  首先根据进程的重要程度可以分为系统进程和附加进程,基本的系统进程是系统运行的必要条件,只有这些进程处于活动状态的时候,系统才能正常运行,而附加进程不是必须的,可以按需来启动结束。

  1、系统必要进程

  system process

  进程文件: [system process] or [system process]进程名称: Windows内存处理系统进程描述: Windows页面内存管理进程,拥有0级优先。

  alg.exe

  进程文件:alg or alg.exe 进程名称:应用层网关服务 描述:这是一个应用层网关服务用于网络共享 进程文件:csrss or 进程名称: Runtime Server Subsystem 描述:客户端服务子系统,用以控制Windows图形相关子系统。

  ddhelp.exe

  进程文件: ddhelp or ddhelp.exe进程名称: DirectDraw Helper描述: DirectDraw Helper是DirectX这个用于图形服务的一个组成部分。 进程文件:dllhost or 进程名称:DCOM DLL Host进程 描述:DCOM DLL Host进程支持基于COM对象支持DLL以运行Windows程序 进程文件:explorer or 进程名称:程序管理 描述:Windows Program Manager或者Windows Explorer用于控制Windows图形Shell,包括开始菜单、任务栏,桌面和文件管理。这个进程主要负责显示系统桌面上的图标以及任务栏

  inetinfo.exe

  进程文件: inetinfo or inetinfo.exe进程名称: IIS Admin Service Helper描述: InetInfo是Microsoft Internet Infomation Services (IIS)的一部分,用于Debug调试除错。internat.exe

  进程文件: internat or internat.exe进程名称: Input Locales描述: 这个输入控制图标用于更改类似国家设置、键盘类型和日期格式 进程文件: kernel32 or 进程名称: Windows壳进程描述: Windows壳进程用于管理多线程、内存和资源 进程文件:lsass or 进程名称:本地安全权限服务 描述:这个本地安全权限服务控制Windows安全机制。进程详解:管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务) 产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket),也就是本地安全权限服务,属于Windowsde的核心进程之一也被黑客千方百计的寻找漏洞,大名鼎鼎的震荡波利用的就是其中一个漏洞

  mdm.exe

  进程文件: mdm or mdm.exe进程名称: Machine Debug Manager描述: Debug除错管理用于调试应用程序和Microsoft Office中的Microsoft Script Editor脚本编辑器

  mmtask.tsk

  进程文件: mmtask or mmtask.tsk进程名称: 多媒体支持进程描述: 这个Windows多媒体后台程序控制多媒体服务

  mprexe.exe

  进程文件: mprexe or mprexe.exe进程名称: Windows路由进程描述: Windows路由进程包括向适当的网络部分发出网络请求

  msgsrv32.exe

  进程文件: msgsrv32 or msgsrv32.exe进程名称: Windows信使服务描述: Windows信使服务调用Windows驱动和程序管理在启动

  mstask.exe

  进程文件: mstask or mstask.exe进程名称: Windows计划任务描述: Windows计划任务用于设定继承在什么时间或者什么日期备份或者运行

  regsvc.exe

  进程文件: regsvc or regsvc.exe进程名称: 远程注册表服务描述: 远程注册表服务用于访问在远程计算机的注册表

  rpcss.exe

  进程文件: rpcss or rpcss.exe进程名称: RPC Portmapper描述: Windows 的RPC端口映射进程处理RPC调用(远程模块调用)然后把它们映射给指定的服务提供者

  services.exe

  进程文件:services or services.exe 进程名称:Windows Service Controller 描述:管理smss.exe

  进程文件: smss or smss.exe进程名称: Session Manager Subsystem描述: 该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及COM调用Win32壳子系统和运行在Windows登陆过程

  snmp.exe

  进程文件: snmp or snmp.exe进程名称: Microsoft SNMP Agent描述: Windows简单的网络协议代理(SNMP)用于监听和发送请求到适当的网络部分

  spool32.exe

  进程文件: spool32 or spool32.exe进程名称: Printer Spooler描述: Windows打印任务控制程序,用以打印机就绪

  spoolsv.exe

  进程文件:spoolsv or spoolsv.exe 进程名称:Printer Spooler Service 描述:Windows打印任务控制程序,用以打印机就绪

  stisvc.exe

  进程文件: stisvc or stisvc.exe进程名称: Still Image Service描述: Still Image Service用于控制扫描仪和数码相机连接在Windows 进程文件:svchost or 进程名称:Service Host Process 描述:Service Host Process是一个标准的动态连接库主机处理服务。进程详解:是一个系统的核心进程,并不是病毒进程。但由于Svchost.exe进程的特殊性,所以病毒也会千方百计的入侵Svchost.exe。通过察看Svchost.exe进程的执行路径可以确认是否中毒 ,Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。其实Svchost.exe是Windows 的一个核心进程。Svchost.exe不单单只出现在Windows XP中,在使用NT内核的中都会有Svchost.exe的存在。一般在Windows 2000中Svchost.exe进程的数目为2个,而在Windows XP中Svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个Svchost.exe不用那么担心。如果你怀疑计算机有可能被病毒感染,Svchost.exe的服务出现异常的话通过搜索Svchost.exe文件就可以发现异常情况。一般只会找到一个在:"C:WindowsSystem32"目录下的Svchost.exe程序。如果你在其他目录下发现Svchost.exe程序的话,那很可能就是中毒了。

  system

  进程文件: system or system进程名称: Windows System Process描述: Microsoft Windows系统进程。

  taskmgr.exe

  进程文件:taskmgr or taskmgr.exe 进程名称:The Windows Task Manager 描述:Windows任务管理器,是Windows任务管理执行者

  taskmon.exe

  进程文件: taskmon or taskmon.exe进程名称: Windows Task Optimizer描述: windows任务优化器监视你使用某个程序的频率,并且通过加载那些经常使用的程序来整理优化硬盘tcpsvcs.exe

  进程文件: tcpsvcs or tcpsvcs.exe进程名称: TCP/IP Services描述: TCP/IP Services Application支持透过TCP/IP连接局域网和Internet

  winlogon.exe

  进程文件:winlogon or winlogon.exe 进程名称:Windows Logon Process 描述:Windows NT用户登陆程序。

  winmgmt.exe

  进程文件: winmgmt or winmgmt.exe进程名称: Windows Management Service描述: Windows Management Service透过Windows Management Instrumentation data (WMI)技术处理来自应用客户端的请求

  wuauclt.exe

  进程文件:wuauclt or wuauclt.exe 进程名称:AutoUpdate for Windows 描述:Windows自动升级, 进程详解:Wuauclt.exe是主管Windows自动升级的系统进程. 可以在线检测最近Windows更新如果你没有开启自动升级的话就不会有这项进程了,而且就算你开启了它,它也不是任何时候都开启的

  wuauc.exe

  进程文件:wuauc or wuauc.exe 进程名称:Automatic Updates 自动升级 进程描述:wuauc.exe为Windows管理自动更新。这个程序自动检查最近Windows的更新.System Idle Process (这个在下面会单独讲到)

  2、查看进程和终止进程的方法

  利用任务管理器的方法就不说了,说点高级的!

  查看进程的方法(两种)

  开始 --> 运行wmic,出现dos窗口后输入 process 就可以看到进程路径了,具体如下:

  使用"tasklist"命令查看具体进程的pid,具体如下:

  "Tasklist"命令是一个用来显示运行在本地或远程计算机上的所有进程的命令行工具,带有多个执行参数。

  它的使用格式为:TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]

  参数列表:/S system 指定连接到的远程系统(IP)。/U [domain]user 指定使用哪个用户执行这个命令。/P [password] 为指定的用户指定密码。/M [module] 列出调用指定的 DLL 模块的所有进程。 如果没有指定模块名,显示每个进程加载的所有模块。/SVC 显示每个进程中的服务。/V 指定要显示详述信息。/FI filter 显示一系列符合筛选器指定的进程。/FO format 指定输出格式,有效值: "TABLE"、"LIST"、"CSV"。/NH 指定栏标头不应该在输出中显示。 只对 "TABLE" 和 "CSV" 格式有效。

  查看远程系统的进程在命令提示符下输入:"tasklist /s 218.22.123.26 /u jtdd /p 12345678"(不包括引号)其中/s参数后的"218.22.123.26"指要查看的远程系统的IP地址; /u后的"jtdd"指tasklist命令使用的用户帐号,它是远程系统上的一个合法帐号; /p后的"12345678"指jtdd帐号的密码,。这样,通过上面的命令,我们就可以查看到远程系统的进程了。

  2、终止进程

  终止进程可以采用" taskkill "命令,来杀死进程。如要杀死本机的 " notepad.exe "进程。首先,使用Tasklist查找它的PID,系统显示本机" notepad.exe "进程的PID值为" 1132 ",然后运行" taskkill /pid 1132 "即可,或则运行" taskkill /IM notepad.exe "也可;其中" /pid "参数后面跟要终止进程的PID值," /IM "参数后面为进程的图像名。

  taskkill /f /t /im 进程名称

  /f 杀死所有进程及子进程

  /t 强制杀死

  /im 用镜像名称作为进程信息

  /pid 用进程id作为进程信息。

  例子:taskkill /im 360zip.exe /f

  (一)打开系统服务的方法

  方法一:通过运行命令打开

  按win+R键,打开运行,输入services.msc,回车,如下图所示:

  方法二:通过计算机管理打开

  方法三:通过任务管理器打开服务

  (二)、常见的系统服务详解

  1.显示名称:Alerter

  进程名称:svchost.exe -k LocalService◎微软描述:通知所选用户和计算机有关系统管理级警报。如果服务停止,使用管理警报的程序将不会受到它们。如果此服务被禁用,任何直接依赖它的服务都将不能启动

  补充描述:警报器。该服务进程名为Services.exe,一般家用计算机根本不需要传送或接收计算机系统管理来的警示(AdministrativeAlerts),除非你的计算机用在局域网络上。

  默认:禁用

  建议:禁用

  2.显示名称:Application Layer Gateway Service

  进程名称:alg.exe

  微软描述:为 Internet 连接共享和 Windows 防火墙提供第三方协议插件的支持。◎补充描述:XP SP2自带的防火墙,如果不用可以关掉。

  默认:手动(已启动)

  建议:禁用

  3显示名称:Application Management

  进程名称:svchost.exe -k netsvcs

  微软描述:提供软件安装服务,诸如分派,发行以及删除。

  补充描述:应用程序管理。从Windows2000开始引入的一种基于msi文件格式的全新有效软件管理方案:程序管理组件服务。该服务不仅可以管理软件的安装、删除,还可以使用此服务修改、修复现有应用程序,监视文件复原并通过复原排除基本故障等,软件安装变更的服务。

  默认:手动

  建议:手动

  4.显示名称:Automatic Updates

  进程名称:svchost.exe -k netsvcs

  微软描述:允许下载并安装 Windows 更新。如果此服务被禁用,计算机将不能使用 Windows Update 网站的自动更新功能。

  补充描述:自动更新,手动就行,需要的时候打开,没必要随时开着。

  默认:自动

  建议:手动

  5.显示名称:Background Intelligent Transfer Service

  进程名称:svchost.exe -k netsvcs

  微软描述:在后台传输客户端和服务器之间的数据。如果禁用了 BITS,一些功能,如 Windows Update,就无法正常运行。

  补充描述:经由HTTP1.1在背景传输资料的东西,例如 Windows Update 就是以此为工作之一。这个服务原是用来实现http1.1服务器之间的信息传输,微软称支持windows更新时断点续传。

  默认:手动

  建议:手动

  6.显示名称:ClipBook进

  程名称:clipsrv.exe

  微软描述:启用"剪贴簿查看器"储存信息并与远程计算机共享。如果此服务终止,"剪贴簿查看器" 将无法与远程计算机共享信息。如果此服务被禁用,任何依赖它的服务将无法启动。◎补充描述:剪贴簿。把剪贴簿内的信息和其它台计算机分享,一般家用计算机根本用不到。◎默认:禁用

  建议:禁用

  7.显示名称:COM+ Event System

  进程名称:svchost.exe -k netsvcs◎微软描述:支持系统事件通知服务(SENS),此服务为订阅组件对象模型(COM) 组件事件提供自动分布功能。如果停止此服务,SENS 将关闭,而且不能提供登录和注销通知。如果禁用此服务,显式依赖此服务的其他服务将无法启动。

  补充描述:COM+ 事件系统。有些程序可能用到 COM+ 组件,如自己的系统优化工具BootVis。检查系统盘的目录"C:Program FilesComPlus Applications",没东西可以把这个服务关闭。

  默认:手动(已启动)

  建议:手动

  8.显示名称:COM+ System Application

  进程名称:dllhost.exe /Processid:{02D4B3F1-FD88-11D1-960D-00805FC79235}

  微软描述:管理 基于COM+ 组件的配置和跟踪。如果服务停止,大多数基于COM+ 组件将不能正常工作。如果本服务被禁用,任何明确依赖它的服务都将不能启动。

  补充描述:如果 COM+ Event System 是一台车,那么 COM+ SystemApplication 就是司机,如事件检视器内显示的 DCOM 没有启用,则会导致一些 COM+软件无法正常运行。检查系统盘的目录"C:Program FilesComPlus Applications",没东西可以把这个服务关闭。◎默认:手动

  建议:手动

  9.显示名称:Computer Browser

  进程名称:svchost.exe -k netsvcs

  微软描述:维护网络上计算机的更新列表,并将列表提供给计算机指定浏览。如果服务停止,列表不会被更新或维护。如果服务被禁用,任何直接依赖于此服务的服务将无法启动。

  补充描述:计算机浏览器。一般家庭用计算机不需要,除非你的计算机应用在局域网之上。◎默认:自动

  建议:手动

  10.显示名称:Cryptographic Services

  进程名称:svchost.exe -k netsvcs

  微软描述:提供三种管理服务: 编录数据库服务,它确定 Windows 文件的签字; 受保护的根服务,它从此计算机添加和删除受信根证书机构的证书;和密钥(Key)服务,它帮助注册此计算机获取证书。如果此服务被终止,这些管理服务将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。

  补充描述:简单的说就是 Windows Hardware Quality Lab (WHQL)微软的一种认证服务,例如你使用 Automatic Updates,升级驱动程序,你就会需要这个。

  默认:自动

  建议:自动

  11.显示名称:DCOM Server Process Launcher

  进程名称:svchost -k DcomLaunch

  微软描述:为 DCOM 服务提供加载功能。

  补充描述:SP2新增的服务,DCOM(分布式组件对象模式),关闭这个服务会造成很多手动服务无法在需要的时候自动启动,很麻烦。关闭这个服务还有以下现象:比如一些软件无法正常安装,flashmx ,还有些打印机的驱动无法安装,都提示错误"RPC服务器不可用"。

  默认:自动

  建议:自动

  12.显示名称:DHCP Client

  进程名称:svchost.exe -k netsvcs

  微软描述:通过注册和更改 IP 地址以及 DNS 名称来管理网络配置。

  补充描述:DHCP 客户端。没有固定IP的的用户还是开着吧,否则上不了网,特别是小区光纤用户。

  默认:自动

  建议:自动

  (三)、查看、启用、关闭服务命令的方法

  1、net用于打开和关闭没有被禁用的服务,

  NET命令是功能强大的以命令行方式执行的工具。

  它包含了管理网络环境、服务、用户、登陆大部分重要的管理功能,关于这些完全可以写一篇20页以上的文档了,略去不表。

  启动和关闭服务的时候,其语法是:

  net start 服务名

  net stop 服务名

  比如我启动我的svn server 服务,命令行中输入net start svn 即可,可以更进一步将你经常需要启动的服务整理成命令,用记事本保存成cmd后缀格式的文件,这样你双击就可以完成里边相应的命令,这个还是很方便的,只 需要设置好,后续使用的时候就很简单,提高工作效率还是不错的。

  C:Windowssystem32>net/?

  此命令的语法是:

  NET

  [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |

  HELPMSG | LOCALGROUP | PAUSE | SESSION | SHARE | START |

  STATISTICS | STOP | TIME | USE | USER | VIEW ]

  注意:服务名是服务名称

  2、用sc可打开被禁用的服务,也可以查看服务状态,可以创建服务、删除服务、打开与关闭服务

  sc是用于与服务控制管理器和服务进行通信的命令行程序,其语法是:

  sc config 服务名 start= demand //手动

  sc config 服务名 start= auto //自动

  sc config 服务名 start= disabled //禁用

  sc start 服务名 开启服务

  sc stop 服务名 停止服务

  sc query 服务名 查看服务状态

  sc delete 服务名 删除服务

  sc qc 服务名 查看服务的配置信息

  sc create scname binPath=xxx.exe 创建服务

  例如

  C:Windowssystem32>sc create redis binPath=E:/Redis/redis-server.exe

  [SC] CreateService 成功

  当你安装了一个应用程序的时候,将其添加到windows服务中时,便可以这样去设置服务的启动规则,不过这个命令最好在命令行中使用。

  以上就是为了开启和关闭服务自己找到的简单方法

  如果整理得好的话,完全可以充当自己的电脑开机启动定制版脚本,包括打开哪些程序、文件、代码等等。

  总结:

  sc用法:

  C:Windowssystem32>sc/?

  错误: 未知命令

  描述:

  SC 是用来与服务控制管理器和服务进行通信

  的命令行程序。

  用法:

  sc [command] [service name] .

   选项的格式为 "\ServerName"

  可通过键入以下内容,获得有关命令的进一步帮助: "sc [comman

  命令:

  query-----------查询服务的状态,

  或枚举服务类型的状态。

  queryex---------查询服务的扩展状态,

  或枚举服务类型的状态。

  start-----------启动服务。

  pause-----------向服务发送 PAUSE 控制请求。

  interrogate-----向服务发送 INTERROGATE 控制请求。

  continue--------向服务发送 CONTINUE 控制请求。

  stop------------向服务发送 STOP 请求。

  config----------更改服务的配置(永久)。

  description-----更改服务的描述。

  failure---------更改服务失败时执行的操作。

  failureflag-----更改服务的失败操作标记。

  sidtype---------更改服务的服务 SID 类型。

  privs-----------更改服务的所需权限。

  managedaccount--更改服务以便将服务帐户密码

  标记为由 LSA 管理。

  qc--------------查询服务的配置信息。

  qdescription----查询服务的描述。

  qfailure--------查询服务失败时执行的操作。

  qfailureflag----查询服务的失败操作标记。

  qsidtype--------查询服务的服务 SID 类型。

  qprivs----------查询服务的所需权限。

  qtriggerinfo----查询服务的触发器参数。

  qpreferrednode--查询服务的首选 NUMA 节点。

  qrunlevel-------查询服务的运行级别。

  qmanagedaccount-查询服务是否将帐户

  与 LSA 管理的密码结合使用。

  qprotection-----查询服务的进程保护级别。

  delete----------(从注册表中)删除服务。

  create----------创建服务(并将其添加到注册表中)。

  control---------向服务发送控制。

  sdshow----------显示服务的安全描述符。

  sdset-----------设置服务的安全描述符。

  showsid---------显示与任意名称对应的服务 SID 字符串。

  triggerinfo-----配置服务的触发器参数。

  preferrednode---设置服务的首选 NUMA 节点。

  runlevel--------设置服务的运行级别。

  GetDisplayName--获取服务的 DisplayName。

  GetKeyName------获取服务的 ServiceKeyName。

  EnumDepend------枚举服务依赖关系。

  以下命令不要求使用服务名称:

  sc

  boot------------(ok | bad) 指示是否应将上一次引导保存为

  最近一次已知的正确引导配置

  Lock------------锁定服务数据库

  QueryLock-------查询 SCManager 数据库的 LockStatus

  示例:

  sc start MyService

推荐阅读