什么是系统的进程
对于hejb 的提问,不是我钻牛角尖,而是我太忙,没时间细看提问,如果我大至发现是针对主题的提问,我就答,否我就不答,见谅。最近太忙了,希望支持我,等我闲下来会好好和各位朋友交流的!!
下面针对hejb的提问,我先让朋友们了解一下在任务管理器里的进程。其实在谈到进程时,还要涉及到线程的概念。 进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操 作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务。
那进程与线程的区别到底是什么?进程是执行程序的实例。例如,当你运行记事本程序(Nodepad)时,你就创建了一个用来容纳组成 Notepad*ex.e**的代码及其所需调用动态链接库的进程。每个进程均运行在其专用且受保护的地址空间内。因此,如果你同时运行记事本的两个拷贝,该程序正在使用的数据在各自实例中是彼此独立的。在记事本的一个拷贝中将无法看到该程序的第二个实例打开的数据。
我这里以沙箱为例进行阐述。一个进程就好比一个沙箱。线程就如同沙箱中的孩子们。孩子们在沙箱子中跑来跑去,并且可能将沙子攘到别的孩子眼中,他们会互相踢打或撕咬。但是,这些沙箱略有不同之处就在于每个沙箱完全由墙壁和顶棚封闭起来,无论箱中的孩子如何狠命地攘沙,他们也不会影响到其它沙箱中的其他孩子。因此,每个进程就象一个被保护起来的沙箱。未经许可,无人可以进出。
实际上线程运行而进程不运行。两个进程彼此获得专用数据或内存的唯一途径就是通过协议来共享内存块。这是一种协作策略。下面让我们分析一下任务管理器里的进程选项卡。
这里的进程是指一系列进程,这些进程是由它们所运行的可执行程序实例来识别的,这就是进程选项卡中的第一列给出了映射名称的原因。请注意,这里并没有进程名称列。进程并不拥有独立于其所归属实例的映射名称。换言之,如果你运行5个记事本拷贝,你将会看到5个称为Notepad*ex.e**的进程。它们是如何彼此区别的呢?其中一种方式是通过它们的进程ID,因为每个进程都拥有其独一无二的编码。该进程ID由Windows NT或 Windows 2000生成,并可以循环使用。因此,进程ID将不会越编越大,它们能够得到循环利用。
第三列是被进程中的线程所占用的CPU时间百分比。它不是CPU的编号,而是被进程占用的CPU时间百分比。此时我的系统基本上是空闲的。尽管系统看上去每一秒左右都只使用一小部分CPU时间,但该系统空闲进程仍旧耗用了大约99%的CPU时间。
第四列,CPU时间,是CPU被进程中的线程累计占用的小时、分钟及秒数。请注意,我对进程中的线程使用占用一词。这并不一定意味着那就是进程已耗用的 CPU时间总和,因为,如我们一会儿将看到的,NT计时的方式是,当特定的时钟间隔激发时,无论谁恰巧处于当前的线程中,它都将计算到CPU周期之内。通常情况下,在大多数NT系统中,时钟以10毫秒的间隔运行。每10毫秒NT的心脏就跳动一下。有一些驱动程序代码片段运行并显示谁是当前的线程。让我们将 CPU时间的最后10毫秒记在它的帐上。因此,如果一个线程开始运行,并在持续运行8毫秒后完成,接着,第二个线程开始运行并持续了2毫秒,这时,时钟激发,请猜一猜这整整10毫秒的时钟周期到底记在了哪个线程的帐上?答案是第二个线程。因此,NT中存在一些固有的不准确性,而NT恰是以这种方式进行计时,实际情况也如是,大多数32位操作系统中都存在一个基于间隔的计时机制。请记住这一点,因为,有时当你观察线程所耗用的CPU总和时,会出现尽管该线程或许看上去已运行过数十万次,但其CPU时间占用量却可能是零或非常短暂的现象,那么,上述解释便是原因所在。上述也就是我们在任务管理器的进程选项卡中所能看到的基本信息列。
说到这里,我想大家对进程有一定的认识了吧,最后我对平时见到的各进程项细述一下,有哪些是能关的,有哪些是不能关的........
最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行):
smss*ex.e** Session Manager
csrss*ex.e** 子系统服务器进程
winlogon*ex.e** 管理用户登录
services*ex.e** 包含很多系统服务
lsass*ex.e** 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务)
产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)
svchost*ex.e** 包含很多系统服务
svchost*ex.e**
SPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)
explorer*ex.e** 资源管理器
internat*ex.e** 托盘区的拼音图标
附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少):
mstask*ex.e** 允许程序在指定时间运行。(系统服务)
regsvc*ex.e** 允许远程注册表操作。(系统服务)
winmgmt*ex.e** 提供系统管理信息(系统服务)。
inetinfo*ex.e** 通过 Internet 信息服务的管理单元提供 FTP 连接和管理。(系统服务)
tlntsvr*ex.e** 允许远程用户登录到系统并且使用命令行运行控制台程序。(系统服务)
允许通过 Internet 信息服务的管理单元管理 Web 和 FTP 服务。(系统服务)
tftpd*ex.e** 实现 TFTP Internet 标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务)
termsrv*ex.e** 提供多会话环境允许客户端设备访问虚拟的 Windows 2000 Professional 桌面会话以及运行在服务器上的基
于 Windows 的程序。(系统服务)
dns*ex.e** 应答对域名系统(DNS)名称的查询和更新请求。(系统服务)
以下服务很少会用到,上面的服务都对安全有害,如果不是必要的应该关掉
tcpsvcs*ex.e** 提供在 PXE 可远程启动客户计算机上远程安装 Windows 2000 Professional 的能力。(系统服务)
支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(系统服务)
ismserv*ex.e** 允许在 Windows Advanced Server 站点间发送和接收消息。(系统服务)
ups*ex.e** 管理连接到计算机的不间断电源(UPS)。(系统服务)
wins*ex.e** 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS 名称服务。(系统服务)
llssrv*ex.e** License Logging Service(system service)
ntfrs*ex.e** 在多个服务器间维护文件目录内容的文件同步。(系统服务)
RsSub*ex.e** 控制用来远程储存数据的媒体。(系统服务)
locator*ex.e** 管理 RPC 名称服务数据库。(系统服务)
lserver*ex.e** 注册客户端许可证。(系统服务)
dfssvc*ex.e** 管理分布于局域网或广域网的逻辑卷。(系统服务)
clipsrv*ex.e** 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。(系统服务)
msdtc*ex.e** 并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。(系统服务)
faxsvc*ex.e** 帮助您发送和接收传真。(系统服务)
cisvc*ex.e** Indexing Service(system service)
dmadmin*ex.e** 磁盘管理请求的系统管理服务。(系统服务)
mnmsrvc*ex.e** 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。(系统服务)
netdde*ex.e** 提供动态数据交换 (DDE) 的网络传输和安全特性。(系统服务)
smlogsvc*ex.e** 配置性能日志和警报。(系统服务)
rsvp*ex.e** 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。(系统服务)
RsEng*ex.e** 协调用来储存不常用数据的服务和管理工具。(系统服务)
RsFsa*ex.e** 管理远程储存的文件的操作。(系统服务)
grovel*ex.e** 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间。(系统服务)
SCardSvr*ex.e** 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)
snmp*ex.e** 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。(系统服务)
snmptrap*ex.e** 接收由本地或远程 SNMP 代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机上 SNMP 管理程序
。(系统服务)
UtilMan*ex.e** 从一个窗口中启动和配置辅助工具。(系统服务)
msiexec*ex.e** 依据 .MSI 文件中包含的命令来安装、修复以及删除软件。(系统服务)
详细说明:
win2k运行进程
Svchost*ex.e**
Svchost*ex.e**文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost*ex.e**文件定位
在系统的%systemroot%\system32文件夹下。在启动的时候,Svchost*ex.e**检查注册表中的位置来构建需要
加载的服务列表。这就会使多个Svchost*ex.e**在同一时间运行。每个Svchost*ex.e**的回话期间都包含一组服务,
以至于单独的服务必须依靠Svchost*ex.e**怎样和在那里启动。这样就更加容易控制和查找错误。
Svchost*ex.e** 组是用下面的注册表值来识别。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost
每个在这个键下的值代表一个独立的Svchost组,并且当你正在看活动的进程时,它显示作为一个单独的
例子。每个键值都是REG_MULTI_SZ类型的值而且包括运行在Svchost组内的服务。每个Svchost组都包含一个
或多个从注册表值中选取的服务名,这个服务的参数值包含了一个ServiceDLL值。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service
更多的信息
为了能看到正在运行在Svchost列表中的服务。
开始-运行-敲入cmd
然后在敲入 tlist -s (tlist 应该是win2k工具箱里的冬冬)
Tlist 显示一个活动进程的列表。开关 -s 显示在每个进程中的活动服务列表。如果想知道更多的关于
进程的信息,可以敲 tlist pid。
Tlist 显示Svchost*ex.e**运行的两个例子。
0 System Process
8 System
132 smss*ex.e**
160 csrss*ex.e** Title:
180 winlogon*ex.e** Title: NetDDE Agent
208services*ex.e**
Svcs: AppMgmt,Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,LanmanWorkstation,LmHosts,Messenger,PlugPlay,
ProtectedStorage,seclogon,TrkWks,W32Time,Wmi
220 lsass*ex.e** Svcs: Netlogon,PolicyAgent,SamSs
404 svchost*ex.e** Svcs: RpcSs
452 spoolsv*ex.e** Svcs: Spooler
544 cisvc*ex.e** Svcs: cisvc
556 svchost*ex.e** Svcs: EventSystem,Netman,NtmsSvc,RasMan,SENS,TapiSrv
580 regsvc*ex.e** Svcs: RemoteRegistry
596 mstask*ex.e** Svcs: Schedule
660 snmp*ex.e** Svcs: SNMP
728 winmgmt*ex.e** Svcs: WinMgmt
852 cidaemon*ex.e** Title: OleMainThreadWndName
812 explorer*ex.e** Title: Program Manager
1032 OSA.EXE Title: Reminder
1300 cmd*ex.e** Title: D:\WINNT5\System32\cmd*ex.e** - tlist -s
1080 MAPISP32.EXE Title: WMS Idle
1264 rundll32*ex.e** Title:
1000 mmc*ex.e** Title: Device Manager
1144 tlist*ex.e**
在这个例子中注册表设置了两个组。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost:
netsvcs: Reg_Multi_SZ: EventSystem Ias Iprip Irmon Netman Nwsapagent Rasauto Rasman Remoteaccess SENS Sharedaccess
Tapisrv Ntmssvc
rpcss :Reg_Multi_SZ: RpcSs
smss*ex.e**
csrss*ex.e**
这个是用户模式Win32子系统的一部分。csrss代表客户/服务器运行子系统而且是一个基本的子系统
必须一直运行。csrss 负责控制windows,创建或者删除线程和一些16位的虚拟MS-DOS环境。
explorer*ex.e**
这是一个用户的shell(我实在是不知道怎么翻译shell),在我们看起来就像任务条,桌面等等。这个
进程并不是像你想象的那样是作为一个重要的进程运行在windows中,你可以从任务管理器中停掉它,或者重新启动。
通常不会对系统产生什么负面影响。
internat*ex.e**
这个进程是可以从任务管理器中关掉的。
internat*ex.e**在启动的时候开始运行。它加载由用户指定的不同的输入点。输入点是从注册表的这个位置
HKEY_USERS\.DEFAULT\Keyboard Layout\Preload 加载内容的。
internat*ex.e** 加载“EN”图标进入系统的图标区,允许使用者可以很容易的转换不同的输入点。
当进程停掉的时候,图标就会消失,但是输入点仍然可以通过控制面板来改变。
lsass*ex.e**
这个进程是不可以从任务管理器中关掉的。
这是一个本地的安全授权服务,并且它会为使用winlogon服务的授权用户生成一个进程。这个进程是
通过使用授权的包,例如默认的msgina.dll来执行的。如果授权是成功的,lsass就会产生用户的进入
令牌,令牌别使用启动初始的shell。其他的由用户初始化的进程会继承这个令牌的。
mstask*ex.e**
这个进程是不可以从任务管理器中关掉的。
这是一个任务调度服务,负责用户事先决定在某一时间运行的任务的运行。
smss*ex.e**
这个进程是不可以从任务管理器中关掉的。
这是一个会话管理子系统,负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的,
包括已经正在运行的Winlogon,Win32(Csrss*ex.e**)线程和设定的系统变量作出反映。在它启动这些
进程后,它等待Winlogon或者Csrss结束。如果这些过程时正常的,系统就关掉了。如果发生了什么
不可预料的事情,smss*ex.e**就会让系统停止响应(就是挂起)。
spoolsv*ex.e**
这个进程是不可以从任务管理器中关掉的。
缓冲(spooler)服务是管理缓冲池中的打印和传真作业。
service*ex.e**
这个进程是不可以从任务管理器中关掉的。
大多数的系统核心模式进程是作为系统进程在运行。
System Idle Process
这个进程是不可以从任务管理器中关掉的。
这个进程是作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间。
winlogon*ex.e**
这个进程是管理用户登录和推出的。而且winlogon在用户按下CTRL+ALT+DEL时就激活了,显示安全对话框。
winmgmt*ex.e**
winmgmt是win2000客户端管理的核心组件。当客户端应用程序连接或当管理程序需要他本身的服务时这个进程初始化
taskmagr*ex.e**
这个进程当然就是任务管理器了.不要忘
弈安传媒科技微课堂,每天分享财经资讯,计算机技术知识,人生感悟,创业指导以及各种专业技术知识资料学习交流.移动学习平台、知识分享平台。随时随地的学习,如果你喜欢成长,这里你不容错过的地方.弈安传媒科技培训关注:关注自己成长,分享内容,分享自己的技术,成就未来.
[弈安传媒科技提升自己的平台]请关注:头条号及公众号 弈安传媒科技