计算机操作系统第2章进程管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机操作系统南京工业大学信息学院第二章进程管理★进程的基本概念★进程控制★进程同步★经典进程同步问题★进程通信★线程这一章介绍如下几个问题:2.1进程的基本概念(1)程序的顺序执行及其特征顺序执行包含两层含义:●对于多个用户程序来说,所有程序是依次执行的。(外部顺序性)●对于一个程序来说,它的所有指令是按序执行的。(内部顺序性)2.1进程的基本概念(2)程序顺序执行的特征(1)顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在下一操作开始之前结束(或者说下一操作必须在当前操作结束后才能开始)。(2)封闭性:程序是在封闭的环境下执行的。即●程序运行时独占全机资源,资源的状态(除初始态外)只有本程序才能改变它。●程序一旦开始执行,其执行结果不受外界影响。(3)可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,都将获得相同的结果。2.1进程的基本概念(3)程序的并发执行及其特征程序的并发执行包括两层含义:●对于一个程序来说,它的所有指令是按序执行的。(内部顺序性)●对于多个程序(进程)来说,所有进程是交叉执行的。(外部并发性)2.1进程的基本概念(4)程序并发执行时的特征1)间断性:程序在并发执行时,由于它们共享系统资源,以及为完成同一任务而相互合作,致使这些并发执行的程序之间形成了相互制约的关系。(互斥关系、同步关系)相互制约导致并发执行的程序具有“执行——暂停——执行”这种间断性活动规律。2)失去封闭性:程序在并发执行时,由于多个程序共享系统资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。某程序的执行时,会受到其他程序的影响。2.1进程的基本概念(5)程序并发执行时的特征3)不可再现性——与时间有关的错误程序在并发执行时,由于失去了封闭性,也将导致其再失去可再现性。例如:有两个循环程序A和B,它们共享一个变量N。L1:N=N+1;gotoL1;L2:print(N);N=0;gotoL2;程序A程序B程序A和B并发执行时,可能出现下述三种情况(设某时刻N的值为10):(1)N=N+1在print(N)和N=0之前,此时得到的N值分别为11,11,0。(2)N=N+1在print(N)和N=0之后,此时得到的N值分别为10,0,1。(3)N=N+1在print(N)和N=0之间,此时得到的N值分别为10,11,0。计算结果已与并发程序的执行速度有关,从而使程序执行失去了可再现性。2.1进程的基本概念(6)进程的特征与状态1.进程的定义和特征进程是程序在一个数据集上的运行过程,是系统进行资源分配和调度的一个独立单位。(传统OS的定义)定义1)结构特征:进程的特征程序段、相关的数据段、PCB三部分构成了进程实体。通常的程序是不能并发执行的,为使程序(含数据)能独立运行,应为之配置一进程控制块(即PCB)。在许多情况下所说的进程,实际上是指进程实体。如,所谓创建进程,……2)动态性:进程的实质是进程实体的一次执行过程,故动态性是进程的最基本特征。3)并发性:这是指多个进程实体同存于内存中,且能在一段时间内同时运行。2.1进程的基本概念(7)进程的特征与状态4)独立性:进程的特征:在传统的OS中,独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。5)异步性:是指进程按各自独立的、不可预知的速度向前推进,或说进程实体按异步方式运行。2.1进程的基本概念(8)进程的特征与状态进程的三种基本状态:1)就绪(Ready)状态:当进程已分配到除CPU以外的所有资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。2)执行(Running)状态:进程已获得CPU,其程序正在执行。3)阻塞(Blocked)状态:正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把这种暂停状态称为阻塞状态(或等待状态)。使进程阻塞的典型事件:请求I/O,申请缓冲空间等等。2.1进程的基本概念(9)进程的特征与状态进程的三种基本状态的转换:进程调度:就绪态执行态时间片完:执行态就绪态请求I/O:执行态阻塞态I/O完成:阻塞态就绪态引起进程状态转换的典型事件:2.1进程的基本概念(10)进程的特征与状态挂起状态:有些系统除了进程的三种基本状态外,还有挂起状态。1)引入挂起状态的原因:(1)终端用户的请求:(2)父进程请求:(3)负荷调节的需要:(4)操作系统的需要:当终端用户在自己的程序运行期间发现有可疑问题时,希望暂停执行。希望考察和修改子进程,或协调各子进程间的活动时实时系统中工作负荷较重时,系统可把一些不重要的进程挂起。操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。2.1进程的基本概念(11)进程的特征与状态挂起状态:2)进程状态的转换●活动就绪→静止就绪●活动阻塞→静止阻塞●静止就绪→活动就绪●静止阻塞→活动阻塞挂起原语Suspend激活原语Active2.1进程的基本概念(12)进程控制块(PCB)为了描述和控制进程的运行,系统为每个进程定义了一个数据结构——进程控制块。进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构。1.PCB作用:使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发进程进行控制和管理的。例如:进程调度;现场保护和恢复;进程同步和通信。PCB是进程存在的唯一标志2.1进程的基本概念(13)进程控制块(PCB)2.进程控制块中的信息PCB中记录了操作系统所需的、用于描述进程当前情况以及控制进程运行的全部信息。具体包括下述四方面的信息:1)进程标识符:内部标识符(进程号);外部标识符(名);父进程标识及子进程标识;用户标识2)处理机状态:处理机状态信息主要由处理机的各种寄存器中的内容组成的。寄存器包括:通用寄存器、指令计数器、程序状态字(PSW)寄存器、用户栈指针。(保护、恢复现场)当处理机被中断时,这些信息都必须保存到PCB中,以便该进程重新执行时,能从断点继续执行。2.1进程的基本概念(14)进程控制块(PCB)2.进程控制块中的信息3)进程调度信息:在PCB中还存放一些与进程调度和进程对换有关的信息。包括:★进程状态——作为调度和对换时的依据。★进程优先级——由于描述进程使用处理机的优先级别的一个整数,优先级高的进程优先获得处理机。★进程调度所需的其它信息——它们与所采用的进程调度算法有关。……★事件——即阻塞原因。2.1进程的基本概念(15)进程控制块(PCB)2.进程控制块中的信息4)进程控制信息:▲程序和数据的地址——指程序和数据所在的内存或外存首地址;▲进程同步和通信机制——如信号量、消息队列指针等,它们可能全部或部分地存放在PCB中;▲资源清单——是一张列出了除CPU外的、进程所需的全部资源及已经分配到该进程的资源的清单;▲链接指针——它给出本进程(PCB)所在队列中下一个进程的PCB的首址。2.1进程的基本概念(16)进程控制块(PCB)3.进程控制块的组织方式(1)常用的组织方式有两种:链接方式和索引方式。1)链接方式把具有同一状态的PCB,用其中的链接字链接成一个队列。形成:就绪队列、阻塞队列、空白队列等2.1进程的基本概念(17)进程控制块(PCB)3.进程控制块的组织方式(2)2)索引方式:系统根据所有进程的状态建立几张索引表。如,●就绪索引表●阻塞索引表等▲索引表的首址记录在专用单元中;▲每个索引表的表目中,记录具有相应状态的某个PCB的首址。2.2进程控制(1)进程控制是进程管理中最基本的功能。进程控制包括:◆创建进程◆终止进程◆进程状态转换进程控制是由OS的内核完成的。2.2进程控制(2)2.2.1进程的创建1.引起创建进程的事件▲用户登录▲作业调度▲提供服务当用户进程提出某种请求后,系统将专门创建一个进程来提供用户所需的服务。如,文件打印。上述三种情况,都是由系统内核为它创建一个新进程。▲应用请求:是基于应用进程的需求,由应用进程自己创建一个新进程,以便新进程以并发运行方式完成特定任务。2.2进程控制(3)2.2.1进程的创建(2)2.进程的创建调用进程创建原语Create(),按下述步骤创建一个进程:(1)申请空白PCB;(2)为新进程分配资源。主要是内存空间。(3)初始化PCB。包括:初始化标识信息初始化处理机状态信息:程序计数器,堆栈指针等进程状态——就绪或静止就绪、优先级等。初始化处理机控制信息:(4)将新进程插入就绪队列。2.2进程控制(4)2.2.2进程的终止1.引起进程终止的事件▲正常结束▲异常结束▲外界干预常见的异常结束事件有:越界错误保护错——试图访问不允许访问的资源或文件,或者以不适当方式访问非法指令特权指令错——用户程序试图执行只允许OS执行的指令运行超时等待超时算术运算错——被0除I/O故障♥操作员或操作系统干预(如发生死锁)♥父进程请求♥父进程终止2.2进程控制(5)2.2.2进程的终止2.进程的终止过程OS调用终止原语,按下述过程终止进程:(1)根据被终止进程的标识,从PCB集合中找除该进程的PCB,读出该进程状态。(2)若被终止进程正处于执行状态,应立即终止其执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。若该进程还有子孙进程,应将其所有子孙进程终止,以防止它们成为不可控进程。(3)将被终止进程的所有资源,或者归还给其父进程,或者归还给系统。(4)将被终止进程(它的PCB)从所在队列中移出,等待其他进程来搜索信息。2.2进程控制(6)2.2.2进程的阻塞和唤醒1.引起进程阻塞和唤醒的事件▲请求系统服务▲无新工作可做当执行进程请求OS服务时,由于某种原因,OS并不立即满足该进程的请求时,该进程只能转变为阻塞状态来等待。如,进程请求打印机,……系统往往设置一些具有特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来。如,系统中发送数据的进程,……▲启动某种操作当进程启动某种操作后,如果该进程必须在该操作完成后才能继续执行,则必须先使该进程阻塞,以等待操作完成。如,启动了某I/O设备,……▲新数据尚未到达对于相互合作的进程,如果其中一个进程需要获得另一个(合作)进程提供的数据才能运行以对数据进行处理,则只要其所需数据尚未到达,该进程只有阻塞(等待)。如,……2.2进程控制(7)2.2.2进程的阻塞和唤醒2.进程阻塞过程调用阻塞原语block把自己阻塞。(主动行为)阻塞(block)过程:▲立即停止执行;▲把PCB中进程状态由“执行”改为“阻塞”;▲将PCB插入具有相同事件的阻塞队列;▲转进程调度程序,将处理机分配给某个就绪进程,并进行进程切换——保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中处理机状态设置CPU的环境。2.2进程控制(8)2.2.2进程的阻塞和唤醒3.进程唤醒过程调用唤醒原语wakeup(),将等待事件的进程唤醒。唤醒原语执行过程:▲将被唤醒进程的PCB从阻塞队列移出;▲将其PCB中进程状态由“阻塞”改为“就绪”;▲将改PCB插入到就绪队列中。block()和wakeup()是成对的。2.2进程控制(9)2.2.4进程的挂起和激活1.进程的挂起当出现了引起进程挂起的事件时(用户进程请求将自己挂起,或父进程请求将子进程挂起),系统将用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。挂起原语的执行过程:▲检查被挂起进程的状态:若处于活动就绪或执行状态,则将其转为静止就绪;若处于活动阻塞,则将其转为静止阻塞。▲把该进程的PCB复制到某指定内存区域为方便用户或父进程考查该进程的运行状态。▲若该进程正在执行,则转进程调度程序重新调度。2.2进程控制(10)2.2.4进程的挂

1 / 84
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功