



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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、性。如何创建可执行程序如何创建可执行程序Creating an Executable ProgramCompilerLinkerLoaderAbsoluteProgramExecutableProgramRelocatableObjectModulesSourceModules2.1.1 2.1.1 进程概念的引入进程概念的引入v单任务环境下的单任务环境下的“可执行可执行”程序程序v多任务环境下多道程序并发执行多任务环境下多道程序并发执行 多道程序并发执行情况示例多道程序并发执行情况示例 本例中,程序片段本例中,程序片段S1与与S2可并发执行可并发执行 并发可有效提高系统的吞吐量并发可有效提高
4、系统的吞吐量 多道程序并发执行的特征多道程序并发执行的特征 间断性(切换执行)间断性(切换执行) 失去封闭性(共享系统的资源)失去封闭性(共享系统的资源) 结果不可再现性结果不可再现性 为有效管理和调度多道并发执行程序为有效管理和调度多道并发执行程序 须引入可完整描述每道执行中程序的数据结构;须引入可完整描述每道执行中程序的数据结构; 该思想逐步进化完善该思想逐步进化完善进程进程(process)概念概念S1S2S3S42.1.1 2.1.1 进程概念的引入进程概念的引入v单任务环境下的单任务环境下的“可执行可执行”程序程序v多任务环境下多道程序并发执行多任务环境下多道程序并发执行v进程概念的
5、引入与意义进程概念的引入与意义 进程是现代进程是现代OS最重要的概念之一最重要的概念之一 进程的管理、切换及调度,与保护模式密切相进程的管理、切换及调度,与保护模式密切相关,需要有保护模式知识,才能清晰理解进程关,需要有保护模式知识,才能清晰理解进程的实现机制和实现过程。的实现机制和实现过程。 执行进程切换的相关代码,被统称为执行进程切换的相关代码,被统称为OS的进的进程调度模块程调度模块 通常被运行在比通常被运行在比 “进程进程”更高的层级上;更高的层级上; 现代现代OS的调度代码,通常不是一个集中的模块,的调度代码,通常不是一个集中的模块,而是由分散在内核多个位置的若干代码片段构成。而是由
6、分散在内核多个位置的若干代码片段构成。OSOS进程切换示意图解进程切换示意图解数组或数组或队列队列OSOS的典型进程切换过程的典型进程切换过程中断处理程序框架中断处理程序框架 ;入口堆栈为当前进程的进程控制表入口堆栈为当前进程的进程控制表 ;保存当前保存当前CPU工作现场工作现场 Push ad ; push ds,es,fs,gs,. ;禁止当前中断禁止当前中断,但允许其它中断发生但允许其它中断发生 ;将堆栈切换到内核栈将堆栈切换到内核栈 ;执行实际的中断处理,对于时钟中断执行实际的中断处理,对于时钟中断 修改系统时间修改系统时间; 修改当前进程时间配额;修改当前进程时间配额; 若时间配额用
7、完,重调度若时间配额用完,重调度修改修改 p_proc_ready ;禁止所有中断发生禁止所有中断发生cli ;将栈切换到下一个启动进程的进程表将栈切换到下一个启动进程的进程表 mov esp, p_proc_ready lldt esp+p_ldt_sel ;恢复下一个执行进程的恢复下一个执行进程的CPU工作现场工作现场 pop .,gs,fs,es,ds; popad iretd进程表数组指针进程表数组指针2.1.2 2.1.2 进程定义进程定义v是具有一定独立功能的程序:在一个数据集是具有一定独立功能的程序:在一个数据集上的一次动态执行过程。上的一次动态执行过程。 一个程序可以通过多次执
8、行,产生多个进程一个程序可以通过多次执行,产生多个进程v是计算机内存中具有一定结构和具有相对独是计算机内存中具有一定结构和具有相对独立性的动态实体立性的动态实体(有独立的活动地址空间有独立的活动地址空间)。v是计算机系统资源的使用实体和参与系统资是计算机系统资源的使用实体和参与系统资源分配的最基本单位。源分配的最基本单位。v是计算机系统中可独立调度执行的实体。是计算机系统中可独立调度执行的实体。 注意,在进一步引入注意,在进一步引入“线程线程”的的OS中,可独立中,可独立调度执行的实体变为线程。调度执行的实体变为线程。Process DefinitionProcess Definition v
9、 It is a program in execution, the program defines its behavior.v It is a schedulable unit of computation that usually requires certain resources be allocated to it during execution. It is the most fundatmental unit for resources allocation. some modern OS may use threads or objects for the fundamen
10、tal unit of computation. v The 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 required by the prg. The status of its exec, or more precisely, an internal data structure (the process descriptor or PCB) to d
11、escribe/keep track it.进程的基本特征进程的基本特征v独立性独立性 每个进程具有自己每个进程具有自己相对独立的地址空间相对独立的地址空间,除非,除非通过进程通信手段,否则不能相互影响通过进程通信手段,否则不能相互影响v结构性结构性 进程空间是结构化的、分段组织的进程空间是结构化的、分段组织的;v动态性动态性 是或包含可在其地址空间中活动的执行体对象是或包含可在其地址空间中活动的执行体对象v并发性,也称异步性并发性,也称异步性 在同一个计算机系统中允许同时存在多个进程,在同一个计算机系统中允许同时存在多个进程,微观上它们可能是交替执行;但宏观上看,则微观上它们可能是交替执行;
12、但宏观上看,则似乎在似乎在同时同时独立运行。独立运行。用户空间是进程的一个最主要特征用户空间是进程的一个最主要特征! !一种抽象的一种抽象的“进程空间进程空间”视图模型视图模型 每个进程有每个进程有自己专有的自己专有的“一本帐一本帐”“一套表一套表”2.1.3 2.1.3 进程控制块进程控制块(PCB)(PCB)v 也称进程表,是也称进程表,是OS维护的、用来跟踪记录进程存在和活维护的、用来跟踪记录进程存在和活动情况的数据结构。动情况的数据结构。 与进程有关的信息被集中存储在这个数据结构中。与进程有关的信息被集中存储在这个数据结构中。 v 每个进程在每个进程在OS都有一个唯一的都有一个唯一的P
13、CB Windows中,中,PCB也被称为也被称为 内核进程对象内核进程对象 ,是,是一种内核控制对象。一种内核控制对象。 不允许进程自身访问,只允许内核代码访问。不允许进程自身访问,只允许内核代码访问。v PCB主要内容主要内容 进程描述信息进程描述信息:PID,NAME, USERID,PROCESS GROUP 处理器现场保护信息处理器现场保护信息: CPU内部各寄存器内部各寄存器 进程控制信息进程控制信息:当前状态、优先级、代码执行入口地址、程序外存当前状态、优先级、代码执行入口地址、程序外存地址、运行统计信息地址、运行统计信息(执行时间、调度次数、页面调度执行时间、调度次数、页面调度
14、) 资源占用信息列表,打开资源对象句柄表资源占用信息列表,打开资源对象句柄表 用于进程间同步与通信的相关信息字段用于进程间同步与通信的相关信息字段 指向进程虚空间使用分配描述表指针(指向进程虚空间使用分配描述表指针(PCB-AddressSpace ) (注意,因页目录注意,因页目录/页表占空间页表占空间 较大,较大,虽位于系统空间但不能安排在核虽位于系统空间但不能安排在核心,即心,即 PCBPCB,页挂起进程页表可能会被,页挂起进程页表可能会被SWAPSWAP到外存!到外存!) )2.1.3 2.1.3 进程控制块进程控制块(PCB)(PCB)PCB-AddressSpace进程页目录的物理
15、地址进程页目录的物理地址2.2 2.2 进程的状态及其相互转换进程的状态及其相互转换DoneStartReadyBlockedRunningRequestRequestSchedule2.2.1 五状态图五状态图(三种基本状态新状态结束状态三种基本状态新状态结束状态 )PCB中有表示进程当前状态的字段(枚举型)2.2.2 2.2.2 进程的单挂起状态模型进程的单挂起状态模型activesuspend2.2.3 2.2.3 进程的双挂起状态模型进程的双挂起状态模型进程与程序比较(区别与联系)进程与程序比较(区别与联系)v程序是静态的程序是静态的, 是有序代码的集合是有序代码的集合, 是进程的定是
16、进程的定义和说明义和说明 对应着一个持久外存文件,具有外存文件的性质(创对应着一个持久外存文件,具有外存文件的性质(创建建/复制复制/删除删除.)。v进程是动态的、暂时的,是程序的一次执行,通进程是动态的、暂时的,是程序的一次执行,通常不能在计算机之间迁移。常不能在计算机之间迁移。v进程与程序的组成不同:进程组成包括代码段、进程与程序的组成不同:进程组成包括代码段、数据段和控制块。数据段和控制块。v进程与程序密切关联进程与程序密切关联 通过多次加载执行,一个程序可对应多个进程;通过通过多次加载执行,一个程序可对应多个进程;通过调用关系,一个进程可涉及多个程序。调用关系,一个进程可涉及多个程序。
17、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 核心态与用户态的概念核心态与用户态的概念v为了防止操作系统及关键数据(如为了防止操作系统及关键数据(如PCB
18、等)等)受到用户有意或无意的破坏,通常将处理受到用户有意或无意的破坏,通常将处理机的执行状态分为两种:机的执行状态分为两种: 核心态,又称管态,是操作系统管理代码执核心态,又称管态,是操作系统管理代码执行时机器所处的状态。行时机器所处的状态。 它具有较高的特权,能执行一切指令,访问所有它具有较高的特权,能执行一切指令,访问所有的寄存器和存储区。的寄存器和存储区。 用户态,又称目态,是用户进程执行时机器用户态,又称目态,是用户进程执行时机器所处的状态。所处的状态。 这是具有较低特权的执行状态,它只能执行规定这是具有较低特权的执行状态,它只能执行规定的指令,访问指定的寄存器和存储区的指令,访问指定
19、的寄存器和存储区 。WINDOWS/XPWINDOWS/XP的体系结构的体系结构WINDOWS/XPWINDOWS/XP核心态中的一些主要成份核心态中的一些主要成份v核心部分核心部分 中断处理和中断处理和调度调度;异常处理和;异常处理和异常调度异常调度;多处;多处理器同步;线程安排和理器同步;线程安排和调度调度;供执行体使用的;供执行体使用的基本内核对象基本内核对象(包括控制对象和调度支持对象包括控制对象和调度支持对象) 控制对象控制对象:内核进程对象内核进程对象,异步过程调用异步过程调用APC,延迟过延迟过程调用程调用DPC,以及一些供,以及一些供I/O系统使用对象系统使用对象 调度支持对象
20、:线程对象调度支持对象:线程对象,互斥体互斥体Mutex,信号量信号量Semaphore,事件事件Event,定时器定时器v执行体部分执行体部分 进程和线程管理器进程和线程管理器(创建创建/中止中止)、内存管理器、内存管理器、I/O管理器管理器、缓存管理器、电源管理器、即插、缓存管理器、电源管理器、即插即用设备管理器、注册表管理器、即用设备管理器、注册表管理器、LPC、2.3.3 2.3.3 进程的基本管理进程的基本管理v1. 进程创建的一些常用原语进程创建的一些常用原语v2. 进程创建的基本过程进程创建的基本过程v3. 进程终止进程终止/退出退出v4. 进程阻塞与挂起进程阻塞与挂起1. 1.
21、 创建进程的相关原语创建进程的相关原语v一个进程可利用系统调用来创建新进程,一个进程可利用系统调用来创建新进程,创建者称为创建者称为父进程父进程,被创建者称为,被创建者称为子进程子进程。 进程树进程树vfork (分叉(分叉克隆)克隆) 复制现有进程的上下文来创建新进程复制现有进程的上下文来创建新进程vExec 先先fork, 再加载新进程映像并覆盖自身再加载新进程映像并覆盖自身vspawn 创建新进程并创建新进程并加载加载新进程新进程 (spawn )2. 2. 进程创建的基本过程进程创建的基本过程 v申请空白申请空白PCB(创建内核进程对象)(创建内核进程对象)v为新进程分配资源为新进程分
22、配资源 创建进程地址空间框架;创建进程地址空间框架; 创建进程打开对象句柄表;创建进程打开对象句柄表; 加载并映射新进程映像到进程用户空间,包括加载并映射新进程映像到进程用户空间,包括分配部分物理内存页;分配部分物理内存页; 在进程用户空间中分配进程运行环境控制块在进程用户空间中分配进程运行环境控制块(PEB);v初始化进程初始化进程PCB和和PEBv将新进程状态置为将新进程状态置为“就绪就绪”,并插入就绪,并插入就绪队列。队列。WindowsWindows系统的进程创建过程系统的进程创建过程v 分配并设置分配并设置EPROCESS(含含KPROCESS)数据结构。数据结构。v 为目标进程创建
23、初始的地址空间。为目标进程创建初始的地址空间。 建立初始地址建立初始地址VAD树;建立初始页表(页面映射方案表);树;建立初始页表(页面映射方案表);v 分配并设置其他相关数据结构,例如,分配并设置其他相关数据结构,例如,“打开对象表打开对象表” 。v 对目标进程的对目标进程的“内核进程块内核进程块”KPROCESS进行初始化。进行初始化。v 将将NTDLL映像映射到目标进程的用户地址空间映像映射到目标进程的用户地址空间v 将目标进程的映像映射到其自身的用户空间。将目标进程的映像映射到其自身的用户空间。v 映射映射NLS有关的数据结构到用户空间。有关的数据结构到用户空间。v 创建并设置好目标进
24、程的创建并设置好目标进程的“进程环境块进程环境块”PEB。 含进程运行参数、映像装入地址、含进程运行参数、映像装入地址、NLS支持映像地址等信息支持映像地址等信息 v 创建进程的第一个线程创建进程的第一个线程 分配堆栈、分配并初始化运行上下文、创建线程对象分配堆栈、分配并初始化运行上下文、创建线程对象ETHREAD、分配并设置线程环境块分配并设置线程环境块TEBv 完成完成EPROCESS创建,将其首线程挂入就绪队列创建,将其首线程挂入就绪队列 注意,受调度的是线程队列而不是进程队列。注意,受调度的是线程队列而不是进程队列。 3.3.进程的终止进程的终止/ /退出(退出(EXIT()EXIT(
25、)v根据被终止进程标识,从根据被终止进程标识,从PCB中检索出该中检索出该进程进程PCB,从中读出进程状态;,从中读出进程状态;v若被终止进程处于执行状态,应立即中止若被终止进程处于执行状态,应立即中止该进程的执行该进程的执行 修改该进程的状态到终止状态,并立即申请再修改该进程的状态到终止状态,并立即申请再调度;调度; 若还有子孙进程,还应将它们终止或过继;若还有子孙进程,还应将它们终止或过继;v释放进程拥有的所有资源;释放进程拥有的所有资源;v释放释放PCB2.4 2.4 线程线程v2.4.1 线程的有关概念线程的有关概念v2.4.2 线程的相关数据结构线程的相关数据结构v2.4.3 线程的
26、创建线程的创建v2.4.4 线程与进程比较线程与进程比较2.4.1 2.4.1 线程的有关概念(线程的有关概念(1 1)v在只有进程概念的在只有进程概念的OS中,进程是资源的分中,进程是资源的分配单位,同时也是处理器的调度单位。配单位,同时也是处理器的调度单位。v现代现代OS为进一步提高系统的并发性能,往为进一步提高系统的并发性能,往往都引入了比进程粒度更细的往都引入了比进程粒度更细的 “线程线程”概概念:念: 一个进程内可容纳多个线程。进程仍作为参与一个进程内可容纳多个线程。进程仍作为参与资源分配的最基本单位,但把线程作为调度的资源分配的最基本单位,但把线程作为调度的最基本单位,从而达到以小
27、的开销来提高进程最基本单位,从而达到以小的开销来提高进程内的并发和共享程度的目的。内的并发和共享程度的目的。2.4.1 2.4.1 线程的有关概念(线程的有关概念(2 2)v线程是具体的线程是具体的(执行执行)上下文,是上下文,是CPU调度的基本调度的基本单元;而进程只是若干个共享地址空间和相同特单元;而进程只是若干个共享地址空间和相同特性性 (如调度优先级如调度优先级)的线程集合,好像是的线程集合,好像是 “提取提取公因子公因子”所形成的结果。所形成的结果。 v进程只是个空架子,实际的运行实体是里面的线进程只是个空架子,实际的运行实体是里面的线程。程。 v线程是线程是1个动态对象,是个动态对
28、象,是CPU调度的基本单位,调度的基本单位,表示进程中的表示进程中的1个控制点,执行一系列指令。个控制点,执行一系列指令。v由于同一进程内各线程都可以访问整个线程的所由于同一进程内各线程都可以访问整个线程的所有资源,故它们间的通信比进程间通信要方便;有资源,故它们间的通信比进程间通信要方便;v同一进程内的线程间切换也会由于许多上下文的同一进程内的线程间切换也会由于许多上下文的相同而简化。相同而简化。2.4.2 2.4.2 线程的相关数据结构线程的相关数据结构v线程的内核数据结构(代表对象)线程的内核数据结构(代表对象) 是是ETHREAD,是一种调度对象,它的第一个,是一种调度对象,它的第一个
29、成份是数据结构成份是数据结构KTHREAD,也称为,也称为TCB ;v线程在用户空间的相关数据结构线程在用户空间的相关数据结构 有自己专有堆栈;有自己专有堆栈; 有自己的运行上下文;有自己的运行上下文; 有自己的线程环境块有自己的线程环境块TEB PEB在用户空间的位置是固定的,在用户空间的位置是固定的,PEB下方就是下方就是TEB,进程中有几个线程就有几个,进程中有几个线程就有几个TEB,每个,每个TEB占一个占一个4KB的页面。的页面。 2.4.3 2.4.3 线程的创建线程的创建v一般首个线程在进程创建的结束阶段被自动创建一般首个线程在进程创建的结束阶段被自动创建(由父进程代为创建);其它线程由进程自己调(由父进程代为创建);其它线程由进程自己调用系统用系统API函数创建。函数创建。v线程创建的基本过程线程创建的基本过程 创建创建/初始化初始化ETHREAD数据结构,并处理好与数据结构,并处理好与EPROCESS的关系。的关系。 为新线程分配堆栈、创建并初始化执行上下文。为新线程分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年园艺学与设计专业考试试卷及答案
- 天津市宁河县2025年初三第二次联考考数学试题文试题含解析
- 2025年网络工程师职业资格认证考试试题及答案
- 天津理工大学中环信息学院《合奏(3)》2023-2024学年第一学期期末试卷
- 2025年网络安全技术职业资格考试题及答案
- 漯河食品职业学院《中学英语课堂教学与设计》2023-2024学年第二学期期末试卷
- 吉林省松原市扶余市第一中学2025届三月份月考物理试题含解析
- 智能制造民营企业股权重组与产业升级协议
- 公共交通基础设施工程合同纠纷仲裁调解协议
- 农村土地流转蔬菜大棚种植与农产品品牌建设合同
- 2024国能神东煤炭集团有限责任公司第二批系统内招聘70人笔试参考题库附带答案详解
- 《酒鬼酒集团公司存在的财务风险及应对策略研究案例报告》9600字
- 2025年工业园区年度工作计划范文
- 2024全国初中数学竞赛试题及答案
- 新版院感培训课件
- (高清版)DB36∕T 1332-2020 水利工程标识标牌
- 2024-2025学年上海市浦东新区初三一模语文试卷(含答案)
- 企业创新韧性的驱动路径研究
- 2025年江苏泰州市第四人民医院招聘高层次人才15人历年高频重点提升(共500题)附带答案详解
- 二零二五年度跨境电商合伙人合作协议书3篇
- 知宪明法与宪同行课件-高一上学期宪法宣传周主题班会
评论
0/150
提交评论