进程和线程与调度.ppt
《进程和线程与调度.ppt》由会员分享,可在线阅读,更多相关《进程和线程与调度.ppt(28页珍藏版)》请在三一文库上搜索。
1、2.2 进程和线程与调度,进程 线程 调度,2.2 进程和线程与调度,进程 线程 调度,进程概述,进程(process)定义:是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。它是系统进行资源分配和调度的一个独立单位。 进程通常由三部分组成:程序、数据集合、进程控制块PCB(Process Control Block) 进程特点: 动态性 独立性 并发行 结构化,进程概述,进程与程序的联系: 程序是构成进程的两个组成部分之一。一个进程的运行目标是执行它对应的程序。 进程与程序的区别: 程序是静态的,进程是动态的。 进程有创建、执行及撤销而消亡的生命周期,程序只是一个文件,存在于某
2、种介质上。 一个程序可对应多个进程,但是一个进程只能对应一个程序。,Windows CE进程,Windows CE(5.0)最多只支持32个进程同时运行。每个进程占据32MB的虚拟地址空间,也被称为一个Slot。 在系统启动的时候,默认会启动四个进程,NK.EXE, FILESYS.EXE, GWES.EXE及DEVICE.EXE。,Windows CE进程,Windows CE的进程也不支持环境变量(Environment Variable)和当前目录。 如果没有明确指明可执行文件的路径,那么Windows CE会按照如下的顺序搜索: 首先查找“Windows”目录 查找根目录(“”) OE
3、M所指定的搜索目录(“HKEY_LOCAL_MACHINELoaderSystemPath”) 例如:如果MyApp.exe的同一目录中存在MyFile.tex,那么下面的代码都是不正确的。 _wfopen(L”%WINDOWS%MyFile.txt, L”w”); _wfopen(L”MyFile.txt”,L”w”);,Windows CE进程,一种解决方案 TCHAR szBufMAX_PATH; DWORD dwPathLen; /得到当前程序可执行文件的完整路径 dwPathLen = GetModuleFileName(NULL,szBuf,MAX_PATH); if(!dwPat
4、hLen) return -1; /除去文件名 while(szBuf-dwPathLen!=); szBufdwPathLen+1=NULL; /拼接文件 _tcscat(szBuf,TEXT(“MyFile.txt”); /如果当前文件位于/Temp,则此时szBuf的内容为”/Temp/MyFile.txt”,Windows CE进程,创建进程的API如下: BOOL CreateProcess ( LPCWSTR lpApplicationName, /可执行文件的路径和名字,不能为NULL LPWSTR lpCommandLine, /传递启动参数(必须为Unicode字符串) LP
5、SECURITY_ATTRIBUTES lpProcessAttributes, /不支持,设置为NULL LPSECURITY_ATTRIBUTES lpThreadAttributes, /不支持,设置为NULL BOOL bInheritHandles, /不支持,设置为FALSE DWORD dwCreationFlags, /进程加载后的初始状态 PVOID lpEnvironment, /不支持,设置为NULL LPCWSTR lpCurrentDirectory, /不支持,设置为NULL LPSTARTUPINFOW lpStartupInfo, /不支持,设置为NULL LP
6、PROCESS_INFORMATION lpProcessInformation, /返回的进程相关的信息 ); 整个函数返回值为BOOL型,当成功创建进程后,返回值为真(TRUE) ,否则返回假(FALSE).,Windows CE进程,终止进程 最好是由WinMain()或者其他主函数返回 调用ExitThread()函数使进程的主线程退出从而终止进程 直接调用ExitProcess()函数 在当前进程终止另一个进程可以使用TerminateProcess(),2.2 进程和线程与调度,进程 线程 调度,线程概述,线程(Thread)定义:有时称轻量级进程,进程中的一个运行实体,是一个CP
7、U调度单位。 线程特点: 是进程的一个实体,可作为系统独立调度和分派的基本单位。 不拥有系统资源(只拥有从属进程的全部资源,资源是分配给进程) 一个进程中的多个线程可并发执行。(进程可创建线程执行同一程序的不同部分) 系统开销小、切换快。(进程的多个线程都在进程的地址空间活动),线程概述,线程和进程的关系是: 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。 线程可与属于同一进程的其它线程共享进程所拥有的全部资源,但是其本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。,
8、Windows CE线程,线程是Windows CE中最小的可执行单元。Windows CE的调度系统只识别和调度线程。 一个进程可拥有的线程数理论上是没有限制的,只与当前可用的内存有关。 线程的上下文:线程占用的内存以及其他资源(如:处理器的寄存器、自己独立的栈等),这些资源构成了线程的上下文。 线程可运行在: 核心态:线程可访问操作系统所有的资源(可访问核心态的2GB虚拟地址空间)。一般来说,操作系统线程和中断服务例程运行在核心态。 用户态:应用程序和设备驱动程序的中断服务线程运行在用户态。,Windows CE线程,创建线程的API如下: HANDLE CreateThread( LPS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 线程 调度
链接地址:https://www.31doc.com/p-3174697.html