1. 先来先服务

在所有调度算法中,最简单的是非抢占式的先来先服务(first-come first-severd)算法。使用该算法,进程按照它们请求CPU的顺序使用CPU。基本上,有一个就绪进程的单一队列。早上,当第一个作业从外部进入系统,就立即开始并允许运行它所期望的时间。不会中断该作业,因为它需要很长的时间运行。当其他作业进入时,它们就被安排到队列的尾部。当正在运行的进程被阻塞时,队列中的第一个进程就接着运行。在被阻塞的进程变为就绪时,就像一个新来到的作业一样,排到队列的末尾。

这个算法的主要优点是易于理解并且便于在程序中运用。就难以得到的体育或音乐会票的分配问题而言,这对那些愿意在早上两点就去排队的人们也是公平的。在这个算法中,一个单链表记录了所有就绪进程。要选取一个进程运行,只要从该队列的头部移走一个进程即可;要添加一个新的作业或阻塞一个进程,只要把该作业或进程附加在相应队列的末尾即可

缺点:假设有一个一次运行1秒钟的计算密集型进程和很少使用CPU但是每个都要进行1000次磁盘读操作才能完成的大量I/O密集型进程存在。计算密集进程运行1秒钟,接着读一个磁盘块。所有的I/O进程开始运行并读磁盘。当该计算密集进程获得其磁盘块时,它运行下一个1秒钟,紧跟随着的是所有I/O进程。这样做的结果是,每个I/O进程在每秒钟内读到一个磁盘块,要花费1000秒钟才能完成操作。如果有一个调度算法每10ms抢占计算密集型进程,那么I/O进程将在10秒钟内完成而不是1000秒钟,而且还不会对计算密集型进程产生多少延迟。

2. 最短作业优先

适用于运行时间可以预知的另一个非抢占式的批处理调度算法。例如,一家保险公司,因为每天都做类似的工作,所以人们可以相当精确地预测处理1000个索赔的一批作业需要多少时间。当输入队列中有若干个同等重要的作业被启动时,调度程序应使用最短作业优先(shortest job first)算法,请看图2-40。这里有4个作业A、B、C、D,运行时间分别为8、4、4、4分钟。若按图中的次序运行,则A的周转时间为8分钟,B为12分钟,C为16分钟,D为20分钟,平均为14分钟。

 

图2-40   最短作业优先调度的例子:a) 按原有次序运行4个作业;b) 按最短作业优先次序运行

现在考虑使用最短作业优先算法运行这4个作业,如图2-40b所示。目前周转时间分别为4、8、12和20分钟,平均为11分钟。可以证明最短作业优先是最优的。考虑有4个作业的情况,其运行时间分别为a、b、c、d。第一个作业在时间a结束,第二个在时间a + b结束,以此类推。平均周转时间为(4a + 3b + 2c + d)/4。显然a对平均值影响最大,所以它应是最短作业,其次是b,再次是c,最后的d只影响它自己的周转时间。对任意数目作业的情况,道理完全一样。

有必要指出,只有在所有的作业都可同时运行的情形下,最短作业优先算法才是最优化的。作为一个反例,考虑5个作业,从A到E,运行时间分别是2、4、1、1和1。它们的到达时间是0、0、3、3和3。开始,只能选择A或B,因为其他三个作业还没有到达。使用最短作业优先,将按照A、B、C、D、E的顺序运行作业,其平均等待时间是4.6。但是,按照B、C、D、E、A的顺序运行作业,其平均等待时间则是 4.4。

3. 最短剩余时间优先

最短作业优先的抢占式版本是最短剩余时间优先(shortest remaining time next)算法。使用这个算法,调度程序总是选择剩余运行时间最短的那个进程运行。再次提醒,有关的运行时间必须提前掌握。当一个新的作业到达时,其整个时间同当前进程的剩余时间做比较。如果新的进程比当前运行进程需要更少的时间,当前进程就被挂起,而运行新的进程。这种方式可以使新的短作业获得良好的服务。

批处理系统中的调度---先来先服务、最短作业优先、最短剩余时间优先相关推荐

  1. 操作系统之进程管理:6、调度算法(先来先服务FCFS、最短作业优先SJF、最高响应比优先HRRN、时间片轮转法、优先级调度、多级反馈队列)

    6.调度算法 适用于早期批处理机系统的调度算法 思维导图 1.先来先服务FCFS 2.最短作业优先SJF 非抢占式最短作业优先 抢占式最短作业优先(最短剩余时间优先算法) 注 3.最高响应比优先HRR ...

  2. 进程调度之最短作业优先

    进程调度之最短作业优先 最短作业优先 SJF(Shortest-Job-First): 分为抢占式和非抢占式: 非抢占式的SJF 更确切的叫 最短下次CPU执行算法(shortest-next-CPU ...

  3. 一、操作系统——处理机(作业)调度算法:先来先服务算法FCFS、最短作业优先算法SJF(非抢占式)、 最短剩余时间优先算法SRTN(抢占式)、最高响应比优先算法HRRN

    各种调度算法的学习思路: 调度算法的评价指标: 一.先来先服务算法(FCFS):First Come First Serve 二.最短作业优先算法(SJF非抢占式):Shortest Job Firs ...

  4. 最短作业优先(SJF)调度算法

    最短作业优先(SJF)调度算法将每个进程与其下次 CPU 执行的长度关联起来.当 CPU 变为空闲时,它会被赋给具有最短 CPU 执行的进程.如果两个进程具有同样长度的 CPU 执行,那么可以由 FC ...

  5. 最短作业优先(SJF)

    最短作业优先(SJF)是一种调度任务请求的调度策略.每个任务请求包含有请求时间(即向系统提交的请求的时间)和持续时间(即完成任务所需时间).当前任务完成后,SJF策略会选择最短持续时间执行任务,若最短 ...

  6. 调度算法先来先服务(FCFS)、最短作业优先(SJF)和最高响应比优先(HRRN)算法

    一.调度算法 (一)先来先服务(FCFS,First Come First Serve) 例题:各进程到达就绪队列的时间.需要的运行时间如下表所示.使用先来先服务调度算法,计算各进程的等待时间.平均等 ...

  7. 2.2.4 调度算法: 先来先服务 最短作业优先 最高相应比优先

    目录 思维导图 先来先服务(FCFS) 短作业优先(SJF) 高响应比优先(HRRN) 思维导图 先来先服务(FCFS) 短作业优先(SJF) 高响应比优先(HRRN) 巧妙记忆: 先来先服务(FCF ...

  8. 优先级结合时间片轮转算法c语言,先来先服务/段作业优先/时间片轮转/优先级调度算法详解...

    先来先服务调度算法 先来先服务(First Come First Served,FCFS),是一种简单的调度算法,它既适用于作业调度,也适用于进程调度.先来先服务算法是按照作业或进程到达的先后次序来进 ...

  9. 交互式系统中的调度:轮转调度,优先级调度,多级队列,最短进程优先,保证调度,彩票调度。批处理系统中的调度:先进先出,最短作业优先,最短剩余时间优先。陈向群书上的概念

    来自于陈向群现代操作系统原书第四版

  10. 先来先服务算法、运行时间最短者优先算法和最高响应比优先调度算法_CPU的调度器scheduler...

    处理器作为计算机系统里的一种资源,也是需要管理,从而调度分配给需要的程序以达到最高效率,所以调度器应运而生. 1. 调度器overview 调度器本身也是一个程序,目的是为了给执行用户的程序提供资源, ...

最新文章

  1. 最新3D GAN可生成三维几何数据了!模型速度提升7倍,英伟达斯坦福出品
  2. arduino出现java错误_arduino在上传的时候出现这样的错误,在线求助大神!!!
  3. 《BI那点儿事》数据流转换——排序
  4. Linux 链接详解----动态链接库
  5. Android 面试题集整理
  6. 网络游戏的客户端同步问题 .
  7. LeetCode 2130. 链表最大孪生和(链表快慢指针+反转链表+双指针)
  8. 查询各个科目成绩前三的记录
  9. win7中安装vs2008的升级成正式版的方法
  10. vue.js中使用甘特图(gantt-elastic)的使用
  11. 按键拨号声音 DTMF MATLAB程序样例
  12. eclipse 工作空间的高效使用
  13. Redis使用说明书(Windows)
  14. 趋势:固态存储打破传统存储的I/O瓶颈
  15. Jpeglib开发笔记(一):JpegLib库介绍、windows编译和Demo
  16. MacOS 软件版本更新Monterey12.1版之后L2TP无法正常访问内网服务解决方案
  17. Hexo(sakura)文章增添字数统计和阅读时长功能
  18. git pul出错_如何使用Git出错-以及如何做。
  19. Android Studio的省电模式
  20. 电子商务的未来是B2C还是C2C ?

热门文章

  1. 菜鸟和计算机高手的差别
  2. c# 中通快递对接_C#快递鸟物流查询接口API对接调用源码
  3. 2050年这些职业将逐渐被AI(人工智能)取代
  4. 1068 万绿丛中一点红 (20 分)测试点3、5
  5. 国内智能工厂建设现状以及未来发展趋势介绍
  6. peer之间的通信协议
  7. android模拟器 vt,逍遥安卓模拟器VT模式如何设置?VT模式设置流程图文分享
  8. wordpress页脚添加备案号等版权信息
  9. 联想扬天ACPI\LBAI0100未知设备的处理方法 此驱动为电源管理
  10. 计算机专业英语 背单词,几个背英语单词的app,好用的,我亲自用过