首页 > 代码库 > 了解进程

了解进程

1.进程到底是什么?

进程为应用程序的运行实例,是应用程序的一次动态执行.它是操作系统当前运行的执行程序.当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序,你开启,执行的额外程序,当然也包括你不知道,而自动运行的非法程序(如病毒等).

进程是程序在计算机上的一次执行活动.当你运行一个程序,你就启动了一个进程.显然,程序是死的(静态的),进程是活的(动态的).进程可以分为系 统进程和用户进程.凡是用于完成操作系统的各种功能的进程就是系统进程,病毒也常常把自己注册成系统进程,用户进程就是所有由你启动的进程.进程是操作系 统进行资源分配的单位,系统进程具有较高的优先权来得到资源.

2.进程的特征.

动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的.

并发性:任何进程都可以同其他进程一起并发执行

独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位.

异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的,不可预知的速度向前推进.

3.结构特征

进程由程序,数据和进程控制块三部分组成.

4.为什么会有句柄这一说?

句柄是一种指向指针的指针.而所谓的指针是一种内存地址.应用程序启动后,组成这个程序的各对象是住留在内存的.简单地理解,似乎我们只要获知这个 内存的首地址就可以随时用这个地址访问对象(如进程).但是,如果你真的这样认为,那么你就错了.我们知道,Windows是一个以虚拟内存为基础的操作 系统.Windows内存管理器经常在内存中来回移动对象,以此来满足各种应用程序的内存需要.对象被移动意味着它的地址变化了.如果地址总是如此变化, 我们该到哪里去找该对象呢?(进程失控了?)

为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,用来专门登记各应用对象在内存中的地址变化,而这个地址(存储单元的位 置)本身是不变的.Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来保存.这样我们只需记住这个句柄地址就可以间 接地知道对象具体在内存中的哪个位置.这个地址是在对象装载(Load)时由系统分配给的,当对象被撤消(Unload)时又释放给系统。

可能大家理解不了,举个形象点的例子.一本书(可以理解为我们的操作系统),总是会有一个目录页(登记具体内容的页码),目录页的每一行就相当于一 个句柄,每一行后面的页码就相当于一个指针.当正文内容需要调整时(如原来在第一章的,我现在要把它放到最后一章),那么当内容改动时,我们就要修改目录 页中相应的页码(目录页本身是不动的,只是改了页码而已,对于系统来说就是修改了句柄所指向的内存地址的内容).

*5,句柄的本质.

windows程序并不是用物理地址来标识一个内存块,文件,任务或进程的.系统给这些项目分配确定的句柄,并将其值返回给应用程序,然后通过句柄来对其进行操作.程序每次重新启动,系统分配给这个程序的句柄通常是不一样的.

*6.线程到底是什么?

线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程.线程不拥有系统资源,只有运行必须的一些数据结构,它与父进程的其它线 程共享该进程所拥有的全部资源.线程可以创建和撤消线程.从而实现程序的并发执行.比如,在一个程序中,我们创建一个线程读写磁盘,用另一个线程来处理用 户的其他请求.

系统正常运行需要哪些进程?

  两个拥有特殊PID的进程

  System Idle Process:这个进程的PID为0,虚拟内存占用为0,CPU很高,常常在90以上,事实上,它并不是真正的进程,这个称为系统空闲进程,它的CPU值越高越好.该进程无法结束,没有对应的文件.

  System: 这个进程的PID为4,该进程不能结束,它也没有对应的文件.并且没有后缀名,如果你看到带有后缀名的或是PID不是4的system,则这个进程很可能 是病毒进程.如果你看到此进程正常,但CPU占用很高,则说明这个进程被注入了,大部分是木马或病毒的行为,因为正常程序不会去搞它的.

  系统正常运行需要哪些进程?

  除了上面提到的两个,其他还有几个.下面按重要性来一个个说明.(下面讲到路径时,以系统盘为C盘为例),进程名不区分大小写.认识这些进程,对你使用系统和维护系统安全都有着非常重要的作用!

smss.exe :这是系统中有对应文件的第一个真正进程.文件位于c:\windows\system32\smss.exe,这是一个会话管理子系统,负责启动用户会 话,系统所有进程的初始化工作都由它来完成,当某些进程出现不可预知的重大错误时,该进程负责调节,无法调节时,系统将停止响应.

winlogon.exe :管理用户登陆,注销等.该进程是由父进程smss.exe创建的,正常路径c:\windows\system32\winlogon.exe,屏幕保护程序的启动等也是由它来管理的.以system用户来运行.

csrss.exe : 管理系统图形相关子系统.也是由smss.exe创建的,正常路径c:\windows\system32\csrss.exe

lsass.exe :该进程是多个Windows系统服务的宿主,由winlogon.exe创建,它控制一些服务的启动与关闭,与services.exe具有同等重要的 作用.它们分管系统中所有的服务.lsass.exe管理的服务包括HTTP SSL,IPSEC Services,Kerberos Key Distribution Center,Net Logon,NT LM Security Support Provider,Protected Storage,Security Accounts Manager.正常情况下,它开启了多个服务,一般至少有Protected Storage和Security Accounts Manager两项,如果没有开启这些服务,此进程可以被关闭.

services.exe :和上面的一样,也是由winlogon.exe创建的,除上面七个服务外,其他所有服务全部由该进程来管理.关于服务相关的内容,以后会专门用一个课时来详细说明,现在只要了解就行了.路径c:\windows\system32\services.exe

svchost.exe :标准的动态连接库主机处理服务.由services.exe创建,该进程在启动的时候会检查注册表中相应位置来决定需要加载的服务.系统中常常会存在很 多个svchost.exe进程,因为不同的服务可能要不同的svchost.exe进程来启动.有的svchost.exe进程只启动了一个服务,而有 的可能启动了好几个服务.所以系统中存在3~7个同样的这个进程并不奇怪.路径c:\windows\system32\svchost.exe.部分这 个进程可以被结束的,结束后的结果可能会很奇怪,比如复制粘贴功能没有了...

alg.exe :即Application Layer Gateway Service,应用程序网关服务,为Internet连接共享和Windows防火墙提供第三方协议插件的支持.

另一个特殊的进程:explorer.exe,这个进程是可以被结束的,结束后桌面消失,别害怕,重新启动这个进程就行了,在任务管理器中点文件,新建任务,输入explorer.exe后确定即可.

还有一个进程是taskmgr.exe,这个进程是任务管理器的进程,你结束它试一下,任务管理器关闭了

了解进程