本文共 2590 字,大约阅读时间需要 8 分钟。
在多道程序系统中,处理机个数有限而进程数量多,因而往往出现进程竞争处理机,为了避免因为进程 的竞争导致计算机系统瘫痪,计算机系统提供了专门的处理程序——处理机调度程序对处理机进行分配,按照相关的公平、高效的算法选择就绪队列的进程占用处理机去运行
。作业调度、中级调度和进程调度
。高级调度
,主要任务是按一定原则从外存上处于后备状态的作业中挑选一个或多个作业,并为其分配相关的系统资源,建立相应的进程,进而获得竞争处理机的权利
;也就是,作业调度是内存和辅存之间的调度。每个作业只调入一次、调出一次;作业调度执行频率低,几分钟一次
。内存调度
,用于提高内存利用率和系统吞吐量
;通常,那些暂时不能运行的进程会被调至外存
,此时进程称为挂起态
;当某一个或某些挂起态的进程具备运行条件并且内存有空闲时,中级调度程序就会将其调入内存,此时进程变为就绪态。低级调度
,主要任务是按照相关方法和策略从就绪队列中选择一个进程进行运行
,是操作系统中最基本的一种调度,大多数操作系统都必须配置进程调度;进程调度执行频率很高,一般几十毫秒一次
。 分工合作的关系
,所处的位置就好比一条河流的上游、中游和下游,作业调度从外存的后备队列中选择作业进入内存,并建立相关进程送入就绪队列,中级调度为了提高内存利用率和系统吞吐量,对就绪态的进程做一个条件筛选,将暂时不能运行的进程挂起,直到其具备条件兵器内存空间有空闲再再次调入就绪队列,进程调度直接在中级调度处理过的就绪队列中选择一个进程,占用 处理机进行运行。1)作业调度为进程活动做准备,进程调度使进程正常活动起来,中级调度将暂时不能运行的进程挂起。2)作业调度次数少,中级调度次数略多,进程调度频率最高。3)进程调度最基本,不可或缺。
调度的时机、切换如何安排
,调度的过程又是怎么样进行的
。负责进程调度、进程切换的程序都是系统内核程序
,只有当请求调度的事件发生后,才会运行进程调度程序,调度了新的进程后,才会进行进程切换。理论上这三件事是顺序执行,但实际上操作系统不一定能够马上进行调度与切换。中断处理是系统工作的一部分
,逻辑上不属于某一进程,不应被剥夺处理机资源。指进程在操作系统内核程序临界区
;进入临界区后,需要独占式地访问共享数据,理论上必须加锁,以防止其他并行进程进入,在解锁前不应切换到其他进程运行,以加快该共享数据地释放
。在如加锁、解锁、中断现场保护、恢复等原子操作,在这些原子操作过程中,连中断都频闭,更不应该进行进程调度与切换
。
若上述过程中发生了引起调度的条件,则不能马上进行调度和切换,应置系统的请求调度标志,直到上述过程结束才进行调度与切换。
非剥夺式调度和剥夺式调度
。非抢占式
,指的是若有进程正在执行,即便有优先级更高(更为重要或紧迫)的进程进入就绪队列,也仍然让当前进程继续执行,直到进程完成任务或进入阻塞态、等待态,才让更为紧迫的进程进行运行
。实现简单、系统开销小,适用于大多数的批处理系统;但不适合分时系统或大多数实时系统
。抢占式
,指的是当一个进程正在执行时,有优先级更高的进程进入就绪队列,则立即停止当前进程的执行,让优先级更高的进程执行
。是提高系统吞吐率和响应效率;且“剥夺”也不是任意的,而是按照一定的原则(优先级、短进程优先和时间片原则)进行的
。指单位时间内 CPU 完成的作业数量
。通常,长作业需要较长的 CPU 占用时间,而短作业则不需要很长的占用 CPU 时间,因此为了提高系统吞吐量,则是短作业优先。指从作业提交到作业完成所经历的时间
,是作业等待、在就绪队列中排队、在处理机上运行及进行输入/输出操作所花费的时间的总和。可用如下公式表示: 周转时间 = 作业完成时间 - 作业提交时间
平均周转时间 = (作业 1 的周转时间 + … + 作业 n 的周转时间)/n
带权周转时间 = 作业周转时间 / 作业实际运行时间
平均带权周转时间 = (作业 1 的带权周转时间 + … + 作业 n 的带权周转时间)/n
指进程处于等处理机状态的时间之和,等待时间越长,用户满意度越低
。处理机调度算法实际上并不影响作业执行或输入/输出操作时间,只影响作业在就绪队列中等待所花费的时间;因此,衡量一个调度算法的优劣,常常只需简单地考察等待时间。指从用户发出请求到系统首次产生响应所用的时间
。在交互系统上,周转时间不可能是最好的评价标准,一百采用响应时间作为衡量调度算法的重要准则之一。一方面要满足特定系统用户的要求,另一方面要考虑整体效率
。转载地址:http://hmqgn.baihongyu.com/