第2章处理机管理_第1页
第2章处理机管理_第2页
第2章处理机管理_第3页
第2章处理机管理_第4页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、2.12.22.3本章讲述内容:本章讲述内容:2.4进程控制块;程序A程序B程序C0469141820232630423542334程序A程序B程序C0469131822121517(a) 单道程序设计环境(b) 多道程序设计环境时间时间打印机输出CPU执行图例:.1.资源的独占性.执行的顺序性结果的再现性2.执行的并发性.相互的制约性状态的多变性 机车头从车尾把到达场里的货车推向驼峰,在那里按照不同去向(即进路)把车厢间的挂钩摘开,一组车厢(称一勾车)借助驼峰的高度,将根据自己的去向溜到编组场的不同轨道,组成一列新的货车。 1.进程是程序的一次运行活动;进程的运行活动是建立在某个数据集合之上

2、;进程要在获得资源的基础上从事自己的运行活动。2. 所谓“进程”,是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调度的独立单位。驼峰到达场编组场溜放中的一勾车雷达测速、测长道岔(轨道电路)一列新货车一列解体货车缓行器12345678股道号溜放中的一勾车驼峰溜放控制过程中的进程。 例:例:.扳道岔程序 .缓行器控制程序 雷达测速程序 雷达测长程序 巡回检测程序 用户进程:可以并发执行的用户程序段,它们是操作系统的服务对象,是系统资源的实际享用者。 系统进程:操作系统中用于管理系统资源的那些并发程序,它们向用户提供系统服务,分配系统的资源。 系统进程间的相互关系由操作系统负责

3、协调,以便有利于增加系统的并发性,提高资源的整体利用率;用户进程间的相互关系要由用户自己(在程序中)安排,操作系统会向用户提供一定的协调手段(以命令的形式)。 3.4. 系统进程直接管理有关的软、硬件资源的活动;用户进程不得插手资源管理。在需要使用某种资源时,必须向系统提出申请,由系统统一调度与分配。 系统进程与用户进程都需要使用系统中的各种资源,在双方出现竞争时,系统进程有优先获得资源、优先得以运行的权利。. 进程是程序的一次执行过程,程序是进程赖以存在的基础。这就是说,进程与程序之间有一种必然的联系。但进程又不等同于程序,它们是两个完全不同的概念。 1. 进程间会相互制约。由于进程是系统中

4、资源分配和运行调度的单位,因此在对资源共享和竞争中,必然会相互制约,影响了各自向前推进的速度。 进程之间具有并发性。在一个系统中,同时会存在多个进程,与它们对应的多个程序同时在系统中运行,轮流占用CPU和各种资源。这正是多道程序设计的初衷,说明这些进程在系统中并发执行着。 每个进程都有自己的生命期。当要完成某一项工作时,就“创建”一个进程。一个进程创建后,系统就感知到它的存在;完成预定的任务后,系统就“撤销”这个进程,收回它所占用的资源。撤消后,系统就无法再感知到它。于是,从创建到撤消,这个时间段就是一个进程的“生命期”。 不同进程可以执行同一个程序。从进程定义知,区分进程的条件一是所执行的程

5、序,二是数据集合。因此,即使多个进程执行同一个程序,只要它们运行在不同的数据集合上,那么它们就是不同的进程。 “进程”是一个动态的概念。进程强调的是程序的一次“执行”过程,因此它是一个动态的概念;程序是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,因此是一个静态的概念。 2.1. 就绪提交运行阻塞终止调度撤销超时事件发生等待事件三种最基本的状态创建 进程间由于共同协作和共享资源,导致在生命期中进程的状态不断发生变化。. 终止状态:一个进程或正常结束,或因某种原因被强制结束。这时,系统正在为其进行善后处理。 创建状态:进程正在初创期,操作系统还没有把它列入到可执行的进程行列中。.

6、就绪状态:一个进程已经具备了运行的条件,只要有机会获得CPU,它就可以投入运行。. 运行状态:一个进程获得了CPU正在执行中。若系统中只有一个CPU,那么任何时候系统中最多只有一个进程处于运行状态。. 阻塞状态:进程正在等待某事件(比如I/O的完成)的发生。在事件到来前,即使把CPU分配给这个进程,它也无法运行。阻塞状态有时也被称为“等待状态”。.2. 一个进程的状态,可随自身的推进和外界环境的变化而变化,从一种状态“变迁”到另一种状态。进程状态变迁图中,箭头表示状态变迁的方向,文字是引起这种状态变迁的原因。. 就绪运行:需要一个新进程运行时,操作系统就在处于就绪状态的进程里挑选目标,选中者的

7、状态就从就绪变为运行。所以, “调度”是从就绪变到运行的原因。 一个处于运行状态的进程,比如会由于提出输入/输出请求而使自己的状态变成为阻塞。这属于进程自身推进过程中引起的状态变化。 并不是所有的进程状态之间都可以发生变迁的。可能的变迁如下所列。 在输入/输出操作完成后,会使某个进程的状态由阻塞变为就绪。这属于由于外界环境的变化而引起的状态变化。 .(1) 创建就绪:一个进程创建完毕,就可被列入到可执行的进程行列中。于是,系统通过提交,把它的状态从创建变为就绪。 (2)运行就绪:引起进程状态从运行变到就绪,最常见的原因是“超时”。(3) 运行阻塞:如果一个运行进程必须等待某个事件的发生而暂时无

8、法再运行,那么它的状态就由运行变为阻塞。这种需要进程等待的事件是很多的。比如,进程发一个系统调用命令,操作系统却无法立即提供服务;比如进程发出一个资源请求,但却一时无法得到满足;又比如进程要等待I/O的完成、等待另一个进程提供的输入数据、等待来自另一个进程的消息等,都会使进程的状态从运行变为阻塞。 (4) 阻塞就绪:当进程等待的事件发生时,处于阻塞状态的进程就变成了就绪。 (5) 运行终止:正在运行的进程完成了自己的工作,或由于其他原因必须异常结束,那么该进程就会被撤消,由运行状态变为终止状态。 (6).在这五种状态里,最基本、最实质性的是三种状态:就绪、运行、阻塞。 就绪/挂起状态:进程在辅

9、存。只要被激活,进程就可以调入内存,如果获得CPU就可以投入运行。2.就绪/挂起就绪激活运行阻塞终止调度撤销超时事件发生等待事件挂起阻塞/挂起激活挂起事件发生创建提交提交挂起 可在进程五种状态基础上,增加两种状态:“就绪/挂起”状态和“阻塞/挂起”状态。处于这两种状态的进程,都表示它们是在辅存而不是内存。只有通过“激活”,才可使这些进程的状态变迁为“就绪”或“阻塞”,从而进入内存。 . 阻塞/挂起状态:进程在辅存等待事件的发生。只要被激活,进程就可以调入到内存里去等待事件的发生。.对几个变迁的解释 就绪/挂起状态:进程在辅存。只要被激活,进程就可调入内存,如果获得CPU就可以投入运行。(1)

10、阻塞阻塞/挂起:若当前没就绪进程可运行,且内存又缺少空闲区域装入新进程,那就可从内存换出一个阻塞进程到辅存,使其状态成为阻塞/挂起,腾出内存区域。(2) 阻塞/挂起就绪/挂起:如果一个处于阻塞/挂起状态的进程所等待的事件发生了,那么它的状态将变迁成为就绪/挂起状态,进程仍在辅存。 (3) 现场信息:进程暂时让出处理机时,须把当前各种现场信息保存在PCB的固定单元里。这样,当进程再次获得处理机时,就可以把这些信息置入处理机的相应寄存器中,恢复到被中断时的原有状态,保证进程正常执行。 标识信息:代表了一个进程的身份,是系统内部区分不同进程的依据 。进程控制块.程序数据集合PCB程序数据集合.进程名

11、进程状态程序存放位置数据存放位置通用寄存器内容控制寄存器内容断点地址进程优先数队列指针标识信息说明信息现场信息管理信息说明信息:随时反映进程的情况 。 管理信息:系统通过这些信息管理、调度进程,使它们有条不紊地工作。 为管理和控制进程,系统创建每个进程时,都为其开辟一个专用的存储区,随时记录它的动态特性。当一个进程被撤消时,系统就收回分配给它的存储区。通常,把这一存储区称为该进程的“进程控制块PCB” 。1. 比如,CPU先执行左边的进程P0。若在运行到点x处时,进程P0的执行被打断。为充分利用CPU,须将CPU分配给别的进程使用,即进行进程间的切换,让CPU从执行一个进程转而去执行另一个进程

12、。2. 所谓“进程间的切换”,是指将CPU的执行从一个进程切换到另一个进程。在有的书里,把进程间的切换称为“进程间的上下文切换”。操作系统是通过进程PCB中的现场保护区来实现进程间的切换的 。.进程P0进程P1操作系统中断或系统调用保护现场到PCB0从PCB1现场保护区获取现场信息中断或系统调用保护现场到PCB1从PCB0现场保护区获取现场信息执行执行执行 被打断的断点x从断点x恢复执行 被打断的断点y 到点y时,若进程P1的运行被打断,又进入操作系统去做进程间的切换。若现在是要运行进程P0,那么先把当前CPU的运行现场保护到进程P1的PCB里,然后用进程P0的PCB里的现场信息对CPU进行加

13、载。这样,CPU就开始从点x往下运行左边的进程P0了。. 为此进入操作系统。若现在是要运行进程P1,那就先把当前CPU的运行现场保护到进程P0的PCB里,然后用进程P1的PCB里的现场信息对CPU进行加载(即恢复进程P1的运行现场)。这样,CPU就开始运行右边的进程P1了。. 就绪队列:系统中所有处于就绪状态的进程的PCB排成一队,称其为“就绪队列”。一般地,就绪队列里会有多个进程的PCB排在里面,它们形成处理机分配的侯选对象。 阻塞队列:所有处于阻塞状态的进程的PCB,应该根据阻塞的原因进行排队,每一个都称为一个“阻塞队列”。 PCB1PCB2PCB5PCB10PCB3PCB7PCB6PCB

14、8PCB9PCB4-1-1-1运行队列头指针就绪队列头指针阻塞队列1头指针阻塞队列2头指针运行队列:就绪队列:阻塞队列1:阻塞队列2:. 运行队列:处于运行状态的PCB构成运行队列。在单CPU系统,任何时刻系统里都只有一个进程处于运行状态,因此运行队列里只能有一个PCB 。.A1. 先来先服务调度算法ABCD调度就绪队列到达阻塞队列完成I/O完成阻塞CPUI/O 基本思想:调度时以到达就绪队列的先后次序选择占用处理机的进程。进程一旦占有处理机,就一直用下去,直至结束或因等待某事件而让出处理机。2. 时间片轮转调度算法 基本思想:调度时为进程分配一个称为“时间片”的时间段,在使用完一个时间片后,

15、即使进程没运行完,也要释放处理机,让给另一个进程使用,自己则排到就绪队列末尾,等待下一次调度。 ABCD调度就绪队列到达阻塞队列完成I/O完成阻塞CPUI/O时间片到 UNIX操作系统里,为动态改变一个进程的优先数,采取了设置和系统计算并用的方法。设置用于一个进程变为阻塞时,系统会根据不同的阻塞原因,赋予阻塞进程不同的优先数。这个优先数将在进程被唤醒后发挥作用。计算进程优先数的公式是:p_pri=min127,(p_cpu/16+PUSER+p_nice) 3. 基本思想:为系统中的每个进程规定一个优先数,就绪队列中具有最高优先数的进程有优先获得处理机的权利;如果几个进程的优先数相同,则对它们

16、实行先来先服务的调度。 确定进程优先数的几个因素 .(1)根据进程的类型 (2)根据进程执行任务的重要性 (3)根据进程程序的性质 (4)根据对资源的要求 (5)根据用户的请求 进程的优先数可分静态和动态两类。所谓静态,是指在进程的整个生命期内优先数保持不变。其优点是实现简单,但欠灵活。所谓动态,是指在进程的整个生命期内可随时修正它的优先级别,以适应系统环境和条件的变化。 .例例:p_cpu p_pri 进程的 进程被调度 优先级 到的可能性进程被调度 进程的 p_pri p_cpu到的可能性 优先级图例:-上升-下降 一开始,进入就绪队列的进程被安排在队列0里,每个进程都可获得8ms长的时间

17、片。如果进程不能在该时间区间内完成自己的工作,那它就被下移到队列1的尾部去等待调度。如果队列0为空,位于队列1首的进程将被调度,并可获得16ms长的时间片。如果进程不能在该时间区间内完成自己的工作,那么它就要被下移到队列2的尾部去等待调度。只有在队列0和1都为空时,队列2里的进程才可根据先来先服务的调度算法投入运行。4. 多级反馈队列调度的中心思想是,以使用CPU时间的长短,来区分进程,让进程在各就绪队列里移动。如果进程需要使用很多的CPU时间,那么它就会被移到优先级较低的就绪队列去。 . 比如,有多级反馈队列,它维持三个就绪队列,从队列0到队列2。先来先服务时间片=8ms时间片=16ms队列

18、0队列1完成完成阻塞/解除阻塞时间片到阻塞/解除阻塞时间片到队列2完成到达 调度程序总是先执行队列0里的所有进程,只有当队列0为空时,它才会去调度队列1中的进程。类似地,只有当队列0和1都为空时,它才会去调度队列2中的进程。到达队列1的进程会抢占队列2的进程的执行。同样,到达队列0的进程会抢占队列1的进程的执行。.5.6.记录系统中所有进程的有关情况,比如进程的当前状态,优先数等 。.确定分配处理机的算法,这是它的一项主要工作。 .完成处理机的分配和回收。.不可剥夺方式:只能由占用处理机的进程自己自愿放弃处理机。 进程调度程序负责具体的处理机分配,完成进程间的切换工作,因此它的执行频率是相当高

19、的,是一个操作系统的真正核心。 一个进程从运行状态变成阻塞状态(如请求进行输入/输出操作); (1)(2)一个进程正常运行结束后被撤销。 一个进程从运行状态变成就绪状态(如分时系统中,已运行满一个时间片);(3)(4)一个进程从阻塞状态变成就绪状态(如等待的输入/输出操作完成);. 注意:(1)、(4)两种情况肯定会引起进程调度程序工作,它将从就绪队列里选择一个进程占用处理机,完成进程间的切换;(2)、(3)两种情况可能会引起进程调度,也可能是继续运行原进程,这与系统所采用的调度算法有关。 7. 剥夺方式:当系统出现某条件时,就立即从当前运行进程手中抢夺过处理机,重新进行分配。在进程调度算法中

20、,时间片轮转调度算法属于剥夺方式。 功能:在等待的事件发生后,由唤醒进程原语把等待进程从相应的阻塞队列里解放出来,进入就绪队列,重新参与调度。 撤消进程原语 功能:为新建进程申请进程控制块PCB,将创建者提供的信息填入PCB,将新建进程设置为就绪状态,按照调度算法把PCB排入就绪队列中。 1. 操作系统提供若干基本操作,以便创建、撤消、阻塞和唤醒进程。为保证执行的正确,要求它们以一个整体出现,不可分割。即一旦启动了相应的程序,就要保证做完,中间不能插入其它程序的执行序列。具有这种特性的程序被称为“原语”。为保证这种不可分割性,通常是利用屏蔽中断的方法。 2.创建进程原语阻塞进程原语唤醒进程原语

21、 功能:收回该进程占用的资源,将该进程的PCB从所在队列里摘下,把PCB所占用的存储区归还给系统。 功能:将被阻塞进程的现场信息保存到PCB中,状态改为阻塞; 将其PCB排到相应的阻塞队列中。若被阻塞的是自己,调用了该原语后,就重新分配处理机。 命令接口:操作系统提供各种操作命令,以便用户通过键盘控制程序的运行。这是系统在作业控制一级给予用户的支持。1. 程序接口:操作系统提供各种系统调用命令,以让用户在编程时获得所需的功能服务。这是系统在程序一级给予用户的支持。2.特权指令与非特权指令 把CPU的指令分为两类:一类是操作系统和用户都能使用的指令,称为“非特权指令”;一类是只能由操作系统使用的

22、指令,称为“特权指令”。 管态与目态 这是CPU的两种工作状态:当其处于管态时,可执行包括特权指令在内的一切机器指令;当其处于目态时,只能执行非特权指令,禁止使用特权指令。 一般的过程调用,执行完后径直返回断点继续执行;但系统调用可能会招致进程状态的变化,从而引起系统重新分配处理机,因此系统调用处理结束后,不一定是返回调用者断点处继续执行。 一般的过程调用,调用者与被调用者都运行在相同的CPU状态;但发生系统调用时,发出调用命令的调用者运行在目态,而被调用的对象则运行在管态。 .系统调用命令 操作系统里预先编制了不同功能的子程序,用户可在自己的程序里调用它们,以求操作系统提供功能服务。这些子程

23、序被称为“系统功能调用”程序,简称“系统调用”。 访管指令是一条非特权指令,功能是执行它就会产生一个软中断,促使中央处理机由目态转为管态,进入操作系统 。用户程序只有通过 访管指令,才能由目态转为管态、以达到调用系统调用命令的目的。 .访管指令3. 一般的过程调用,直接通过转移指令转向被调用的程序;但系统调用时,只能通过访管指令提供的统一的入口,由目态进入管态,然后转向相应的系统调用命令。 4.脱机命令接口和联机命令接口。 后备作业与后备作业队列:被系统接纳的作业,在未投入运行之前,称为后备作业。这些作业存放在辅助存储器里,由它们的JCB联接在一起,形成后备作业队列。后备作业队列里的作业,不参与对处理机的竞争,但系统是

温馨提示

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

评论

0/150

提交评论