系统中处于就绪状态的进程对处理机的竞争是由进程调度程序来协调的。调度是依照确定的策略将一批进程排序,从就绪队列中移出一个进程并给它提供处理机的使用权。
中文名
计算机进程调度基本状态
等待、运行、就绪
计算机进程调度基本属性
编辑
语音
1.多态性
2.多个不同的进程可以包括相同的程序
3.三种基本状态 它们之间可进行转换
计算机进程调度基本状态
编辑
语音
1.等待态:等待某个事件的完成;
2.就绪态:等待系统分配处理器以便运行;
3.运行态:占有处理器正在运行。
运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。
运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。
就绪态→运行态 系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态
计算机进程调度处理机
编辑
语音
高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:
高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存运行;
低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;
中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。
计算机进程调度调度方式
编辑
语音
计算机进程调度非剥夺方式
当有优先级更高的进程转变为就绪状态时,仍然让正在执行的进程继续执行,直到该进程完成或发生某事
件(如提出I/O请求)而进入“完成”或“阻塞”状态时,才把处理机分配给“重要而紧迫”的进程,使之执行。
计算机进程调度剥夺方式
当有优先级更高的进程转变为就绪状态时,便暂停正在执行的进程,立即把处理机分配给高优先级的进程。
采用可剥夺调度方式时,系统中正在运行的进程的优先级一定是最高的。可剥夺调度方式的缺点是系统的开销比采用非剥夺方式要大,因为,可能增加处理机切换的
计算机进程调度算法
编辑
语音
计算机进程调度先进先出算法
算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,
执行情况如下图:
对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。
可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。
计算机进程调度短进程优先
最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First)
该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行
进程调度
期分别是16、12、4和3个单位时间,执行情况如下:
P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。
该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。
计算机进程调度循环轮转法
前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。
简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。
简单轮转法的优点虽然比较简单,但由于采用固定时间片和仅有一个就绪队列,故服务质量是不够理想的。进一步改善轮转法的调度性能是沿着一下两个方向进行的:
①将固定的时间片改为可变时间片,这样可从固定时间片轮转法演变为时间片轮转法;
②将单就绪队列改为多就绪队列,从而形成多就绪队列轮转法。
计算机进程调度多级反馈队列
多级反馈队列调度算法采用多就绪队列结构,每个就绪队列的优先级按序递减,而时间片的长度则按序递增。
计算机进程调度进程调度的实现
编辑
语音
引起原因
正在执行的进程执行完毕或因发生某事件而不能再继续执行;
执行中的进程因提出I/O请求而暂停执行;
在进程通信或同步过程中执行了某种原语操作如P操作、阻塞、挂起原语等;
在可剥夺式调度中,有比当前进程优先权更高的进程进入就绪队列;
在时间片轮转法中,时间片完;
△通常系统是按先来先服务或优先权形式来组织调度队列。
其中,RQ为就绪队列指针,EP为运行队列指针。
计算机进程调度进程调度功能
编辑
语音
计算机进程调度记录进程的有关情况
进程控制块记录了进程的有关请况和状态特征,其内容的变化体现了进程的活动以及系统对进程的控制和
管理。系统中的进程控制模块(包括进程创建、进程撤销、进程通信等功能模块)通过查询、修改、记录进程控制块PCB结构中有关的数据项的内容,或在不同的队列中移动PCB结构来实施进程控制的功能。
计算机进程调度决定分配策略
进程调度策略实际上是由就绪队列排序原则体现的。若按优先调度原则,进程就绪队列按优先级高低排序;若按先来先服务原则,则按进程来到的先后次序排序。入链子程序实施这一功能。当处理机空闲时,分派程序只要选择队首元素就一定满足确定的调度原则。
计算机进程调度进行进程上下文切换
—个进程的上下文(context)包括进程的状态、有关变量和数据结构的值、机器寄存器的值和PCB以及有关程序、数据等。一个进程的执行是在进程的上下文中执行。当正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换,以使另一个进程得以执行。当进行上下文切换时点统要首先检查是否允许做上下文切换(在有些情况下,上下文切换是不允许的,例如系统正在执行某个不允许中断的原语时)。然后,系统要保留有关被切换进程的足够信息,以便以后切换回该进程时,顺利恢复该进程的执行。在系统保留了CPU现场之后,调度程序选择一个新的处于就绪状态的进程、并装配该进程的上下文,使CPU的控制权掌握在被选中进程手中。
计算机进程调度进程调度时机
编辑
语音
计算机进程调度进程调度时机可能出现的情况
①进程完成其任务时;
②在一次系统调用之后,该调用使当前进程暂时不能继续运行时;
③在一次出错陷入之后,该陷入使现行进程在出错处理时被挂起时;
④在分时系统中,当进程使用完规定的时间片,时钟中断使该进程让出处理机时;
⑤在采用可剥夺调度方式的系统中,当具有更高优先级的进程要求处理机时。
计算机进程调度两种占用CPU的方式
可剥夺式 (可抢占式preemptive):就绪队列中一旦有优先级高于当前执行进程优先级的进程存在时,便立即发生进程调度,转让处理机。
不可剥夺式 (不可抢占式non_preemptive):即使在就绪队列存在有优先级高于当前执行进程时,当前进程仍将占用处理机直到该进程自己因调用原语操作或等待I/O而进入阻塞、睡眠状态,或时间片用完时才重新发生调度让出处理机。
计算机进程调度上下切换
编辑
语音
进程上下文由正文段、数据段、硬件寄存器的内容以及有关数据结构等组成。硬件寄存器主要包括存放CPU将要执行的下条指令虚拟地址的程序计数器PC,指出机器与进程相关联的硬件状态的处理机状态寄存器PS,存放过程调用(或系统调用)时所传递参数的通用寄存器R以及堆栈指针寄存器S等。数据结构则包括PCB等在内的所有与执行该进程有关的管理和控制用表格、数组、链等。在发生进程调度时系统要做进程上下文切换。
在进程(上下文)中切换的步骤
@保存处理器的上下文,包括程序计数器和其它寄存器
@用新状态和其它相关信息更新正在运行进程的PCB(进程状态控制块)
@把原来的进程移至合适的队列-就绪、阻塞
@选择另一个要执行的进程
@更新被选中进程的PCB
@从被选中进程中重装入cpu上下文
计算机进程调度性能评价
编辑
语音
进程调度虽然是在系统内部的低级调度,但进程调度的优劣直接影响作业调度的性能。那么,怎样评价进程调度的优劣呢?反映作业调度优劣的周转时间和平均周转时间只在某种程度上反映了进程调度的性能,例如,其执行时间部分中实际上包含有进程等待(包括就绪状态时的等待)时间,而进程等待时间的多少是要依靠进程调度策略和等待事件何时发生等来决定的。因此,进程调度性能的商量是操作系统设计的一个重要指标。我们说进程调度性能的衡量方法可分为定形和定量两种。在定形衡量方面,首先是调度的可靠住。包括一次进程调度是否可能引起数据结构的破坏等。这要求我们对调度时机的选择和保存CPU现场十分谨慎。另外,简洁性也是衡量进程调度的一个重要指标,由于调度程序的执行涉及到多个进程和必须进行上下文切换,如果调度程序过于繁琐和复杂,将会耗去较大的系统开销。这在用户进程调用系统调用较多的情况下,将会造成响应时间大幅度增加。进程调度的定量评价包括CPU的利用率评价、进程在就绪队列中的等待时间与执行时间之比等。实际上由于进程进入就绪队列的随机模型很难确定,而且进程上下文切换等也将影响进程的执行效率,LL而对进程调度进行解析是很困难的。一般情况下,大多利用模拟或测试系统响应时间的方法来评价进程调度的性能。[1]
词条图册
更多图册
参考资料
1.
进程调度
.百度[引用日期2015-11-03]