欢迎来到天天文库
浏览记录
ID:56998373
大小:585.00 KB
页数:18页
时间:2020-07-26
《手持式移动设备嵌入式WinCE开发(进程)课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、手持式移动设备嵌入式WinCE开发6进程第章本章目标掌握进程的概念熟练掌握进程的创建、终止及其他进程操作函数掌握并理解进程间的通信进程与程序关系:联系程序是构成进程的两个组成部分之一区别程序是静态的,进程是动态的程序可以在长期保存,而进程有它的生命周期,不能长期保存一个程序可对应多个进程,而一个进程只能对应一个程序。进程每个应用程序启动后,就会变成一个单独的进程,并且每个进程都有自己的虚拟内存空间。操作系统可以列举系统的活动进程,并且可以根据进程句柄执行“终止进程”和“激活进程”等操作。每个进程都有自己的虚拟内存空间,因此各进程间相互独立,互不干扰。在某些情况下,
2、需要在两个或者多个进程间进行通信,所以我们需要掌握进程间的通信方法。进程概述进程(Process)是指当前所加载程序的专业Win32术语,磁盘上的一个可执行文件仅仅是一个文件,它只有在被启动后才是一个进程。进程仅仅是存在的,它不做任何事,一个进程可以有多个线程但至少应包含一个线程,程序中所有的操作都是由线程来完成的。同时每一个进程有且仅有一个主线程,由主线程来进行所有初始化操作。UNIX、OS/2.Windows2000/NT、Windows95/98以及WindowsCE系统等都是基于多线程的操作系统WinCE的进程与WindowsNT或Windows2000中
3、的进程有所不同,而最重要的不同点就是:在WinCE中任意一个时刻晟多可以有32个进程同肘运行。当系统启动时,至少会创建4个进程:NK.EXE提供内核服务;FILESYS.EXE提供文件系统服务;GWES.EXE提供GUI支持;DEVICE.EXE加载和维护设备驱动程序。在大多数系统中,系统还将根据需要创建一些进程,例如在PPC2002启动后,除了创建上述的4个核心进程外,同时还会创建6个进程。WindowsCE进程结构分析WindowsCE中,每一个进程由process结构来描述,也就是进程控制块(PCB,ProcessControlBlock);系统创建一个进程
4、时,将分配一个新的process结构;进程结束时,这个结构将被回收;与Windows98或NT进程比较,WindowsCE进程包含较少的状态信息;进程是系统资源分配的基本单位。进程创建进程创建进程的创建可以通过CreateProcessAPI函数来完成,该函数的声明如下:BOOLCraateProcess{LPCWSTRpszImageName,//指向可执行文件名的指针LPCWSTRpszCmdLine,//指向执行命令字符串的指针LPSECURITY_ATTRIBUTESpsaProcess,//指向进程安全属性的指针,CE不支持LPSECURITY_ATTR
5、IBUTESpsaThread,//指向线程安金属性的指针,CE不支持B00LfInherit,Handles,//被创建的进程是否继承创建进程的句柄,CE小支持DWORDfc:h^rCreate,//创建标志PVOIDpvEnvironment,//指向新创建的环境块的指针.CE水支持LPWSTRpszCurDir,//指I句当前工作目录的指针,CE不支持LPSTARTUPINFOWpsiStartlnfo,//指向进程启动信息结构体的指针,CE不支持LPPROCESS—工NFDRMATIO!qpProclnfo//指向进程信息结构体的指针);在CE中,Crea
6、teProcess函数中的许多参数是不被支持的,因此很多参数都要被设置成NULL,所以实际上它可以被看成如下声明:BOOLCreateProcess{LPCWSTRpszImageName,LPCWSTRpszCmdLine,NULL,NULL,NULL,DWORDfdwCreate,NULL,NULL,NULL,LPPROCESS_INFORMATIONpProclnfo}参数pszlmageName表示可执行文件名,任CE中,必须要指定应用程序名,不能设置成NULL。进程终止CE小支持NT等所支持的ExitProcess函数,但是在CE中,如果主线程终止了,进
7、程也将终止,而不管进程的当前活动状态,因此在CE中可以通过进程的主线程调用ExitThread来终止进程。此外,通过调用GetExitCodeProcess函数,可以确定进程是否终止。GetExitCodeProcess函数的声明如下:BOOLGetExitCodeProcess{HANDLEhProcess,LPDWORDlpExitCode};如果要关闭的进程是用户自己创建的进程,则可以使用进程间通信告诉进程终止它自身。除此之外,还有一种终止进程的方法,就是给该进程的主窗口发送WM_CLOSE消息。如果上述方法都失败了,则可以使用TerminateProces
8、s函数来终
此文档下载收益归作者所有