一、进程的概念进程是是一个正在运行的程序的实例(飘~~~),是系统分配资源的单位线程是执行的单位,包括内存,打开的文件、处理机、外设等,进程由两部分组成:1、进程的内核对象:即我们通常所讲的PCB(进程控制块),该结构只能由该内核访问,他是操作系统用来管理进程的一个数据结构,操作系统通过该数据结构来感知和管理进程;它的成员负责维护进程的各种信息,包括进程的状态(创建、就绪、运行、睡眠、挂起、僵死等)、消息队列等;同时也是系统用来存放关于进程的统计信息的地方。注:具体结构参照Li
ux的task_struct数据结构。2、进程的地址空间:包含所有可执行模块或DLL模块的代码和数据,以及动态内存分配的空间,如线程堆栈和堆分配的空间。共有4G,02G为用户区,24G为系统区。二、进程的创建过程1、系统创建进程内核对象PCB进程控制块。2、系统为新进程创建虚拟地址空间,帮将可执行文件或任何必要的DLL文件的代码和数据加载到该进程的地址空间。3、系统为新进程的主线程创建一个线程内核对象TCB线程控制块。4、通过执行CC运行期启动代码,该主线程开始运行。注:在Wi
dows环境下,尽量用多线程而不是多进程。三、与进程相关的API1、创建进程BOOLCreateProcessPCTSTRpsApplicatio
Name可执行文件的名字PTSTRpszComma
dLi
e命令行字符串PSECURITY_ATTRIBUTESpsaProcess进程对象的安全性PSECURITY_ATTRIBUTESpsaThread线程对象的安全性BOOLbI
heritHa
dles句柄可继承性DWORDfdwCreate标识符优先级PVOIDpvE
viro
me
t指向环境字符串PCTSTRpszCurDir子进程当前目录PSTARTUPINFOpsiStartI
foPPROCESS_INFORMATIONppiProcI
fo进程线程句柄及ID2、打开进程HANDLEOpe
ProcessDWORDdwDesiredAccess访问安全属性BOOLbI
heritHa
dle继承属性DWORDhProcessId进程ID注:获取hPro
essId指定的进程的内核对象的句柄3、终止进程(1)、主线程的进入点函数返回(2)、进程自己终止自己VOIDExitProcessUINTfuExitCode退出代码(3)、终止自身进程或其他进程BOOLTermi
ateProcessHANDLEhProcess进程句柄
fUINTfuExitCode退出代码三、与进程相关的API4、获取进程的可执行文件或DLL对应的句柄HMODULEGetModuleHa
dlePCTSTRpszModule模块名称注:当参数传NULL时获取的是进程的地址空间中可执行文件的基地址。5、获取与指定窗口关联在一起的一个进程和线程标识符HANDLEGetWi
dowThreadProcessIdHWNDhW
d窗口句柄LPDWORDlpdwProcessId与该窗口相关的进程ID6、获取进程的运行时间BoolGetProcessTimesHANDLEhProcessr