《进程描述和控制》PPT课件

上传人:文**** 文档编号:240792513 上传时间:2024-05-09 格式:PPT 页数:60 大小:713.70KB
返回 下载 相关 举报
《进程描述和控制》PPT课件_第1页
第1页 / 共60页
《进程描述和控制》PPT课件_第2页
第2页 / 共60页
《进程描述和控制》PPT课件_第3页
第3页 / 共60页
点击查看更多>>
资源描述
第二部分第二部分 进程管理进程管理 为了提高计算机资源的利用率,采用多道程序设为了提高计算机资源的利用率,采用多道程序设计技术,计技术,程序并发执行环境带来了结果不可再现性的程序并发执行环境带来了结果不可再现性的问题问题。为此第二部分引入进程概念用以描述程序并发。为此第二部分引入进程概念用以描述程序并发执行,进而深入分析进程的控制、同步、通讯和死锁执行,进而深入分析进程的控制、同步、通讯和死锁等,用以解决程序并发执行带来的问题,使多道程序等,用以解决程序并发执行带来的问题,使多道程序有效执行。有效执行。并发性是操作系统最重要的特征并发性是操作系统最重要的特征,进程是,进程是操作系统最基本最重要的概念,进程管理是操作系统操作系统最基本最重要的概念,进程管理是操作系统的重点和难点。的重点和难点。1/61第二部分 进程管理 为了提高计算机资源的利用率,采教学要求教学要求n熟悉熟悉进程引入的必要性;熟练掌握进程的定义和特征,熟练掌进程引入的必要性;熟练掌握进程的定义和特征,熟练掌握进程的三个基本状态、状态的转换和状态转换的关系握进程的三个基本状态、状态的转换和状态转换的关系,熟练熟练掌握进程存在的唯一实体掌握进程存在的唯一实体-进程控制块,进程控制块,熟悉熟悉进程上下文。进程上下文。n了解了解线程的概念线程的概念、引入线程的好处、引入线程的好处和线程的应用和线程的应用。n熟悉熟悉进程间制约关系,掌握临界资源和临界区概念,掌握进程进程间制约关系,掌握临界资源和临界区概念,掌握进程同步和进程同步机制,同步和进程同步机制,熟悉利用软件、熟悉利用软件、硬件技术解决进程同步硬件技术解决进程同步机制。机制。n熟练掌握信号量机制熟练掌握信号量机制(记录型信号量和记录型信号量和waitwait、signalsignal操作操作)的概的概念、定义和实质,熟练掌握利用信号量机制实现进程互斥和同念、定义和实质,熟练掌握利用信号量机制实现进程互斥和同步。掌握利用信号量解决生产者步。掌握利用信号量解决生产者-消费者等经典同步问题,掌握消费者等经典同步问题,掌握进程同步分析方法。进程同步分析方法。n掌握掌握死锁的定义和产生死锁的原因,死锁的定义和产生死锁的原因,掌握掌握死锁的四个必要条件;死锁的四个必要条件;熟悉熟悉预防死锁的方法,熟练掌握银行家算法及其在死锁避免中预防死锁的方法,熟练掌握银行家算法及其在死锁避免中的应用;掌握资源分配图的简化及其死锁定理,的应用;掌握资源分配图的简化及其死锁定理,熟悉熟悉解除死锁解除死锁的方法。的方法。2教学要求熟悉进程引入的必要性;熟练掌握进程的定义和特征,熟练进程描述和控制进程描述和控制第第 3 章章3/61进程描述和控制第 3 章3/61多道程序操作系统设计要求多道程序操作系统设计要求n操作系统必须操作系统必须交替执行多个进程交替执行多个进程,在合理的响应,在合理的响应时间内使处理器的利用率最大化时间内使处理器的利用率最大化n操作系统系统必须按照特定的策略给进程分配资操作系统系统必须按照特定的策略给进程分配资源,并需要避免死锁和饿死的情况源,并需要避免死锁和饿死的情况n进程间需要进行正确的通信进程间需要进行正确的通信4多道程序操作系统设计要求操作系统必须交替执行多个进程,在合理为什么要引入为什么要引入进程的概念?进程的概念?n为了提高资源利用率,系统采用多道程序设计,程为了提高资源利用率,系统采用多道程序设计,程序执行环境由顺序执行变为并发执行。序执行环境由顺序执行变为并发执行。n由于程序在并发执行时,可能会造成执行结果的不由于程序在并发执行时,可能会造成执行结果的不可再现,所以用可再现,所以用“程序程序”这个概念已无法描述程序这个概念已无法描述程序的并发执行,所以必须引入新的概念的并发执行,所以必须引入新的概念-进程进程来描述来描述程序的并发执行,并要对进程进行必要的管理,以程序的并发执行,并要对进程进行必要的管理,以保证进程在并发执行时结果可再现。保证进程在并发执行时结果可再现。5为什么要引入进程的概念?为了提高资源利用率,系统采用多道程序什么叫进程?什么叫进程?n进程进程(Process)定义:定义:“可并发执行的程序在一个可并发执行的程序在一个数据集合上的运行过程数据集合上的运行过程”。n一段可执行的程序一段可执行的程序n计算机中正在运行的程序的一个实例计算机中正在运行的程序的一个实例n可以分配给处理器并由处理器执行的一个实体可以分配给处理器并由处理器执行的一个实体n由一个顺序的执行线程、一个当前的状态以及由一个顺序的执行线程、一个当前的状态以及一组相关的系统资源所描述的活动单元一组相关的系统资源所描述的活动单元6什么叫进程?进程(Process)定义:“可并发执行的程序在进程的进程的特征特征l动态性动态性:动态性是进程的最基本特征动态性是进程的最基本特征。它由创建而产生、。它由创建而产生、由调度而执行,因得不到资源而暂停,并由撤消而死亡。由调度而执行,因得不到资源而暂停,并由撤消而死亡。而程序是静态的,它是存放在介质上一组有序指令的集而程序是静态的,它是存放在介质上一组有序指令的集合,无运动的含义。合,无运动的含义。l并发性并发性:并发性是进程的重要特征。并发性指多个进程:并发性是进程的重要特征。并发性指多个进程实体同存于内存中,能在一段时间内同时运行。实体同存于内存中,能在一段时间内同时运行。l独立性独立性:进程是一个能独立运行的基本单位,即是一个:进程是一个能独立运行的基本单位,即是一个独立获得资源和独立调度的单位独立获得资源和独立调度的单位l异步性异步性:进程按各自独立的不可预知的速度向前推进,:进程按各自独立的不可预知的速度向前推进,即进程按异步方式进行,正是这一特征,将导致程序执即进程按异步方式进行,正是这一特征,将导致程序执行的不可再现性,因此行的不可再现性,因此OSOS必须采用某种措施来限制各进必须采用某种措施来限制各进程推进序列以保证各程序间正常协调运行。程推进序列以保证各程序间正常协调运行。l结构特征结构特征:从结构上,:从结构上,进程实体由程序段、数据段和进进程实体由程序段、数据段和进程控制块三部分组成程控制块三部分组成。7进程的特征动态性:动态性是进程的最基本特征。它由创建而产生、进程控制块进程控制块(PCB)n包含描述进程的基本信息包含描述进程的基本信息n标识符标识符(Identifier)n进程状态进程状态(State)n优先级优先级(Priority)n程序计数器程序计数器(Program counter)n内存指针内存指针(Memory pointers)n上下文数据上下文数据(Context data):指进程执行时处理器的指进程执行时处理器的寄存器中的数据。寄存器中的数据。nI/O状态信息状态信息(I/O status information)n统计信息统计信息(Accounting information)n由操作系统创建并管理由操作系统创建并管理8进程控制块(PCB)包含描述进程的基本信息8进程运行轨迹进程运行轨迹(进程内各指令的执行序列)进程内各指令的执行序列)9进程运行轨迹(进程内各指令的执行序列)91010两状态进程模型两状态进程模型n系统中的进程处于两种状态之一:系统中的进程处于两种状态之一:n运行态(运行态(Running)n未运行态(未运行态(Not-running)n操作系统必须知道进程当前处于哪种状态中,操作系统必须知道进程当前处于哪种状态中,以便于跟踪进程的执行以便于跟踪进程的执行PCB。11两状态进程模型系统中的进程处于两种状态之一:操作系统必须知道未运行态进程队列未运行态进程队列当操作系统创建一个新的进程时,该进程的当操作系统创建一个新的进程时,该进程的状态初始化为状态初始化为未运行态未运行态,并加入到未行态队,并加入到未行态队列中。列中。12未运行态进程队列当操作系统创建一个新的进程时,该进程的状态初进程创建进程创建 创建新进程时,操作系统需要建立管理该进程的数创建新进程时,操作系统需要建立管理该进程的数据结构(据结构(PCB),并在主存中给它分配地址空间。),并在主存中给它分配地址空间。13进程创建 创建新进程时,操作系统需要建立管理该进程的进程终止进程终止14进程终止14Q1:执行到:执行到40条指令时,条指令时,两状态模型两状态模型下,在非运下,在非运行状态队列行状态队列中时间最久中时间最久的是哪个进的是哪个进程?程?Q2:调度的:调度的是哪个进程是哪个进程?为什么?为什么?15Q1:执行到40条指令时,两状态模型下,在非运行状态队列中时进程状态模型改进进程状态模型改进n未运行状态未运行状态n就绪状态(就绪状态(Ready to execute)n阻塞状态(阻塞状态(Blocked)n等待等待 I/O操作完成操作完成n如果使用单个未运行队列,分派程序不能只考虑如果使用单个未运行队列,分派程序不能只考虑选择队列中等待时间最久的进程,而是查找那些选择队列中等待时间最久的进程,而是查找那些未被阻塞且在队列中等待时间最久的进程未被阻塞且在队列中等待时间最久的进程。n每次遍历队列需要花费大量的时间,如何解每次遍历队列需要花费大量的时间,如何解决?决?n采用两个不同的队列采用两个不同的队列16进程状态模型改进未运行状态16五状态模型五状态模型n运行运行(Running):):占有占有CPUn就绪就绪(Ready):):除了除了CPU,其它所需资源都,其它所需资源都已占有,一旦得到处理机即可运行,则称此进已占有,一旦得到处理机即可运行,则称此进程处于就绪状态程处于就绪状态n阻塞阻塞(Blocked):):等待某些事件等待某些事件n新建新建(New):已经创建了已经创建了PCB并保存在主存并保存在主存中,但程序代码和相关数据还没有读入主存中,但程序代码和相关数据还没有读入主存n退出退出(Exit)17五状态模型运行(Running):占有CPU17五状态进程模型五状态进程模型18五状态进程模型18进程状态的转换进程状态的转换l就绪态就绪态运行态:当处理机空闲时,进程调度程序必运行态:当处理机空闲时,进程调度程序必将处理机分配给一个处于就绪态的进程将处理机分配给一个处于就绪态的进程 ,该进程便由就绪,该进程便由就绪态转换为运行态。态转换为运行态。l运行态运行态阻塞态:处于运行态的进程在运行过程中需阻塞态:处于运行态的进程在运行过程中需要等待某一事件发生后,才能继续运行,则该进程放弃处要等待某一事件发生后,才能继续运行,则该进程放弃处理机,从运行态转换为阻塞态。理机,从运行态转换为阻塞态。l阻塞态阻塞态就绪态:处于阻塞态的进程,若其等待的事就绪态:处于阻塞态的进程,若其等待的事件已经发生,进程由阻塞态转换为就绪态。件已经发生,进程由阻塞态转换为就绪态。l运行态运行态就绪态:处于运行状态的进程在其运行过程就绪态:处于运行状态的进程在其运行过程中,因分给它的处理机时间片已用完,而不得不让出(被中,因分给它的处理机时间片已用完,而不得不让出(被抢占)处理机,于是进程由运行态转换为就绪态。抢占)处理机,于是进程由运行态转换为就绪态。阻塞态阻塞态运行态和就绪态运行态和就绪态阻塞态这二种状态转阻塞态这二种状态转换不可能发生。换不可能发生。19进程状态的转换19系系统中各中各进程状程状态管理管理 n处于运行态进程处于运行态进程:如系统有一个处理机,则在任如系统有一个处理机,则在任何一时刻,最多只有一个进程处于运行态。何一时刻,最多只有一个进程处于运行态。n处于就绪态进程处于就绪态进程:一般处于就绪态的进程按照一一般处于就绪态的进程按照一定的算法(如先来的进程排在前面,或采用优先定的算法(如先来的进程排在前面,或采用优先权高的进程排在前面)排成一个就绪队列。权高的进程排在前面)排成一个就绪队列。n处于阻塞态进程处于阻塞态进程:处于阻塞态的进程排在阻塞队处于阻塞态的进程排在阻塞队列中。列中。20系统中各进程状态管理 处于运行态进程:如系统有一个处理机,则两个队列:就绪队列和阻塞队列两个队列:就绪队列和阻塞队列Q1:当某个等待的事件完成了,操作系统该如何当某个等待的事件完成了,操作系统该如何操作?硬件上如何改善?操作?硬件上如何改善?Q2:如果操作系统考虑进程的优先级,则操作系如果操作系统考虑进程的优先级,则操作系统该将统该将CPU分派给哪种进程?硬件上如何实现?分派给哪种进程?硬件上如何实现?21两个队列:就绪队列和阻塞队列Q1:当某个等待的事件完成了,多个阻塞队列多个阻塞队列当事件当事件n发生时,发生时,在事件在事件n等待队列等待队列中的所有进程都移中的所有进程都移进就绪队列中进就绪队列中22多个阻塞队列当事件n发生时,在事件n等待队列中的所有进程都移在一个多道程序设计的系统中,各进程状态转换会互在一个多道程序设计的系统中,各进程状态转换会互相影响。相影响。n例如系统中一个运行态的进程例如系统中一个运行态的进程A A发生发生I/OI/O请求后要等请求后要等待待I/OI/O完成,它的状态也由完成,它的状态也由运行态转换为阻塞态运行态转换为阻塞态;n此时进程调度程序就会按照一定的算法,在就绪队此时进程调度程序就会按照一定的算法,在就绪队列中选一个进程列中选一个进程B B,将处理机分给它,该,将处理机分给它,该B B进程的状进程的状态也由态也由就绪态转换为运行态就绪态转换为运行态。n如一个进程如一个进程C C等待的事件完成,则它的状态由等待的事件完成,则它的状态由阻塞态阻塞态转换为就绪态转换为就绪态,它也从阻塞队列中抽出插入就绪队,它也从阻塞队列中抽出插入就绪队列中。列中。n如进程如进程 C C从阻塞态转换为就绪态时,有一个进程从阻塞态转换为就绪态时,有一个进程D D在在CPUCPU上运行。而系统采用抢占式调度算法,进程上运行。而系统采用抢占式调度算法,进程C C的的优先级又高于正在优先级又高于正在CPUCPU上运行的进程上运行的进程D D的优先级,则的优先级,则要发生抢占调度。即接下去的操作时由进程调度程要发生抢占调度。即接下去的操作时由进程调度程序将正在运行的进程序将正在运行的进程D D由由运行态转换为就绪态运行态转换为就绪态,插入,插入就绪队列。就绪队列。23在一个多道程序设计的系统中,各进程状态转换会互相影响。23 例例11 一个只有一个处理机的系统中,一个只有一个处理机的系统中,OSOS的进程有运的进程有运行、就绪、阻塞三个基本状态。假如某时刻该系统中行、就绪、阻塞三个基本状态。假如某时刻该系统中有有1010个进程并发执行,在略去调度程序所占用时间情个进程并发执行,在略去调度程序所占用时间情况下试问:况下试问:这时刻系统中处于运行态的进程数最多几个?最少几个这时刻系统中处于运行态的进程数最多几个?最少几个这时刻系统中处于就绪态的进程数最多几个?最少几个这时刻系统中处于就绪态的进程数最多几个?最少几个这时刻系统中处于阻塞态的进程数最多几个?最少几个?这时刻系统中处于阻塞态的进程数最多几个?最少几个?解:因为系统中只有一个处理机,所以某时刻处于运解:因为系统中只有一个处理机,所以某时刻处于运行态的进程数最多只有一个。而最少可能为行态的进程数最多只有一个。而最少可能为0 0,此时其,此时其它它1010个进程一定全部排在各阻塞队列中,在就绪队列个进程一定全部排在各阻塞队列中,在就绪队列中没有进程。而某时刻处于就绪态的进程数最多只有中没有进程。而某时刻处于就绪态的进程数最多只有9 9个,不可能出现个,不可能出现1010个情况,因为一旦个情况,因为一旦CPUCPU有空,调度程有空,调度程序马上调度,当然这是在略去调度程序调度时间时考序马上调度,当然这是在略去调度程序调度时间时考虑。处于阻塞态的进程数最少是虑。处于阻塞态的进程数最少是0 0个。个。24 例1 一个只有一个处理机的系统中,OS的进程有运行n例例2:某进程所要求的一次打印输出结束后,:某进程所要求的一次打印输出结束后,其进程的状态将从(其进程的状态将从()A.运行态到就绪态运行态到就绪态 B.运行态到阻塞态运行态到阻塞态 C.阻塞态到就绪态阻塞态到就绪态 D.就绪态到阻塞态就绪态到阻塞态25例2:某进程所要求的一次打印输出结束后,其进程的状态将从(挂起挂起(Suspended)进程进程n处理器运行的速度远远地快于处理器运行的速度远远地快于I/O设备,运行一段时设备,运行一段时间后会出现所有进程都处于阻塞态(等待间后会出现所有进程都处于阻塞态(等待I/O操作),操作),就绪态进程数为就绪态进程数为0,此时处理器必须等待。,此时处理器必须等待。n如何解决?如何解决?n扩充内存扩充内存n将进程交换到磁盘,释放内存空间将进程交换到磁盘,释放内存空间n当进程被交换到磁盘上,则该进程从阻塞状态当进程被交换到磁盘上,则该进程从阻塞状态转换到转换到挂起状态挂起状态26挂起(Suspended)进程处理器运行的速度远远地快于一个挂起状态一个挂起状态27一个挂起状态27两个挂起状态两个挂起状态n阻塞阻塞/挂起挂起(Blocked/Suspend)n就绪就绪/挂起挂起(Ready/Suspend)28两个挂起状态阻塞/挂起(Blocked/Suspend)2挂起状态的特征挂起状态的特征进程处于挂起状态是指进程处于挂起状态是指该进程不在主存中该进程不在主存中。n进程不能立即执行;进程不能立即执行;n进程可能在等待某个事件,也可能不等待事件,即进程可能在等待某个事件,也可能不等待事件,即进程挂起与否与进程阻塞与否没有必然的联系。进程挂起与否与进程阻塞与否没有必然的联系。29挂起状态的特征进程处于挂起状态是指该进程不在主存中。29例题例题1:为什么要引入进程概念为什么要引入进程概念?进程的基本特征是什么进程的基本特征是什么?它与程序有何区别它与程序有何区别?2 2:在操作系统中进程是一个具有一定独立功能程序:在操作系统中进程是一个具有一定独立功能程序在某个数据集合上的一次在某个数据集合上的一次A A,进程是一个,进程是一个B B概念,而程序是一个概念,而程序是一个C C的概念。的概念。在一单处理机中,若有在一单处理机中,若有5 5个用户进程,在非管态的个用户进程,在非管态的某一时刻,处于就绪状态的用户进程最多有某一时刻,处于就绪状态的用户进程最多有D D个,最少有个,最少有E E个。个。A A:(1)(1)并发活动;并发活动;(2)(2)运行活动;运行活动;(3)(3)单独操作;单独操作;(4)(4)关联操作。关联操作。B B,C C:(1)(1)组合态;组合态;(2)(2)关联态;关联态;(3)(3)运行态;运行态;(4)(4)等等待态;待态;(5)(5)静态;静态;(6)(6)动态。动态。D D,E E:(1)1(1)1;(2)2(2)2;(3)3(3)3;(4)4(4)4;(5)5(5)5;(6)0(6)0。30例题1:为什么要引入进程概念?进程的基本特征是什么?它与3:我们常用进程状态转换图来说明处理机管理的许多我们常用进程状态转换图来说明处理机管理的许多问题问题,例如下列进程状态转换图,请回答例如下列进程状态转换图,请回答:(1 1)什么)什么 事件事件 引起每次显著的状态转换引起每次显著的状态转换?(2 2)在什么情况下)在什么情况下,如果有的话如果有的话,将发生下述因果转换将发生下述因果转换?a.-;b.-;c.-a.-;b.-;c.-。(3 3)我我们们观观察察系系统统中中所所有有进进程程时时.常常看看到到某某一一进进程程P P产产生生的的一一次次状状态态转转换换可可能能引引起起另另一一进进程程q q作作一一次次状状态态转转换换。试试分分析析在在什什么么情情况况下下:a.a.进进程程P P的的转转换换能能引引起起进进程程q q的的转转换换?b.b.进进程程P P的的转转换换能能引引起起进进程程q q的的转转换换?运 行就 绪 阻 塞 1234313:我们常用进程状态转换图来说明处理机管理的许多问题,例如4 4:从从静静态态角角度度看看,进进程程由由A A、B B和和C C三三部部分分组组成成,用用户户可可通通过过D D建建立立和和撤消进程,通常用户进程被建立后,撤消进程,通常用户进程被建立后,E E。A A:(1)JCB(1)JCB;(2)DCB(2)DCB;(3)PCB(3)PCB;(4)PMT(4)PMT。B:(1)B:(1)程序段;程序段;(2)(2)文件体;文件体;(3)I/O(3)I/O;(4)(4)子程序。子程序。C C:(1)(1)文件描述块;文件描述块;(2)(2)数据空间;数据空间;(3)EOF(3)EOF;(4)I/O(4)I/O缓冲区。缓冲区。D D:(1)(1)函数调用;函数调用;(2)(2)宏指令;宏指令;(3)(3)系统调用;系统调用;(4)(4)过过程调用。程调用。E E:(1)(1)便一直存在于系统中,直到被操作人员撤消;便一直存在于系统中,直到被操作人员撤消;(2)(2)随着作业运行正常或不正常结束而撤消;随着作业运行正常或不正常结束而撤消;(3)(3)随着时间片轮转而撤消与建立;随着时间片轮转而撤消与建立;(4)(4)随着进程的阻塞或唤醒而撤消与建立。随着进程的阻塞或唤醒而撤消与建立。324:从静态角度看,进程由A、B和C三5 5:正正在在执执行行的的进进程程由由于于其其时时间间片片完完而而被被暂暂停停执执行行,此此时时进进程程应应从从运运行行态态变变为为A A状状态态;处处于于阻阻塞塞/挂挂起起状状态态的的进进程程,在在进进程程等等待待的的事事件件出出现现后后,应应转转变变为为B B状状态态;若若进进程程正正处处于于运运行行态态时时,应应终终端端的的请请求求而而暂暂停停下下来来以以便便研研究究其其运运行行情情况况(执执行行挂挂起起进进程程原原语语),这这时时进进程程应应转转变变为为C C状状态态,若若进进程程已已处处于于阻阻塞塞状状态态,则则此此时时应应转转变变为为D D状状态态,若若进进程程已已处处于于就就绪绪状状态态,则则此此时时应应转转变变为为E E状状态态;执执行行解解除除挂挂起起进进程程原原语语后后,如如挂挂起起进进程程处处于于就就绪绪/挂挂起起状状态态,则则应应转转变变为为F F态态,如如处处于于阻阻塞塞/挂挂起起状状态态,则则应应转转变变为为G G态态;一一个个进进程程刚刚被被创创建建时时,它它的的初初始始状态为状态为H H。A A,.,H H:(1)(1)阻阻塞塞/挂挂起起;(2)(2)阻阻塞塞;(3)(3)就就绪绪/挂起;挂起;(4)(4)就绪;就绪;(5)(5)执行。执行。335:正在执行的进程由于其时间片完而被暂停执行,此时进程应从运进程和资源描述图进程和资源描述图Q1:P1,P2,Pn的状态分别是什么?的状态分别是什么?Q2:操作系统为了控制进程和管理资源:操作系统为了控制进程和管理资源需要哪些信息?需要哪些信息?34进程和资源描述图Q1:P1,P2,Pn的状态分别是什么?34操作系统的控制结构操作系统的控制结构n操作系统必须记录每个操作系统必须记录每个进程和资源进程和资源当前状态当前状态的信息的信息n操作系统利用操作系统利用表表结构来结构来管理管理n四种不同类型的表:四种不同类型的表:存储表、存储表、I/O设备设备表、文件表和进程表、文件表和进程表表 35操作系统的控制结构操作系统必须记录每个进程和资源当前状态的信存储表存储表(Memory Tables)用于记录主存和辅存的当前状态。用于记录主存和辅存的当前状态。n分配给进程的主存信息分配给进程的主存信息n分配给进程的辅存信息分配给进程的辅存信息n主存块的保护属性,如哪些进程可以访问哪些共主存块的保护属性,如哪些进程可以访问哪些共享主存区域等享主存区域等n管理虚拟内存所需的其他信息管理虚拟内存所需的其他信息36存储表(Memory Tables)用于记录主存I/O表表(I/O Tables)管理管理I/O设备和计算机通道的当前状态。设备和计算机通道的当前状态。nI/O设备是否可用?若已分配,则分配给哪个设备是否可用?若已分配,则分配给哪个进程?进程?n若正进行若正进行I/O操作,则需记录操作,则需记录I/O操作的状态操作的状态nI/O操作要读写的主存单元地址等操作要读写的主存单元地址等37I/O表(I/O Tables)管理I/O设备和文件表文件表(File Tables)n文件是否存在?文件是否存在?n文件在辅存中的位置文件在辅存中的位置n文件当前状态文件当前状态n文件相关的属性,如读写属性文件相关的属性,如读写属性n管理文件所需的其他信息等管理文件所需的其他信息等n通常都由文件管理系统维护和使用通常都由文件管理系统维护和使用38文件表(File Tables)文件是否存在?38进程表进程表(Process Table)n进程放在什么位置进程放在什么位置?n进程当前的状态信息进程当前的状态信息?n进程包括进程包括:n程序代码程序代码n相关数据相关数据n进程控制块进程控制块PCB39进程表(Process Table)进程放在什么位置?39进程控制块进程控制块n进程控制块的作用进程控制块的作用进程存在的唯一实体进程存在的唯一实体 进程控制块中记录进程存在和特性信息,它进程控制块中记录进程存在和特性信息,它与进程同生死。创建一个进程就是为其建立一个与进程同生死。创建一个进程就是为其建立一个PCB,当进程被撤消时,系统就回收它的,当进程被撤消时,系统就回收它的PCB;OS对进程的控制是根据对进程的控制是根据PCB来进行,对进程管理来进行,对进程管理也通过对也通过对PCB管理来实现管理来实现。nPCBPCB的信息的信息n进程标识信息进程标识信息n处理器状态信息处理器状态信息n进程控制信息进程控制信息40进程控制块进程控制块的作用进程存在的唯一实体40n进程标识符进程标识符:它用于唯一地标识一个进程。它有它用于唯一地标识一个进程。它有外部标识符(由字母组成,供用户使用)和内外部标识符(由字母组成,供用户使用)和内部标识符(由整数组成,为方便系统管理而设部标识符(由整数组成,为方便系统管理而设置)二种。置)二种。n处理器状态信息处理器状态信息:它由处理器各种寄存器(通:它由处理器各种寄存器(通用寄存器、指令计数器、程序状态字用寄存器、指令计数器、程序状态字PSWPSW、用户、用户栈指针等)的内容所组成,该类信息使进程被栈指针等)的内容所组成,该类信息使进程被中断后重新执行时能恢复现场从断点处继续运中断后重新执行时能恢复现场从断点处继续运行。行。n进程控制信息:进程控制信息:它包括进程状态(它包括进程状态(runningrunning、readyready、blackedblacked)、队列(就绪、阻塞队列)、)、队列(就绪、阻塞队列)、队列指针,调度参数:进程优先级、进程已执队列指针,调度参数:进程优先级、进程已执行时间和已等待时间、进程间通信的信号系统、行时间和已等待时间、进程间通信的信号系统、进程所分配的内存空间指针等。进程所分配的内存空间指针等。41进程标识符:它用于唯一地标识一个进程。它有外部标识符(由字母进程进程控制控制块的块的典型典型信息信息42进程控制块的典型信息42进程控制进程控制执行模式执行模式n用户模式(目态)用户模式(目态)n通常在该模式下执行用户程序通常在该模式下执行用户程序n权限较低权限较低n系统模式、控制模式或内核模式(管态)系统模式、控制模式或内核模式(管态)n在该模式下执行操作系统内核在该模式下执行操作系统内核n可执行特权指令,权限更高可执行特权指令,权限更高43进程控制执行模式43三个问题三个问题n为什么需要两种执行模式为什么需要两种执行模式?n保护操作系统和重要数据不受用户干扰保护操作系统和重要数据不受用户干扰n处理器如何知道当前系统处于哪个执行模式下处理器如何知道当前系统处于哪个执行模式下?n程序状态字(程序状态字(PSW)中管理程序)中管理程序/用户模用户模式位记录了当前系统所处的模式信息式位记录了当前系统所处的模式信息n模式如何切换模式如何切换?n用户调用操作系统服务(系统调用)或发用户调用操作系统服务(系统调用)或发生中断时,执行模式从用户模式切换到内生中断时,执行模式从用户模式切换到内核模式核模式n当系统服务返回或中断返回到用户进程时,当系统服务返回或中断返回到用户进程时,执行模式从内核模式切换到用户模式执行模式从内核模式切换到用户模式44三个问题为什么需要两种执行模式?44进程创建进程创建n给进程分配一个唯一的进程标识号给进程分配一个唯一的进程标识号n给进程分配空间给进程分配空间n进程要执行的程序代码和数据进程要执行的程序代码和数据n初始化进程控制块初始化进程控制块n如如PC初始化为程序入口地址;进程状态初初始化为程序入口地址;进程状态初始化为就绪或就绪始化为就绪或就绪/挂起;进程优先级初始挂起;进程优先级初始化为最低优先级等化为最低优先级等n将进程控制块加入到正确的队列中将进程控制块加入到正确的队列中n如加入到就绪队列中如加入到就绪队列中n创建或扩充操作系统所需的其他数据结构创建或扩充操作系统所需的其他数据结构n如审计文件如审计文件45进程创建给进程分配一个唯一的进程标识号45进程切换进程切换若干问题若干问题:n何时发生切换何时发生切换?n发生进程切换,操作系统需要做什么发生进程切换,操作系统需要做什么?n进程切换和模式切换的区别进程切换和模式切换的区别?46进程切换若干问题:46何时进行进程切换何时进行进程切换 进程切换可以在操作系统从当前正在运行进程切换可以在操作系统从当前正在运行的进程中获得控制权的任何时刻发生。的进程中获得控制权的任何时刻发生。n中断中断n时钟中断、时钟中断、I/O 中断、内存失效等中断、内存失效等n陷阱陷阱trapn进程运行时出现错误或异常进程运行时出现错误或异常n系统调用系统调用n请求请求I/O操作,如打开文件操作,如打开文件47何时进行进程切换 进程切换可以在操作系统进程切换的实现步骤(进程切换的实现步骤(1)n保存处理器的上下文环境,包括保存处理器的上下文环境,包括PC和其他寄存器和其他寄存器n更新当前处于运行态的进程的进程控制块,如把进更新当前处于运行态的进程的进程控制块,如把进程状态改变为另一状态(就绪、阻塞、就绪程状态改变为另一状态(就绪、阻塞、就绪/挂起或挂起或退出,具体哪种状态取决于发生进程切换的事件)退出,具体哪种状态取决于发生进程切换的事件)n把上述进程的把上述进程的PCB移到相应的队列中(如就绪队列、移到相应的队列中(如就绪队列、事件事件i的阻塞队列等)的阻塞队列等)n从就绪队列中选择另一个进程执行(进程调度)从就绪队列中选择另一个进程执行(进程调度)48进程切换的实现步骤(1)保存处理器的上下文环境,包括PC和其n更新所选择进程的进程控制块,如把进程状更新所选择进程的进程控制块,如把进程状态变为态变为运行态运行态n更新内存管理的数据结构,如基地址寄存器更新内存管理的数据结构,如基地址寄存器和界限寄存器(分段机制)和界限寄存器(分段机制)n恢复处理器在被选择进程最近一次切换出运恢复处理器在被选择进程最近一次切换出运行态的上下文:行态的上下文:载入载入PC和其它寄存器最后和其它寄存器最后一次保存的值一次保存的值进程切换的实现步骤(进程切换的实现步骤(2)49更新所选择进程的进程控制块,如把进程状态变为运行态进程切换的n模式切换是系统执行模式的改变,发生模式模式切换是系统执行模式的改变,发生模式切换可以不改变正处于运行态的进程状态切换可以不改变正处于运行态的进程状态n进程切换时,操作系统必须使其运行环境发进程切换时,操作系统必须使其运行环境发生改变生改变n进程切换必然会存在模式切换(只有在内核进程切换必然会存在模式切换(只有在内核模式下才能实现进程调度),但模式切换不模式下才能实现进程调度),但模式切换不一定会发生进程切换一定会发生进程切换n进程切换比模式切换更复杂进程切换比模式切换更复杂进程切换和模式切换的区别进程切换和模式切换的区别50模式切换是系统执行模式的改变,发生模式切换可以不改变正处于运操作系统的执行操作系统的执行操作系统是不是一个进程操作系统是不是一个进程?n无进程的内核无进程的内核n在所有进程之外执行操在所有进程之外执行操作系统内核作系统内核n当前正在运行的进程发当前正在运行的进程发生中断或产生系统调用生中断或产生系统调用时,控制权交给内核时,控制权交给内核n操作系统代码作为一个操作系统代码作为一个在特权模式下工作的独在特权模式下工作的独立实体被执行立实体被执行n进程的概念只适用于用进程的概念只适用于用户程序户程序51操作系统的执行操作系统是不是一个进程?51在用户进程中执行在用户进程中执行n在用户进程的上下文中执行在用户进程的上下文中执行所有操作系统程序所有操作系统程序n操作系统是用户调用的一组操作系统是用户调用的一组例程,操作系统代码和数据例程,操作系统代码和数据位于共享地址空间中,被所位于共享地址空间中,被所有用户进程共享有用户进程共享n内核模式下执行操作系统代内核模式下执行操作系统代码,但仍在当前的用户进程码,但仍在当前的用户进程中,所以不需要执行进程切中,所以不需要执行进程切换换52在用户进程中执行在用户进程的上下文中执行所有操作系统程序52基于进程的操作系统基于进程的操作系统n操作系统作为一组独操作系统作为一组独立的系统进程来实现立的系统进程来实现n方便模块化地设计操方便模块化地设计操作系统,适用于多处作系统,适用于多处理器或多计算机环境理器或多计算机环境下下53基于进程的操作系统操作系统作为一组独立的系统进程来实现53Unix/LinuxUnix/Linux进程控制原语进程控制原语1.forkfork系统调用创建新的子进程系统调用创建新的子进程格式:格式:pid=int fork()fork调用返回时,系统中已有两个用户级环境调用返回时,系统中已有两个用户级环境完全相同的进程存在,这两个进程从完全相同的进程存在,这两个进程从fork调用调用中得到的返回值不同,其中子进程得到的返回中得到的返回值不同,其中子进程得到的返回值为零,父进程得到的返回值是新创建子进程值为零,父进程得到的返回值是新创建子进程的进程标识号。的进程标识号。54Unix/Linux进程控制原语1.fork系统调用创建新的2.exec系统调用系统调用格式:格式:(六种)六种)int execl(path,arg0,arg1,argn,(char*)0)char*path,*arg0,*arg1,*argn;exec调用进程的正文段被指定的目标文件的正文段调用进程的正文段被指定的目标文件的正文段所覆盖,其属性的变化方式与所覆盖,其属性的变化方式与fork成功后从父进成功后从父进程那里继承属性的方式几乎是一样的。系统中绝程那里继承属性的方式几乎是一样的。系统中绝大多数命令都是通过大多数命令都是通过exec来执行的,不但来执行的,不但shell进进程所创建的子进程使用它来执行用户命令,程所创建的子进程使用它来执行用户命令,shell进程本身和它的祖先进程也是用进程本身和它的祖先进程也是用exec来启动执行来启动执行的。的。如如execlp(“/bin/ls”,”ls”,NULL);表示用表示用ls覆盖覆盖/bin/ls,执行,执行ls命令,在屏幕上列出当前目录下的文件和命令,在屏幕上列出当前目录下的文件和子目录子目录552.exec系统调用553.exit3.exit系统调用终止进程执行系统调用终止进程执行格式:格式:void exit(status)int status;参数参数status是调用进程终止时传递给其父进程是调用进程终止时传递给其父进程的值。的值。0表示当前进程。表示当前进程。4.wait4.wait系统调用阻塞进程系统调用阻塞进程格式:格式:int wait(stat_loc)int stat_loc;wait调用将调用进程阻塞,直到该进程收到一调用将调用进程阻塞,直到该进程收到一个被其捕获的信号或者它的任何一个子进程暂个被其捕获的信号或者它的任何一个子进程暂停或终止为止。如果停或终止为止。如果wait调用之前已有子进程调用之前已有子进程暂停或终止,则该调用立即返回。暂停或终止,则该调用立即返回。563.exit系统调用终止进程执行56示例:创建子进程的示例:创建子进程的C语言程序语言程序include void main()int pid;pid=fork();/*fork child process*/if(pid0)fprintf(stderr,“Fork Failed”);exit(-1);else if(pid=0)execlp(“/bin/ls”,”ls”,NULL);/*child process*/else wait(NULL);printf(“child Complete”);exit(0);/*parent process*/57示例:创建子进程的C语言程序include stdio.程序执行说明程序执行说明 该程序说明主进程创建了一个子程序后,二个进该程序说明主进程创建了一个子程序后,二个进程并发执行的情况。程并发执行的情况。n主进程在执行主进程在执行fork系统调用前是一个进程,执行系统调用前是一个进程,执行fork系统调用后,系统中又增加了一个与原过程环系统调用后,系统中又增加了一个与原过程环境相同的子进程,它们执行程序中境相同的子进程,它们执行程序中fork语句以后相语句以后相同的程序,父和子进程中都有自己的变量同的程序,父和子进程中都有自己的变量pid,但,但它们的值不同,它是它们的值不同,它是fork调用后的返回值,父进程调用后的返回值,父进程的的pid为大于为大于0的值,它代表新创建子进程的标识的值,它代表新创建子进程的标识符,而子进程的符,而子进程的pid为为0。n这样父子进程执行相同一个程序,但却执行不同这样父子进程执行相同一个程序,但却执行不同的程序段。子进程执行的程序段。子进程执行if(pid=0)以后的大括号内以后的大括号内的程序,即的程序,即execlp语句语句;而父进程执行而父进程执行else以后的以后的大括号内的程序。大括号内的程序。58程序执行说明 该程序说明主进程创建了一个子程n父子进程并发执行,执行序列任意。但由于父进程父子进程并发执行,执行序列任意。但由于父进程执行的第一条语句是执行的第一条语句是wait(null),它表示父进程将挂它表示父进程将挂起,直到该进程的一个子进程暂停或终止为止,所起,直到该进程的一个子进程暂停或终止为止,所以,只能子进程执行以,只能子进程执行 execlp语句。语句。n子进程执行子进程执行execlp语句后,它的原有正文段程序被语句后,它的原有正文段程序被指定的目标文件(指定的目标文件(ls)所复盖,并执行)所复盖,并执行ls命令在屏命令在屏幕上列出当前目录下的所有文件和子目录。幕上列出当前目录下的所有文件和子目录。n子进程执行完毕后退出,它发信号给等待它终止的子进程执行完毕后退出,它发信号给等待它终止的父进程,激活它继续执行父进程,激活它继续执行printf语句语句,在屏幕打印在屏幕打印child complete,最后执行,最后执行exit(0)自我终止。自我终止。59父子进程并发执行,执行序列任意。但由于父进程执行的第一条语句 include 子子进程进程void main()int pid;=0 pid=fork();/*fork child process*/if(pid0)fprintf(stderr,“Fork Failed”);exit(-1);else if(pid=0)execlp(“/bin/ls”,”ls”,NULL);/*child process*/else wait(NULL);printf(“child Complete”);exit(0);/*parent process*/include 父父进程进程void main()int pid;=n0 pid=fork();/*fork child process*/if(pid0)fprintf(stderr,“Fork Failed”);exit(-1);else if(pid=0)execlp(“/bin/ls”,”ls”,NULL);/*child process*/else wait(NULL);printf(“child Complete”);exit(0);/*parent process*/include 父父进程进程void main()int pid;pid=fork();/*fork child process*/if(pid0)fprintf(stderr,“Fork Failed”);exit(-1);else if(pid=0)execlp(“/bin/ls”,”ls”,NULL);/*child process*/else wait(NULL);printf(“child Complete”);exit(0);/*parent process*/ls子子进程进程.include main 父父进程进程void main()int pid;pid=fork();/*fork child process*/if(pid0)fprintf(stderr,“Fork Failed”);exit(-1);else if(pid=0)execlp(“/bin/ls”,”ls”,NULL);/*child process*/else wait(NULL);printf(“child Complete”);exit(0);/*parent process*/main 父父进程进程 main 父父进程进程执行执行fork后后 main 子子进程进程执行执行exec后后60include 子进程
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!