第2章进程的描述与控制

上传人:工**** 文档编号:569929830 上传时间:2024-07-31 格式:PPT 页数:35 大小:584.01KB
返回 下载 相关 举报
第2章进程的描述与控制_第1页
第1页 / 共35页
第2章进程的描述与控制_第2页
第2页 / 共35页
第2章进程的描述与控制_第3页
第3页 / 共35页
第2章进程的描述与控制_第4页
第4页 / 共35页
第2章进程的描述与控制_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《第2章进程的描述与控制》由会员分享,可在线阅读,更多相关《第2章进程的描述与控制(35页珍藏版)》请在金锄头文库上搜索。

1、第第2 2章章 进程的描述与控制进程的描述与控制2.1 进程及其描述进程及其描述2.1.1 进程的引入进程的引入2.1.2 进程的定义与特征进程的定义与特征2.1.3 进程描述控制表进程描述控制表2.2 进程基本状态及其相互转换进程基本状态及其相互转换2.3 进程控制进程控制2.4 线程线程补充部分必要的微机原理知识2.1.1 2.1.1 进程概念的引入进程概念的引入v单任务环境下的单任务环境下的“可执行可执行”程序程序未执行前的程序未执行前的程序可执行格式的二进制程序文件;可执行格式的二进制程序文件;通常被持久存储在外存(磁盘)中。通常被持久存储在外存(磁盘)中。程序被加载到主存并获得程序被

2、加载到主存并获得CPU控制权后控制权后将按其中指令所规定的逻辑顺序被依次执行将按其中指令所规定的逻辑顺序被依次执行逻辑顺序结构:顺序、选择、重复(循环)逻辑顺序结构:顺序、选择、重复(循环)通常可采用或引入通常可采用或引入前驱图前驱图节点有向边节点有向边,来描述程序中,来描述程序中不同单元或程序段之间的关系;不同单元或程序段之间的关系;以实模式执行,具有最大的权限,可存取控制所有以实模式执行,具有最大的权限,可存取控制所有计算机软硬资源;计算机软硬资源;程序执行具有以下基本特点:程序执行具有以下基本特点:顺序性、封闭性和(结果)可再现性。顺序性、封闭性和(结果)可再现性。如何创建可执行程序如何

3、创建可执行程序2.1.1 2.1.1 进程概念的引入进程概念的引入v单任务环境下的单任务环境下的“可执行可执行”程序程序v多任务环境下多道程序并发执行多任务环境下多道程序并发执行多道程序并发执行情况示例多道程序并发执行情况示例本例中,程序片段本例中,程序片段S1与与S2可并发执行可并发执行并发可有效提高系统的吞吐量并发可有效提高系统的吞吐量多道程序并发执行的特征多道程序并发执行的特征间断性(切换执行)间断性(切换执行)失去封闭性(共享系统的资源)失去封闭性(共享系统的资源)结果不可再现性结果不可再现性为有效管理和调度多道并发执行程序为有效管理和调度多道并发执行程序须引入可完整描述每道执行中程序

4、的数据结构;须引入可完整描述每道执行中程序的数据结构;该思想逐步进化完善该思想逐步进化完善进程进程(process)概念概念S1S2S3S42.1.1 2.1.1 进程概念的引入进程概念的引入v单任务环境下的单任务环境下的“可执行可执行”程序程序v多任务环境下多道程序并发执行多任务环境下多道程序并发执行v进程概念的引入与意义进程概念的引入与意义进程是现代进程是现代OS最重要的概念之一最重要的概念之一进程的管理、切换及调度,与保护模式密切相进程的管理、切换及调度,与保护模式密切相关,需要有保护模式知识,才能清晰理解进程关,需要有保护模式知识,才能清晰理解进程的实现机制和实现过程。的实现机制和实现

5、过程。执行进程切换的相关代码,被统称为执行进程切换的相关代码,被统称为OS的进的进程调度模块程调度模块通常被运行在比通常被运行在比 “进程进程”更高的层级上;更高的层级上;现代现代OS的调度代码,通常不是一个集中的模块,而的调度代码,通常不是一个集中的模块,而是由分散在内核多个位置的若干代码片段构成。是由分散在内核多个位置的若干代码片段构成。OSOS进程切换示意图解进程切换示意图解数组或数组或队列队列OSOS的典型进程切换过程的典型进程切换过程中断处理程序框架中断处理程序框架;入口堆栈为当前进程的进程控制表入口堆栈为当前进程的进程控制表;保存当前保存当前CPU工作现场工作现场Push ad ;

6、 push ds,es,fs,gs,.;禁止当前中断禁止当前中断,但允许其它中断发生但允许其它中断发生;将堆栈切换到内核栈将堆栈切换到内核栈;执行实际的中断处理,对于时钟中断执行实际的中断处理,对于时钟中断修改系统时间修改系统时间;修改当前进程时间配额;修改当前进程时间配额;若时间配额用完,重调度若时间配额用完,重调度修改修改 p_proc_ready;禁止所有中断发生禁止所有中断发生cli;将栈切换到下一个启动进程的进程表将栈切换到下一个启动进程的进程表mov esp, p_proc_readylldt esp+p_ldt_sel;恢复下一个执行进程的恢复下一个执行进程的CPU工作现场工作现

7、场pop .,gs,fs,es,ds; popadiretd进程表数组指针进程表数组指针2.1.2 2.1.2 进程定义进程定义v是具有一定独立功能的程序:在一个数据集是具有一定独立功能的程序:在一个数据集上的一次动态执行过程。上的一次动态执行过程。一个程序可以通过多次执行,产生多个进程一个程序可以通过多次执行,产生多个进程v是计算机内存中具有一定结构和具有相对独是计算机内存中具有一定结构和具有相对独立性的动态实体立性的动态实体(有独立的活动地址空间有独立的活动地址空间)。v是计算机系统资源的使用实体和参与系统资是计算机系统资源的使用实体和参与系统资源分配的最基本单位。源分配的最基本单位。v是

8、计算机系统中可独立调度执行的实体。是计算机系统中可独立调度执行的实体。注意,在进一步引入注意,在进一步引入“线程线程”的的OS中,可独立中,可独立调度执行的实体变为线程。调度执行的实体变为线程。Process DefinitionProcess Definition vIt is a program in execution, the program defines its behavior.vIt is a schedulable unit of computation that usually requires certain resources be allocated to it du

9、ring execution.It is the most fundatmental unit for resources allocation.some modern OS may use threads or objects for the fundamental unit of computation. vThe component of a process are the following:The object program (or code) to be executed;The data on which the program will exec.The resources

10、required by the prg.The status of its exec, or more precisely, an internal data structure (the process descriptor or PCB) to describe/keep track it.进程的基本特征进程的基本特征v独立性独立性每个进程具有自己每个进程具有自己相对独立的地址空间相对独立的地址空间,除非,除非通过进程通信手段,否则不能相互影响通过进程通信手段,否则不能相互影响v结构性结构性进程空间是结构化的、分段组织的进程空间是结构化的、分段组织的;v动态性动态性是或包含可在其地址空间中

11、活动的执行体对象是或包含可在其地址空间中活动的执行体对象v并发性,也称异步性并发性,也称异步性在同一个计算机系统中允许同时存在多个进程,在同一个计算机系统中允许同时存在多个进程,微观上它们可能是交替执行;但宏观上看,则微观上它们可能是交替执行;但宏观上看,则似乎在似乎在同时同时独立运行。独立运行。用户空间是进程的一个最主要特征用户空间是进程的一个最主要特征! !一种抽象的一种抽象的“进程空程空间”视图模型模型 每个进程有每个进程有自己专有的自己专有的“一本帐一本帐”“一套表一套表”2.1.3 2.1.3 进程控制块进程控制块(PCB)(PCB)v也称进程表,是也称进程表,是OS维护的、用来跟踪

12、记录进程存在和活维护的、用来跟踪记录进程存在和活动情况的数据结构。动情况的数据结构。与进程有关的信息被集中存储在这个数据结构中。与进程有关的信息被集中存储在这个数据结构中。 v每个进程在每个进程在OS都有一个唯一的都有一个唯一的PCBWindows中,中,PCB也被称为也被称为 内核进程对象内核进程对象 ,是,是一种内核控制对象。一种内核控制对象。不允许进程自身访问,只允许内核代码访问。不允许进程自身访问,只允许内核代码访问。vPCB主要内容主要内容进程描述信息进程描述信息:PID,NAME, USERID,PROCESS GROUP处理器现场保护信息处理器现场保护信息: CPU内部各寄存器内

13、部各寄存器进程控制信息进程控制信息:当前状态、优先级、代码执行入口地址、程序外存当前状态、优先级、代码执行入口地址、程序外存地址、运行统计信息地址、运行统计信息(执行时间、调度次数、页面调度执行时间、调度次数、页面调度)资源占用信息列表,打开资源对象句柄表资源占用信息列表,打开资源对象句柄表用于进程间同步与通信的相关信息字段用于进程间同步与通信的相关信息字段指向进程虚空间使用分配描述表指针(指向进程虚空间使用分配描述表指针(PCB-AddressSpace ) (注意,因页目录注意,因页目录/页表占空间页表占空间 较大,较大,虽位于系统空间但不能安排在核虽位于系统空间但不能安排在核心,即心,即

14、 PCBPCB,页挂起进程页表可能会被,页挂起进程页表可能会被SWAPSWAP到外存!到外存!) )2.1.3 2.1.3 进程控制块进程控制块(PCB)(PCB)PCB-AddressSpace进程页目录的物理地址进程页目录的物理地址2.2 2.2 进程的状态及其相互转换进程的状态及其相互转换2.2.1 五状态图五状态图(三种基本状态新状态结束状态三种基本状态新状态结束状态 )PCB中有表示进程当前状态的字段(枚举型)2.2.2 2.2.2 进程的单挂起状态模型进程的单挂起状态模型activesuspend2.2.3 2.2.3 进程的双挂起状态模型进程的双挂起状态模型进程与程序比较(区别与

15、联系)进程与程序比较(区别与联系)v程序是静态的程序是静态的, 是有序代码的集合是有序代码的集合, 是进程的定是进程的定义和说明义和说明对应着一个持久外存文件,具有外存文件的性质(创对应着一个持久外存文件,具有外存文件的性质(创建建/复制复制/删除删除.)。v进程是动态的、暂时的,是程序的一次执行,通进程是动态的、暂时的,是程序的一次执行,通常不能在计算机之间迁移。常不能在计算机之间迁移。v进程与程序的组成不同:进程组成包括代码段、进程与程序的组成不同:进程组成包括代码段、数据段和控制块。数据段和控制块。v进程与程序密切关联进程与程序密切关联通过多次加载执行,一个程序可对应多个进程;通过通过多

16、次加载执行,一个程序可对应多个进程;通过调用关系,一个进程可涉及多个程序。调用关系,一个进程可涉及多个程序。2.3 2.3 进程控制进程控制v2.3.1 原语的概念原语的概念v2.3.2 核心态与用户态的概念核心态与用户态的概念v2.3.3 进程的创建与退出进程的创建与退出v2.3.4 进程的阻塞与唤醒进程的阻塞与唤醒2.3.1 2.3.1 原语的概念原语的概念v原语是由若干条机器指令构成的,用于完原语是由若干条机器指令构成的,用于完成某一特定功能的一段程序成某一特定功能的一段程序v原语在执行期间不可分割,原语操作具有原语在执行期间不可分割,原语操作具有原子性。原子性。2.3.2 2.3.2

17、核心态与用户态的概念核心态与用户态的概念v为了防止操作系统及关键数据(如为了防止操作系统及关键数据(如PCB等)等)受到用户有意或无意的破坏,通常将处理受到用户有意或无意的破坏,通常将处理机的执行状态分为两种:机的执行状态分为两种:核心态,又称管态,是操作系统管理代码执核心态,又称管态,是操作系统管理代码执行时机器所处的状态。行时机器所处的状态。它具有较高的特权,能执行一切指令,访问所有它具有较高的特权,能执行一切指令,访问所有的寄存器和存储区。的寄存器和存储区。用户态,又称目态,是用户进程执行时机器用户态,又称目态,是用户进程执行时机器所处的状态。所处的状态。这是具有较低特权的执行状态,它只

18、能执行规定这是具有较低特权的执行状态,它只能执行规定的指令,访问指定的寄存器和存储区的指令,访问指定的寄存器和存储区 。WINDOWS/XPWINDOWS/XP的体系结构的体系结构WINDOWS/XPWINDOWS/XP核心态中的一些主要成份核心态中的一些主要成份v核心部分核心部分中断处理和中断处理和调度调度;异常处理和;异常处理和异常调度异常调度;多处;多处理器同步;线程安排和理器同步;线程安排和调度调度;供执行体使用的;供执行体使用的基本内核对象基本内核对象(包括控制对象和调度支持对象包括控制对象和调度支持对象)控制对象控制对象:内核进程对象内核进程对象,异步过程调用异步过程调用APC,延

19、迟过延迟过程调用程调用DPC,以及一些供,以及一些供I/O系统使用对象系统使用对象调度支持对象:线程对象调度支持对象:线程对象,互斥体互斥体Mutex,信号量信号量Semaphore,事件事件Event,定时器定时器v执行体部分执行体部分进程和线程管理器进程和线程管理器(创建创建/中止中止)、内存管理器、内存管理器、I/O管理器管理器、缓存管理器、电源管理器、即插即、缓存管理器、电源管理器、即插即用设备管理器、注册表管理器、用设备管理器、注册表管理器、LPC、2.3.3 2.3.3 进程的基本管理进程的基本管理v1. 进程创建的一些常用原语进程创建的一些常用原语v2. 进程创建的基本过程进程创

20、建的基本过程v3. 进程终止进程终止/退出退出v4. 进程阻塞与挂起进程阻塞与挂起1. 1. 创建进程的相关原语创建进程的相关原语v一个进程可利用系统调用来创建新进程,创一个进程可利用系统调用来创建新进程,创建者称为建者称为父进程父进程,被创建者称为,被创建者称为子进程子进程。进程树进程树vfork (分叉(分叉克隆)克隆)复制现有进程的上下文来创建新进程复制现有进程的上下文来创建新进程vExec先先fork, 再加载新进程映像并覆盖自身再加载新进程映像并覆盖自身vspawn创建新进程并创建新进程并加载加载新进程新进程 (spawn )2. 2. 进程创建的基本过程进程创建的基本过程 v申请空

21、白申请空白PCB(创建内核进程对象)(创建内核进程对象)v为新进程分配资源为新进程分配资源创建进程地址空间框架;创建进程地址空间框架;创建进程打开对象句柄表;创建进程打开对象句柄表;加载并映射新进程映像到进程用户空间,包括加载并映射新进程映像到进程用户空间,包括分配部分物理内存页;分配部分物理内存页;在进程用户空间中分配进程运行环境控制块在进程用户空间中分配进程运行环境控制块(PEB);v初始化进程初始化进程PCB和和PEBv将新进程状态置为将新进程状态置为“就绪就绪”,并插入就绪,并插入就绪队列。队列。WindowsWindows系统的进程创建过程系统的进程创建过程v分配并设置分配并设置EP

22、ROCESS(含含KPROCESS)数据结构。数据结构。v为目标进程创建初始的地址空间。为目标进程创建初始的地址空间。建立初始地址建立初始地址VAD树;建立初始页表(页面映射方案表);树;建立初始页表(页面映射方案表);v分配并设置其他相关数据结构,例如,分配并设置其他相关数据结构,例如,“打开对象表打开对象表” 。v对目标进程的对目标进程的“内核进程块内核进程块”KPROCESS进行初始化。进行初始化。v将将NTDLL映像映射到目标进程的用户地址空间映像映射到目标进程的用户地址空间v将目标进程的映像映射到其自身的用户空间。将目标进程的映像映射到其自身的用户空间。v映射映射NLS有关的数据结构

23、到用户空间。有关的数据结构到用户空间。v创建并设置好目标进程的创建并设置好目标进程的“进程环境块进程环境块”PEB。含进程运行参数、映像装入地址、含进程运行参数、映像装入地址、NLS支持映像地址等信息支持映像地址等信息 v创建进程的第一个线程创建进程的第一个线程分配堆栈、分配并初始化运行上下文、创建线程对象分配堆栈、分配并初始化运行上下文、创建线程对象ETHREAD、分配并设置线程环境块分配并设置线程环境块TEBv完成完成EPROCESS创建,将其首线程挂入就绪队列创建,将其首线程挂入就绪队列注意,受调度的是线程队列而不是进程队列。注意,受调度的是线程队列而不是进程队列。 3.3.进程的终止进

24、程的终止/ /退出(退出(EXIT()EXIT()v根据被终止进程标识,从根据被终止进程标识,从PCB中检索出该中检索出该进程进程PCB,从中读出进程状态;,从中读出进程状态;v若被终止进程处于执行状态,应立即中止若被终止进程处于执行状态,应立即中止该进程的执行该进程的执行修改该进程的状态到终止状态,并立即申请再修改该进程的状态到终止状态,并立即申请再调度;调度;若还有子孙进程,还应将它们终止或过继;若还有子孙进程,还应将它们终止或过继;v释放进程拥有的所有资源;释放进程拥有的所有资源;v释放释放PCB2.4 2.4 线程线程v2.4.1 线程的有关概念线程的有关概念v2.4.2 线程的相关数

25、据结构线程的相关数据结构v2.4.3 线程的创建线程的创建v2.4.4 线程与进程比较线程与进程比较2.4.1 2.4.1 线程的有关概念(线程的有关概念(1 1)v在只有进程概念的在只有进程概念的OS中,进程是资源的分中,进程是资源的分配单位,同时也是处理器的调度单位。配单位,同时也是处理器的调度单位。v现代现代OS为进一步提高系统的并发性能,往为进一步提高系统的并发性能,往往都引入了比进程粒度更细的往都引入了比进程粒度更细的 “线程线程”概概念:念:一个进程内可容纳多个线程。进程仍作为参与一个进程内可容纳多个线程。进程仍作为参与资源分配的最基本单位,但把线程作为调度的资源分配的最基本单位,

26、但把线程作为调度的最基本单位,从而达到以小的开销来提高进程最基本单位,从而达到以小的开销来提高进程内的并发和共享程度的目的。内的并发和共享程度的目的。2.4.1 2.4.1 线程的有关概念(线程的有关概念(2 2)v线程是具体的线程是具体的(执行执行)上下文,是上下文,是CPU调度的基本调度的基本单元;而进程只是若干个共享地址空间和相同特单元;而进程只是若干个共享地址空间和相同特性性 (如调度优先级如调度优先级)的线程集合,好像是的线程集合,好像是 “提取提取公因子公因子”所形成的结果。所形成的结果。 v进程只是个空架子,实际的运行实体是里面的线进程只是个空架子,实际的运行实体是里面的线程。程

27、。 v线程是线程是1个动态对象,是个动态对象,是CPU调度的基本单位,调度的基本单位,表示进程中的表示进程中的1个控制点,执行一系列指令。个控制点,执行一系列指令。v由于同一进程内各线程都可以访问整个线程的所由于同一进程内各线程都可以访问整个线程的所有资源,故它们间的通信比进程间通信要方便;有资源,故它们间的通信比进程间通信要方便;v同一进程内的线程间切换也会由于许多上下文的同一进程内的线程间切换也会由于许多上下文的相同而简化。相同而简化。2.4.2 2.4.2 线程的相关数据结构线程的相关数据结构v线程的内核数据结构(代表对象)线程的内核数据结构(代表对象)是是ETHREAD,是一种调度对象

28、,它的第一个,是一种调度对象,它的第一个成份是数据结构成份是数据结构KTHREAD,也称为,也称为TCB ;v线程在用户空间的相关数据结构线程在用户空间的相关数据结构有自己专有堆栈;有自己专有堆栈;有自己的运行上下文;有自己的运行上下文;有自己的线程环境块有自己的线程环境块TEBPEB在用户空间的位置是固定的,在用户空间的位置是固定的,PEB下方就是下方就是TEB,进程中有几个线程就有几个,进程中有几个线程就有几个TEB,每个,每个TEB占一个占一个4KB的页面。的页面。 2.4.3 2.4.3 线程的创建线程的创建v一般首个线程在进程创建的结束阶段被自动创建一般首个线程在进程创建的结束阶段被

29、自动创建(由父进程代为创建);其它线程由进程自己调(由父进程代为创建);其它线程由进程自己调用系统用系统API函数创建。函数创建。v线程创建的基本过程线程创建的基本过程创建创建/初始化初始化ETHREAD数据结构,并处理好与数据结构,并处理好与EPROCESS的关系。的关系。为新线程分配堆栈、创建并初始化执行上下文。为新线程分配堆栈、创建并初始化执行上下文。在所属进程的用户空间中,创建并设置新线程在所属进程的用户空间中,创建并设置新线程TEB。进一步设置目标线程的进一步设置目标线程的KTHREAD数据结构,包括:数据结构,包括:设定新线程在用户空间执行入口始址。设定新线程在用户空间执行入口始址

30、。ETHREAD数据结构中数据结构中有相关成份,用来存放相关地址。有相关成份,用来存放相关地址。将其上下文中的断点将其上下文中的断点(返回点返回点)设置成指向内核中的一段程序设置成指向内核中的一段程序KiThreadStartup,使得该线程一旦被调度运行时就从这里开,使得该线程一旦被调度运行时就从这里开始执行。始执行。将线程对象标插入就绪队列将线程对象标插入就绪队列2.4.4 2.4.4 线程与进程比较(线程与进程比较(1 1)v地址空间:不同进程的地址空间相互地址空间:不同进程的地址空间相互独立,而同一进程的各线程共享同一独立,而同一进程的各线程共享同一地址空间,一个进程中的线程在另一地址

31、空间,一个进程中的线程在另一进程中是不可见的。进程中是不可见的。v通信关系:进程间通信必须通过通信关系:进程间通信必须通过OS提供的进程间通信机制,而同一进程提供的进程间通信机制,而同一进程的线程间通信可以通过的线程间通信可以通过直接读写进程直接读写进程数据段如全局变量数据段如全局变量进行(仍需要同步进行(仍需要同步互斥机制保证数据访问的一致性)。互斥机制保证数据访问的一致性)。v调度切换:同一进程中的线程上下文调度切换:同一进程中的线程上下文切换比进程上下文切换比进程上下文切换快得多切换快得多。2.4.4 2.4.4 线程与进程比较(线程与进程比较(2 2)v线程与进程相比的主要优点线程与进程相比的主要优点:创建、终止、切换快,系统开销少;创建、终止、切换快,系统开销少;通信方便通信方便由于同进程内线程间共享内存和文件资源,由于同进程内线程间共享内存和文件资源,故可直接进行不通过内核的通信;故可直接进行不通过内核的通信;系统允许的最大线程数限制弱得多;系统允许的最大线程数限制弱得多; 采用多线程的程序设计技术,可以更好采用多线程的程序设计技术,可以更好提高系统的运行性能(如吞吐量、计算提高系统的运行性能(如吞吐量、计算速度和响应时间等)。速度和响应时间等)。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号