单处理器调度

  1. 调度类型:
    在这里插入图片描述

  2. 关于调度类型在进程状态中的的角色和阶段如下图所示:
    在这里插入图片描述
    在这里插入图片描述

  3. 长程调度: 长程调度程序决定哪一个程序可以进入到系统中处理,因此,它控制系统并发度。一旦允许进入,一个作业或用户程序就成为一个进程,并被添加到供短程调度程序使用的队列中等待。在某些系统中,一个新创建的进程开始处于被换出状态。这种情况下,它被添加到供中程调度程序使用的队列中等待调度。
    在批处理系统或通用的操作系统中的批处理部分中,新提交的作业被发送到磁盘,并保存在一个批处理队列中。在长程调度程序运行的时候,从队列中创建相应的进程。这里涉及两个决策:首先,调度程序必须决定什么时候操作系统能够接纳一个进程或多个进程;第二,调度程序必须决定接受哪个作业或哪些作业,并将其转变成进程。

  4. 中程调度:是交换功能的一部分。在典型情况下,换入(swapping-in)决定管理系统并发度需求。在不适用虚拟内存的系统,存储管理也是一个问题。因此,换入将考虑换出(swapped-out)进程的存储需求。

  5. 短程调度:考虑执行的频繁程度,长程调度程序执行的频率相对较低,并且仅仅是粗略地决定是否接受新进程以及接受哪一个。为进行交换决定,中程调度程序执行得略微频繁一些。短程调度程序,也成为了分派程序(dispatcher),执行得最频繁,并且精确地决定下一次执行哪一个进程。
    当可能导致当前进程阻塞或可能抢占当前运行进程的事件发生时,调用短程调度程序。这类事件包括:时钟中断、I/O中断、操作系统调用、信号(如信号量)。

  6. 如果一个进程主要执行计算工作,偶尔才会用到I/O设备,则该进程被看做是处理器密集型的;如果一个进程执行所使用的时间取决于等待I/O操作的时间,则把它看做是I/O密集型的。

  7. 短程调度准则:短程调度的主要目标是按照优化系统一个或多个方面行为的方式来分配处理器时间。通常需要对可能被评估的各种调度策略建立一系列规则。通常使用的准则可以按照两个维度来分类。
    a. 面向用户的准则:与单个用户或进程无感知到的系统行为相关
    b. 面向系统的准则:即其重点是处理器使用的效果和效率。关于这类准则的一个例子是吞吐量,也就是进程完成的速度。该准则的重点是系统性能,而不是提供给用户的服务。因此吞吐量是系统管理员所关注的,而不是普通用户所关注的。
    面向用户的准则在所有系统中都非常重要,而面向系统的原则在单用户系统中的重要性就低一些。在单用户系统中,只要系统对用户应用程序的响应时间是可以接受的,则实现处理器高利用率或高吞吐量可能并不是很重要。
    下图总结了几种重要的调度准则。它们是相互依赖的,不可能同时使它们都达到最优。例如,提供较好的响应时间可能需要调度算法在进程间频繁地切换,这就增加了系统开销,从而降低了吞吐量。因此,设计一个调度策略涉及在相互竞争的各种要求之间进行折中,根据系统的本质和使用情况,给各种要求设定相应的权值。
    在这里插入图片描述

  8. 各种调度策略的特点:
    在这里插入图片描述
    以下描述对应于上图:
    a. 先来先服务:在所有就绪进程中,选择等待服务时间最长的进程。
    b. 轮转:使用时间片限制任何正在运行的进程只能使用一段处理器时间,并在所有就绪进程中轮转。
    c. 最短进程优先:选择预期处理时间最短的进程,并且不抢占该进程。
    d. 最短剩余时间:选择预期的剩余处理时间最短的进程。当另一个进程就绪时,这个进程可能被抢占。
    e. 最高响应比优先:调度策略基于对归—化周转周期时间的估计。
    f. 反馈:建立一组调度队列,基于每个进程的执行历史和其它的一些准则,把他们分配到各个队列中。

调度算法的选择取决于预期的性能和实现的复杂度。

  1. “轮转调度”算法:为了减少FCFS(先来先服务)策略下短作业的不利情况,一种简单的方法是采用“基于时钟的抢占”策略,这类方法中,最简单的是轮转算法。以一个周期性间隔产生时钟中断,当中断发生时,当前正在运行的进程被置于就绪队列中,然后基于FCFS策略选择下一个就绪作业运行。这种技术也称为“时间片(time slicing)”,因此每个进程在被抢占前都给定一片时间。

  2. 公平共享调度:在多用户系统中,如果单个用户的应用程序或作业可以组成多个进程(或线程),就会出现传统的调度程序不认识的进程集合结构。从用户的角度看,他所关心的不是某个特定的进程如何执行,而是构成应用程序的一组进程如何执行。因此,基于进程组的调度策略是非常具有新引力的,该方法通常称为“公平共享调度(fair-share scheduling)”。此外,即使每个用户用一个进程表示,这个概念可以扩展到用户组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验内容: 编写一个处理机下的进程调度程序,模拟操作系统对进程的调度。 要求: 能够创建指定数量的进程,每个进程由一个进程控制块表示。 实现先来先服务调度算法:进程到达时间可由进程创建时间表示。 实现短作业优先调度算法:可指定进程要求的运行时间。(说明:对不可剥夺的短作业优先算法,当作业运行时间相等时,优先调度进程号小的进程执行;对可剥夺式的短作业优先算法,即选最短剩余时间的进程进行运行,在剩余时间相同的情况下,选择到达时间早的进程进行运行) 实现时间片轮转调度算法:可指定生成时间片大小。(说明:新进程到来时插入到就绪队列的队尾,当进程P运行完一个时间片时,若同时有进程Q到达,则先在就绪队列队尾插入新到达的进程Q,之后再插入进程P) 实现动态优先级调度算法:可指定进程的初始优先级(优先级与优先数成反比,优先级最高为0),优先级改变遵循下列原则:进程在就绪队列中每停留一个时间片,优先级加1,进程每运行一个时间片,优先级减3。(说明:本算法在优先级相同的情况下,选择到达时间早的进程进行运行) 测试用例格式如下: 输入:调度算法    进程号/到达时间/运行时间/优先级/时间片 输出:调度顺序/进程号/开始运行时间/结束运行时间/优先级 其中调度算法选项为:1----先来先服务,2----短作业优先,3----最短剩余时间优先,4----时间片轮转,5----动态优先级

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值