计算机操作系统 许曰滨版 第三章_第1页
计算机操作系统 许曰滨版 第三章_第2页
计算机操作系统 许曰滨版 第三章_第3页
计算机操作系统 许曰滨版 第三章_第4页
计算机操作系统 许曰滨版 第三章_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1,3章流程管理,第2章,本章的主要内容,流程管理的基本概念流程控制块流程控制流程调度实时系统的流程调度线程(Thread)时间表讨论信息,第3章,主要内容之一,为什么要在操作系统中引入“流程”?过程到底是什么?流程的特征是什么?过程、程序和操作之间的关系和差异?流程管理模块将实施哪些功能?4,3.1流程管理的基本概念3.1.1程序的执行方式,顺序执行顺序执行方式是最容易实现的方式,在以前的单一部署系统中很常见。此方法包含以下基本特征:l顺序特征。l单独特征。l确定性特征l再现性特征,5,2 .并行执行并行执行是在多通道程序系统中运行的一种方法。多个程序可以共享CPU,以便同时进行计算。这样

2、,系统的资源不再被一个程序垄断,而是被多个程序共享。多通道程序并发运行:意味着在内存中同时启用多个用户进程,并作为CPU共享运行。6,并发操作模式的基本功能,异步特征资源共享特征相互约束特征再现功能,7,3.1.2进程概念,进程:是程序执行进程,是独立申请和接收系统资源并与其他进程同时执行的基本单元。流程包括:(1)动态特征(2)并发特征(3)独立特征(4)异步特征(5)结构特征,8,3.1.3流程管理的主要功能,流程管理是操作系统最重要的组成部分,其功能可以分为两个主要方面:流程控制和流程计划。1.进程控制创建新进程并取消已终止的进程。阻止或唤醒进程,暂停或激活进程。流程同步和通信控制。2.

3、进程调度根据进程的当前状态确定获取CPU的进程及其占用时间。将CPU分配给进程。9、最终用户如何识别流程?例如,10,/ex1 . c# include # include int main()int PID;PID=fork();printf(“hellon”);11,第二点,操作系统如何管理流程?PCB、流程状态、状态转换流程管理模块如何实施管理功能?进程控制基元进程调度进程的同步和互斥(第4章),12,进程控制块,生命周期中的一个进程需要经过多个开发阶段。每个阶段过程的进程位置、资源占用情况都在不断变化。为了说明不断变化的进程,系统引入了一种与进程相关联的数据结构进程控制块PCB。流程控

4、制块PCB的内容包含四部分:流程标识计划信息处理器信息流程控制信息,13,1流程标识流程标识是系统标识流程的标志。不同的进程具有不同的id。进程id可分为两部分:外部id和内部id。其中,外部id(也称为进程的外部名称)是进程创建者提供的进程名称,通常由字符串组成。内部id(也称为进程的内部名称,缩写为Pid)是系统命名进程的代码,通常是整数数。14,2日程信息(1)说明进程优先级、进程的紧迫性的信息。(2)描述进程当前状态的进程状态信息。(3)其他排程资讯。此段落包含处理作业在系统中等待的时间、在CPU上执行的时间,以及剩馀的执行时间。此信息有助于您选择系统中最紧迫、最可行的流程之一。15,

5、3。处理器信息如果某个进程在运行时发生了特定事件,导致该进程无法运行,则系统将占用CPU,并由其他进程使用。重新导入CPU时,可以将该进程的CPU字段信息保存到自己的PCB中,从而重新启动该进程。(1)通用寄存器的内容:包括数据寄存器、分段寄存器等。(2)程序状态单词程序状态单词PSW(Program Status Word)和程序计数器PC(Program Count)值。(3)进程的堆栈指针。,16,4。流程控制信息此部分用于控制系统中的流程,主要包括程序代码和数据集的说明。(1)程序代码和数据集所在的内存地址。(2)记录流程请求资源的情况和已占用资源的情况的资源列表。(3)同步和通信信息

6、。(4)外部存款地址。(5)家庭信息。(6)链接指针。17(例如Linux上的PCB类型定义struct task _ structunsigned short uid;Int PIDInt处理器;Volatile long stateLong priority,Unsigned long rt _ priority长县;Unsigned long flagsUnsigned long policyStructtask _ struct * next _ task、* prev _ taskStructtask _ struct * next _ run、* prev _ runStructt

7、ask _ struct * p _ opptr、* p _ pptr、* p _ cptr、* p _ ys ptr、* p _ ptr18,3 . 2 . 2 . 2流程默认状态和状态更改;1,流程的三种默认状态就绪状态是流程尚未获得CPU许可证的状态。在此状态下,进程已具有除CPU外的所有必需资源,因此状态为“准备运行”。运行状态流程获取CPU并开始运行的状态。实际上,在典型的单CPU系统中,每个时刻最多只能运行一个进程。“Blocked Status(阻塞状态)”还表示流程尚未获得CPU许可证。在这种状态下,流程因某种要求而不能满足,因此必须等待,我们称之为执行“阻止”。处于阻止状态的

8、进程无权获取CPU。19、进程的三种基本状态:20、(1)准备备份任务调度程序选择任务时,将任务从外部内存加载到内存中,并作为进程生成。在大多数系统上,进程创建后的第一个状态为“就绪”。当前进程具有所有必需的资源,一旦获得CPU,即可运行。(2)准备运行进程调度程序根据特定算法选择处于“准备”状态的进程时,该进程将获得CPU许可证,并且进程状态将从“准备”更改为“运行”。21,(3)阻止正在运行的进程的运行需要系统的支持(例如等待输入输出或等待系统的资源),因此该进程不再运行,必须放弃CPU,等待所需事件发生。(4)准备运行运行的进程使用其自己的时间片时,该进程将在按时间片计划旋转的系统上停止

9、,以便正在运行的进程从运行状态转换到就绪状态。显然,此过程将完全用完自己的时间片,剩下的任务必须等待下一个预定周期的到来。当可抢占的调度系统中出现较高优先级的进程时,系统将占用当前进程的CPU,并由较高优先级的进程运行。当前进程必须从运行状态切换到阻止状态。22,(5)阻塞准备具有执行条件,当被阻止的进程遇到等待的事件时,进程控制模块将从阻塞状态切换到就绪状态。等待的事件包括:请求的资源已获得。已完成排队I/o操作。其他进程发送了“唤醒”消息和一些其他原因。(6)运行完成运行的进程已经运行了自己的程序后,管理程序将回收自己使用的资源。例如,调用存储管理模块以回收使用中的内存空间,调用设备管理模

10、块以回收使用中的外部设备。当前进程的状态更改为完成后,系统必须将CPU重新分配给其他用户。23,3.2.3扩展状态,将当前未运行的内存中的进程之一传输到外部内存暂挂,可用空间以容纳更多进程。此过程称为“中止进程”(Suspend)。暂停状态暂停阻止状态暂停准备状态,24,为什么引入暂停状态?举个例子。如果系统的内存用户区域有20M空间,则接收的操作的平均长度为500K。每个瞬间可容纳的最大任务数为40个。每个操作平均发出104个命令将产生一次I/O,这相当于每次使用CPU运行0.1毫秒时需要等待20毫秒的I/O时间。因此,CPU利用率p大致可以估计为:您可以看到几乎80%的处理器处于空闲状态。

11、25、添加到暂停状态的进程状态转换图、26、Linux2.4版本的6种进程状态、27、PCB队列结构、28、3.3进程控制、从生成到消亡的整个进程均由操作系统控制。操作系统的一些功能程序实现了过程控制任务。通常,这些单独的小程序块位于操作系统的底部,在运行时不允许中断。我们习惯性地称他们为“基元”。29,Primitive基元是由实现特定功能的机器命令组成的小程序,不能执行。l流程控制基元。实现流程管理和状态转换的基本类型,如流程生成基元、流程还原基元、阻止基元、唤醒基元、流程暂停基元、流程激活基元、流程保留基元等。l进程通信的基元。这些原语用于启用进程间通信,例如消息传送基元、消息接收基元等

12、。l用于资源互斥和同步的基元。系统中的许多资源一次只能使用一个进程,资源互斥访问要求系统具有解决这些问题的一系列原语。主要有p作业原语和v作业原语。l用于管理资源的基元。主要有请求资源的原语和释放资源的原语。30,以下说明每个控制进程状态更改的基元(1)的运行时间。(2)如何执行?31,3 . 3 . 3 . 1创建和撤消进程基元,何时创建进程基元?部署作业调度中的四个事件导致生成基元执行。在批处理系统中,当系统准备添加新进程时,磁盘上的备份作业可能由作业调度程序选择,并创建为提交进程交互式作业。在分时系统中,一个最终用户登录到系统。操作系统将创建连接到该终端的终端进程。系统提供服务。操作系统

13、创建一些为用户提供服务的进程,例如I/O进程。这些进程的优先级高于常规应用进程。建立使用者需求子处理作业。现有进程根据运行需要创建一些子进程,从而形成系统中父子进程同时运行的模式。怎么办?流程生成基元Create_Process(): (1): (1)请求空的PCB块。(2)填充进程信息:(2)-1填充进程id。(2)-2将优先级授予PCB(优先级)或填充JCB(优先级)。(2)-要求3dpcb(内存地址)分配内存或JCB(内存地址)或父进程的内存地址填充。(2)-4资源列表(PCB)请求分配设备或资源列表(JCB)或父进程资源填充。(2)-5族信息(PCB)用户名或父进程名。(2)-6现场信

14、息(PCB)初始状态数据。(2)-7准备进程状态(PCB)。(3)进入准备队列。(4)如果需要将程序代码和数据集加载到内存中,请启动加载程序。33,2。进程取消原语什么时候?取消流程是创建流程的反向流程。通常,可以撤消进程的事件包括:(1)进程自行终止。(2)由于用户或父进程的原因,进程终止。(3)因执行超时而终止(4)因执行错误而终止。34,如何?根据进程终止基元destroy (id_name): (1) id _ name查找已终止进程的进程控制块PCB。(2)如果进程状态为“运行”,则调度设置标志为“真”。(3)回收在资源列表(PCB)中注册的所有资源。(4)将进程的PCB从其队列中提

15、出,等待其他进程收集信息。(5)通过递归调用该进程的所有子进程Sub的End_Process(Sub)来终止子进程。(6)如果保留标志=TRUE,则启动进程调度程序。35,3.3.2拦截和唤醒基元1。进程阻塞原语是什么时候?如果正在运行的进程需要等待事件,则该进程必须停止服务请求进入系统,因为无法继续执行。系统根据流程需要进行适当处理,然后启动流程阻止原语以阻止流程。进程阻塞(即执行被阻止)的原因:等待I/O请求资源未满足进程同步约束服务进程服务没有任务,36,如何进行?阻塞基元Block()可以用以下过程描述:j:=getinternal name()。Remove(执行队列,j);/从运行

16、队列中选择j j(进程上下文):=CPU字段信息;j(状态):= blockedInsert (block queue,j);/j插入阻塞队列();/调度程序运行结束,37,2进程唤醒原语时?系统发生事件时,等待事件的进程必须立即唤醒,并从阻止状态转换到就绪状态。进程可以唤醒的原因是等待的I/O操作已完成。请求的资源已满足。进程同步约束已取消。服务进程接收新任务。怎么办?唤醒Wake_up()功能的进程:(1)将当前进程的上下文存储在系统堆栈中。(2)查找阻塞队列中等待事件的进程PCB。(3)从阻塞队列中删除PCB。(4)将状态设置为“就绪”。(5)将PCB排入准备伫列。(6)从系统堆栈中弹出进程上下文,然后放置CPU,以便中断的进程重新运行。(7)结束。、39,3.3.3暂停和激活原语,1 .暂停原语的时间?在虚拟存储管理方法中,当前进程的内存空间根据操作系统的需要暂停一些进程,从而根据执行性能改善用户的请求暂停用户进程,根据父进程的请求暂停子进程。40,如何?暂停基元Suspend()的功能进程:(1)查找暂停进程的PCB。(2)从队列中删除PCB。(3)获取内存空间地址,然后将其返回存储管理模块。(4)如果进程状态为阻止,则将PCB状态设置为“阻止暂停”,然后插入“阻止暂停队列”。如果流程已准备就绪,则将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论