您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 《进程描述和控制》PPT课件
第二部分进程管理为了提高计算机资源的利用率,采用多道程序设计技术,程序并发执行环境带来了结果不可再现性的问题。为此第二部分引入进程概念用以描述程序并发执行,进而深入分析进程的控制、同步、通讯和死锁等,用以解决程序并发执行带来的问题,使多道程序有效执行。并发性是操作系统最重要的特征,进程是操作系统最基本最重要的概念,进程管理是操作系统的重点和难点。2/61教学要求熟悉进程引入的必要性;熟练掌握进程的定义和特征,熟练掌握进程的三个基本状态、状态的转换和状态转换的关系,熟练掌握进程存在的唯一实体--进程控制块,熟悉进程上下文。了解线程的概念、引入线程的好处和线程的应用。熟悉进程间制约关系,掌握临界资源和临界区概念,掌握进程同步和进程同步机制,熟悉利用软件、硬件技术解决进程同步机制。熟练掌握信号量机制(记录型信号量和wait、signal操作)的概念、定义和实质,熟练掌握利用信号量机制实现进程互斥和同步。掌握利用信号量解决生产者-消费者等经典同步问题,掌握进程同步分析方法。掌握死锁的定义和产生死锁的原因,掌握死锁的四个必要条件;熟悉预防死锁的方法,熟练掌握银行家算法及其在死锁避免中的应用;掌握资源分配图的简化及其死锁定理,熟悉解除死锁的方法。3/61进程描述和控制第3章4/61多道程序操作系统设计要求操作系统必须交替执行多个进程,在合理的响应时间内使处理器的利用率最大化操作系统系统必须按照特定的策略给进程分配资源,并需要避免死锁和饿死的情况进程间需要进行正确的通信5/61为什么要引入进程的概念?为了提高资源利用率,系统采用多道程序设计,程序执行环境由顺序执行变为并发执行。由于程序在并发执行时,可能会造成执行结果的不可再现,所以用“程序”这个概念已无法描述程序的并发执行,所以必须引入新的概念---进程来描述程序的并发执行,并要对进程进行必要的管理,以保证进程在并发执行时结果可再现。6/61什么叫进程?进程(Process)定义:“可并发执行的程序在一个数据集合上的运行过程”。一段可执行的程序计算机中正在运行的程序的一个实例可以分配给处理器并由处理器执行的一个实体由一个顺序的执行线程、一个当前的状态以及一组相关的系统资源所描述的活动单元7/61进程的特征动态性:动态性是进程的最基本特征。它由创建而产生、由调度而执行,因得不到资源而暂停,并由撤消而死亡。而程序是静态的,它是存放在介质上一组有序指令的集合,无运动的含义。并发性:并发性是进程的重要特征。并发性指多个进程实体同存于内存中,能在一段时间内同时运行。独立性:进程是一个能独立运行的基本单位,即是一个独立获得资源和独立调度的单位异步性:进程按各自独立的不可预知的速度向前推进,即进程按异步方式进行,正是这一特征,将导致程序执行的不可再现性,因此OS必须采用某种措施来限制各进程推进序列以保证各程序间正常协调运行。结构特征:从结构上,进程实体由程序段、数据段和进程控制块三部分组成。8/61进程控制块(PCB)包含描述进程的基本信息标识符(Identifier)进程状态(State)优先级(Priority)程序计数器(Programcounter)内存指针(Memorypointers)上下文数据(Contextdata):指进程执行时处理器的寄存器中的数据。I/O状态信息(I/Ostatusinformation)统计信息(Accountinginformation)由操作系统创建并管理9/61进程运行轨迹(进程内各指令的执行序列)10/6111/61两状态进程模型系统中的进程处于两种状态之一:运行态(Running)未运行态(Not-running)操作系统必须知道进程当前处于哪种状态中,以便于跟踪进程的执行——PCB。12/61未运行态进程队列当操作系统创建一个新的进程时,该进程的状态初始化为未运行态,并加入到未行态队列中。13/61进程创建创建新进程时,操作系统需要建立管理该进程的数据结构(PCB),并在主存中给它分配地址空间。14/61进程终止15/61Q1:执行到40条指令时,两状态模型下,在非运行状态队列中时间最久的是哪个进程?Q2:调度的是哪个进程?为什么?16/61进程状态模型改进未运行状态就绪状态(Readytoexecute)阻塞状态(Blocked)等待I/O操作完成如果使用单个未运行队列,分派程序不能只考虑选择队列中等待时间最久的进程,而是查找那些未被阻塞且在队列中等待时间最久的进程。每次遍历队列需要花费大量的时间,如何解决?采用两个不同的队列17/61五状态模型运行(Running):占有CPU就绪(Ready):除了CPU,其它所需资源都已占有,一旦得到处理机即可运行,则称此进程处于就绪状态阻塞(Blocked):等待某些事件新建(New):已经创建了PCB并保存在主存中,但程序代码和相关数据还没有读入主存退出(Exit)18/61五状态进程模型19/61进程状态的转换就绪态――>运行态:当处理机空闲时,进程调度程序必将处理机分配给一个处于就绪态的进程,该进程便由就绪态转换为运行态。运行态――>阻塞态:处于运行态的进程在运行过程中需要等待某一事件发生后,才能继续运行,则该进程放弃处理机,从运行态转换为阻塞态。阻塞态――>就绪态:处于阻塞态的进程,若其等待的事件已经发生,进程由阻塞态转换为就绪态。运行态――>就绪态:处于运行状态的进程在其运行过程中,因分给它的处理机时间片已用完,而不得不让出(被抢占)处理机,于是进程由运行态转换为就绪态。阻塞态――>运行态和就绪态――>阻塞态这二种状态转换不可能发生。20/61系统中各进程状态管理处于运行态进程:如系统有一个处理机,则在任何一时刻,最多只有一个进程处于运行态。处于就绪态进程:一般处于就绪态的进程按照一定的算法(如先来的进程排在前面,或采用优先权高的进程排在前面)排成一个就绪队列。处于阻塞态进程:处于阻塞态的进程排在阻塞队列中。21/61两个队列:就绪队列和阻塞队列Q1:当某个等待的事件完成了,操作系统该如何操作?硬件上如何改善?Q2:如果操作系统考虑进程的优先级,则操作系统该将CPU分派给哪种进程?硬件上如何实现?22/61多个阻塞队列当事件n发生时,在事件n等待队列中的所有进程都移进就绪队列中23/61在一个多道程序设计的系统中,各进程状态转换会互相影响。例如系统中一个运行态的进程A发生I/O请求后要等待I/O完成,它的状态也由运行态转换为阻塞态;此时进程调度程序就会按照一定的算法,在就绪队列中选一个进程B,将处理机分给它,该B进程的状态也由就绪态转换为运行态。如一个进程C等待的事件完成,则它的状态由阻塞态转换为就绪态,它也从阻塞队列中抽出插入就绪队列中。如进程C从阻塞态转换为就绪态时,有一个进程D在CPU上运行。而系统采用抢占式调度算法,进程C的优先级又高于正在CPU上运行的进程D的优先级,则要发生抢占调度。即接下去的操作时由进程调度程序将正在运行的进程D由运行态转换为就绪态,插入就绪队列。24/61[例1]一个只有一个处理机的系统中,OS的进程有运行、就绪、阻塞三个基本状态。假如某时刻该系统中有10个进程并发执行,在略去调度程序所占用时间情况下试问:这时刻系统中处于运行态的进程数最多几个?最少几个这时刻系统中处于就绪态的进程数最多几个?最少几个这时刻系统中处于阻塞态的进程数最多几个?最少几个?解:因为系统中只有一个处理机,所以某时刻处于运行态的进程数最多只有一个。而最少可能为0,此时其它10个进程一定全部排在各阻塞队列中,在就绪队列中没有进程。而某时刻处于就绪态的进程数最多只有9个,不可能出现10个情况,因为一旦CPU有空,调度程序马上调度,当然这是在略去调度程序调度时间时考虑。处于阻塞态的进程数最少是0个。25/61例2:某进程所要求的一次打印输出结束后,其进程的状态将从()A.运行态到就绪态B.运行态到阻塞态C.阻塞态到就绪态D.就绪态到阻塞态26/61挂起(Suspended)进程处理器运行的速度远远地快于I/O设备,运行一段时间后会出现所有进程都处于阻塞态(等待I/O操作),就绪态进程数为0,此时处理器必须等待。如何解决?扩充内存将进程交换到磁盘,释放内存空间当进程被交换到磁盘上,则该进程从阻塞状态转换到挂起状态27/61一个挂起状态28/61两个挂起状态阻塞/挂起(Blocked/Suspend)就绪/挂起(Ready/Suspend)29/61挂起状态的特征进程处于挂起状态是指该进程不在主存中。进程不能立即执行;进程可能在等待某个事件,也可能不等待事件,即进程挂起与否与进程阻塞与否没有必然的联系。30/61例题1:为什么要引入进程概念?进程的基本特征是什么?它与程序有何区别?2:在操作系统中进程是一个具有一定独立功能程序在某个数据集合上的一次﹎﹎A﹎﹎,进程是一个﹎﹎B﹎﹎概念,而程序是一个﹎﹎C﹎﹎的概念。在一单处理机中,若有5个用户进程,在非管态的某一时刻,处于就绪状态的用户进程最多有﹎﹎D﹎﹎个,最少有﹎﹎E﹎﹎个。A:(1)并发活动;(2)运行活动;(3)单独操作;(4)关联操作。B,C:(1)组合态;(2)关联态;(3)运行态;(4)等待态;(5)静态;(6)动态。D,E:(1)1;(2)2;(3)3;(4)4;(5)5;(6)0。31/613:我们常用进程状态转换图来说明处理机管理的许多问题,例如下列进程状态转换图,请回答:(1)什么事件引起每次显著的状态转换?(2)在什么情况下,如果有的话,将发生下述因果转换?a.②---①;b.③---②;c.④---①。(3)我们观察系统中所有进程时.常看到某一进程P产生的一次状态转换可能引起另一进程q作一次状态转换。试分析在什么情况下:a.进程P的转换③能引起进程q的转换①?b.进程P的转换④能引起进程q的转换②?运行就绪阻塞123432/614:从静态角度看,进程由﹎﹎A﹎﹎、﹎﹎B﹎﹎和﹎﹎C﹎﹎三部分组成,用户可通过﹎﹎D﹎﹎建立和撤消进程,通常用户进程被建立后,﹎﹎E﹎﹎。A:(1)JCB;(2)DCB;(3)PCB;(4)PMT。B:(1)程序段;(2)文件体;(3)I/O;(4)子程序。C:(1)文件描述块;(2)数据空间;(3)EOF;(4)I/O缓冲区。D:(1)函数调用;(2)宏指令;(3)系统调用;(4)过程调用。E:(1)便一直存在于系统中,直到被操作人员撤消;(2)随着作业运行正常或不正常结束而撤消;(3)随着时间片轮转而撤消与建立;(4)随着进程的阻塞或唤醒而撤消与建立。33/615:正在执行的进程由于其时间片完而被暂停执行,此时进程应从运行态变为﹎﹎A﹎﹎状态;处于阻塞/挂起状态的进程,在进程等待的事件出现后,应转变为﹎﹎B﹎﹎状态;若进程正处于运行态时,应终端的请求而暂停下来以便研究其运行情况(执行挂起进程原语),这时进程应转变为﹎﹎C﹎﹎状态,若进程已处于阻塞状态,则此时应转变为﹎﹎D﹎﹎状态,若进程已处于就绪状态,则此时应转变为﹎﹎E﹎﹎状态;执行解除挂起进程原语后,如挂起进程处于就绪/挂起状态,则应转变为﹎﹎F﹎﹎态,如处于阻塞/挂起状态,则应转变为﹎﹎G﹎﹎态;一个进程刚被创建时,它的初始状态为﹎﹎H﹎﹎。A,...,H:(1)阻塞/挂起;(2)阻塞;(3)就绪/挂起;(4)就绪;(5)执行。34/61进程和资源描述图Q1:P1,P2,Pn的状态分别是什么?Q2:操作系统为了控制进程和管理资源需要哪些信息?35/61操作系统的控制结构操作系统必须记录每个进程和资源当前状态的信息操作系统利用表结构来管理四种不同类型的表:存储表、I/O设备表、文件表和进程表36/61存储表(MemoryTables)用于记录主存和辅存的当前状态。分配给进程的主存信息分配给进程的辅存信息主存块的保护属性,如哪些进程可以访问哪些共享主存区域等管理虚拟内存所需的其
本文标题:《进程描述和控制》PPT课件
链接地址:https://www.777doc.com/doc-5718438 .html