一、常见作业调度(高级调度)算法

1、先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。

2、短作业优先调度算法(SPF): 就是优先调度并处理短作业,所谓短是指作业的运行时间短。而在作业未投入运行时,并不能知道它实际的运行时间的长短,因此需要用户在提交作业时同时提交作业运行时间的估计值。

3、最高响应比优先算法(HRN):FCFS可能造成短作业用户不满,SPF可能使得长作业用户不满,于是提出HRN,选择响应比最高的作业运行。响应比=1+作业等待时间/作业处理时间。

基本概念:

作业周转时间(Ti)=完成时间(Tei)-提交时间(Tsi)

作业平均周转时间(T)=周转时间/作业个数

作业带权周转时间(Wi)=周转时间/运行时间

响应比=(等待时间+运行时间)/运行时间

4.基于优先数调度算法(HPF):每一个作业规定一个表示该作业优先级别的整数,当需要将新的作业由输入井调入内存处理时,优先选择优先数最高的作业。

5.均衡调度算法,即多级队列调度算法。

二、常见进程调度(低级调度)算法

1、先进先出算法(FIFO):按照进程进入就绪队列的先后次序来选择。即每当进入进程调度,总是把就绪队列的队首进程投入运行。

2、时间片轮转算法(RR):分时系统的一种调度算法。轮转的基本思想是,将CPU的处理时间划分成一个个的时间片,就绪队列中的进程轮流运行一个时间片。当时间片结束时,就强迫进程让出CPU,该进程进入就绪队列,等待下一次调度,同时,进程调度又去选择就绪队列中的一个进程,分配给它一个时间片,以投入运行。

确定时间片长度要从进程数目、切换开销、系统效率和响应时间等多方面因素加以考虑。

如果时间片取值太小,将导致大多数进程/线程都不可能在一个时间片内运行完毕,就会频繁切换,开销显著增大,所以从系统效率来讲,时间片应该大些好;如果时间片长度较大,那么随着就绪队列中进程/线程数目的增加,轮转一次所耗费的总时间加长,即对每个进程/线程的响应速度 放慢,甚至时间片大到让进程/线程足以完成其所有任务,时间片调度算法便退化为FCFS算法。为了满足用户对响应时间的要求,要么限制就绪队列中进程/线程的数量,要么采用变化的时间片长度,根据当前负载情况及时调整时间片大小。

3、最高优先级算法(HPF):进程调度每次将处理机分配给具有最高优先级的就绪进程。最高优先级算法可与不同的CPU方式结合形成可抢占式最高优先级算法和不可抢占式最高优先级算法。

4、多级队列反馈法:几种调度算法的结合形式多级队列方式。

三、空闲分区分配算法

1、首先适应算法:当接到内存申请时,查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配。此算法简单,可以快速做出分配决定。

2、最佳适应算法:当接到内存申请时,查找分区说明表,找到第一个能满足申请长度的最小空闲区,将其进行分割并分配。此算法最节约空间,因为它尽量不分割到大的空闲区,其缺点是可能会形成很多很小的空闲分区,称为“碎片”。

3、最坏适应算法:当接到内存申请时,查找分区说明表,找到能满足申请要求的最大的空闲区。该算法的优点是避免形成碎片,而缺点是分割了大的空闲区后,在遇到较大的程序申请内存时,无法满足的可能性较大。

四、虚拟页式存储管理中的页面置换算法

1、理想页面置换算法(OPT):这是一种理想的算法,在实际中不可能实现。该算法的思想是:发生缺页时,选择以后永不使用或在最长时间内不再被访问的内存页面予以淘汰。

2、先进先出页面置换算法(FIFO):选择最先进入内存的页面予以淘汰。

3、最近最久未使用算法(LRU):选择在最近一段时间内最久没有使用过的页,把它淘汰。

4、最少使用算法(LFU):选择到当前时间为止被访问次数最少的页转换。

五、磁盘调度算法

1、先来先服务(FCFS)。

2、最短寻道时间优先(SSTF):让离当前磁道最近的请求访问者启动磁盘驱动器,即是让查找时间最短的那个作业先执行,而不考虑请求访问者到来的先后次序,这样就克服了先来先服务调度算法中磁臂移动过大的问题。

3、扫描算法(SCAN)或电梯调度算法:总是从磁臂当前位置开始,沿磁臂的移动方向去选择离当前磁臂最近的那个柱面的访问者。如果沿磁臂的方向无请求访问时,就改变磁臂的移动方向。在这种调度方法下磁臂的移动类似于电梯的调度,所以它也称为电梯调度算法。

4、循环扫描算法(CSCAN):循环扫描调度算法是在扫描算法的基础上改进的。磁臂改为单项移动,由外向里。当前位置开始沿磁臂的移动方向去选择离当前磁臂最近的哪个柱面的访问者。如果沿磁臂的方向无请求访问时,再回到最外,访问柱面号最小的作业请求。

操作系统hpf算法事例_操作系统中常见算法汇总相关推荐

  1. 操作系统hpf算法事例_操作系统调度算法是什么

    操作系统调度算法是什么 导读:小编根据大家的需要整理了一份关于<操作系统调度算法是什么>的内容,具体内容:学习操作系统的朋友们肯定遇到过调度算法,目的是控制资源使用者的数量,选取资源使用者 ...

  2. JavaScript 面试中常见算法问题详解

    JavaScript 面试中常见算法问题详解,翻译自 https://github.com/kennymkchan/interview-questions-in-javascript.下文提到的很多问 ...

  3. mysql中常见错误代码汇总

    mysql中常见错误代码汇总: 我们操作mysql的时候经常会遇到一些错误并给出错误的代码,很难知道它是什么意思,下面给出常见的错误代码,方便查阅: 1005:创建表失败 1006:创建数据库失败 1 ...

  4. simca算法 matlab,SIMCA分类法中主成分分析算法探究.doc

    SIMCA分类法中主成分分析算法探究 SIMCA分类法中主成分分析算法探究 摘要:模式识别是研究用计算机模拟人的识别能力,对不同类型形式的数据进行描述.分类.识别等有关的理论和方法.SIMCA方法是基 ...

  5. java api集合,javaAPI_集合基础_集合中常见操作示例

    集合中常见的操作 1.list集合去重 //使用HashSet去重 public static List removeDuplicate(List list) { HashSet h = new Ha ...

  6. 三维网格精简算法java版_几种常见算法的精简版-

    1 packagetest;2 3 importjava.nio.channels.SelectableChannel;4 5 importcom.itqf.bean.User;6 7 public ...

  7. python 绘制分布直方图_统计学中常见的4种抽样分布及其分布曲线(Python绘制)...

    现代统计学奠基人之一.英国统计学家费希尔(Fisher)曾把抽样分布.参书估计和假设检验看作统计推断的三大中心内容. 统计学中,需要研究统计量的性质,并评价一个统计推断的优良性,而这些取决于其抽样分布 ...

  8. 存储器的分配与回收算法实现_垃圾内存回收算法

    (给算法爱好者加星标,修炼编程内功) 来源:施懿民 https://zhuanlan.zhihu.com/p/20712073 常见的垃圾回收算法有引用计数法(Reference Counting). ...

  9. java实现lz77算法实例_数据压缩算法---LZ77算法 的分析与实现

    LZ77简介 Ziv和Lempel于1977年发表题为"顺序数据压缩的一个通用算法(A Universal Algorithm for Sequential Data Compression ...

最新文章

  1. 比特率 波特率 数据传输速率 区别(转)
  2. CEO 赠书 | 讲述创新背后不为人知的故事,改变世界的 Ta 们做对了什么?
  3. vue可视化拖拽生成工具_vdesjs: 基于vue的可视化拖拽,代码生成工具。提升前端开发效率,或者集成至项目作为在线拖拽工具。(持续迭代升级中)...
  4. 计算机中丢失ZJCAKeyAdmin,ZJCA数字证书客户端
  5. java格式_JAVA语言格式
  6. Golang Web入门(3):如何优雅的设计中间件
  7. php任意地方关闭弹窗,vue和jq中实现点击任意地方关闭弹窗
  8. BAT 解密:一张图概括互联网公司的标准技术架构
  9. 【GDB调试学习笔记】Makefile生成多个可执行文件
  10. 漫话:如何给女朋友解释什么是撞库、脱库和洗库?
  11. 使用ExtendSim进行制造业仿真
  12. 计算机之父的童年故事教案,《“计算机之父”的童年故事》教学设计
  13. PHP是什么,其优势有哪些?
  14. Unity 模型导入材质丢失解决方案
  15. 超炮主题曲用计算机谱,fripsideLevel5 Judgelight(《某科学的超电磁炮》动漫主题曲)歌词-查字典简谱网...
  16. SOYO的主板如何进入BIOS系统
  17. 2007年12月14日
  18. 网络:网际协议(IP)的选路表和选路算法
  19. 老年人养生:有意识的进行左手摇蒲扇 有助于预防脑溢血 健康养生
  20. 金蝶EAS初始化操作手册之管理单元初始化

热门文章

  1. nagios整合cacti2011版(五)
  2. dbunit java_java - 错误地抛出了Java DBUnit AmbiguousTableNameException - 堆栈内存溢出
  3. c#输入三个数选出最大的_C#写一个输入三个整数,按大到小顺序输出的小程序...
  4. beautifulsoup爬取网页中的表格_用 Python 爬取网页
  5. bootstrap五星评分_如何用纯代码实现评分星级显示?
  6. base64是哪个jar包的_涨知识 | 用maven轻松管理jar包
  7. 计算机硬件配置组件,配置vcenter server的硬件(默认指windows版本的)
  8. 程序员简历工作模式_简历的完整形式是什么?
  9. c ++查找字符串_C ++异常处理| 查找输出程序| 套装1
  10. 《linux操作系统》第06章在线测试,Linux系统管理一测试题-附答案.doc