操作系统中常用的几种进程调度算法
1. 先进先出进程调度算法(FIFO) (先来先服务FCFS)
按照进程就绪的先后次序来调度进程。
优点: 实现简单
缺点: 没考虑进程的优先级
2. 短作业(进程)优先调度算法(SJF SPF)
选择就绪队列中估计运行时间最短的进程投入运行。
优点: 平均周转时间,带权平均周转时间都改善
缺点: 对长作业非常不利,不能保证紧迫性进程得到及时处理,估计运行时间不准确
3. 时间片轮转调度算法(RR—Round Robin)
把CPU划分成若干时间片,并且按顺序赋给就绪队列中的每一个进程,进程轮流占有CPU,当时间片用完时,即使进程未执行完毕,系统也剥夺该进程的CPU,将该进程排在就绪队列末尾。同时系统选择另一个进程运行。
4. 优先权调度算法(HPF—Highest Priority First)
优先选择就绪队列中优先权最高的进程投入运行。
非抢占式优先权算法: 仅在事件发生放弃处理机时
抢占式优先权算法: 可将正在运行的运行权剥夺
5. 高响应比优先调度算法:
高响应比优先调度算法的基本思想是
把CPU分配给就绪队列中响应比最高的进程。
短作业优先调度算法 + 动态优先权机制
既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。
计算公式:响应比 =(等待时间+要求服务时间)/ 要求服务时间,即RR=(w+s)/s=1+w/s,因此响应比一定是大于1的。
优点: 短作业与先后次序的兼顾,且不会使长作业长期得不到服务
缺点: 响应比计算系统开销,增加系统开销
操作系统中常用的几种进程调度算法相关推荐
- Java模拟操作系统实验一:四种进程调度算法实现(FCFS,SJF,RR,HRN)
前言 刚学完操作系统,模拟实现了其中一些经典的算法,内容比较多,打算写一个系列的总结,将自己的源码都分享出来,既方便自己以后复习,也希望能帮助到一些刚入坑的小伙伴.我的所有代码的运行环境都是基于Ecl ...
- 注册表:HKCR, HKCU, HKLM, HKU, HKCC,注册表中常用的5种数据类型
注册表是Microsoft Windows中的一个重要数据库.用于存储系统和应用程序的系统信息. Windows 3.0 注册表已经出现 Windows NT 广泛使用注册表的操作系统 Microso ...
- UML中常用的几种图
浅谈UML中常用的几种图 1 UML简介 2 UML常见图分类 3 用况图(用例) 4 类图 简单类图使用 举例 5 其他辅助用图 时序图(顺序图) 协作图(Collaboration Diagram ...
- python编程中常用的12种基础知识总结
python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- php三个数字比较大小排序,php中常用的4种实现数字大小排序的冒泡选择等算法函数代码...
分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中按照从小到大的顺序进行排序. 本站收录这篇文章php中常用的4种实现数字大小排序的冒泡选择等算法函数代码,详细解说文章中相关排序 冒泡 ...
- java中常用的几种排序算法--常见笔试面试
转载:http://blog.csdn.net/ygc87/article/details/7208082 以下列出Java中常用的几种排序算法,只是简单实现了排序的功能,还有待改进,望指教(以下均假 ...
- 【温故知新】——原生js中常用的四种循环方式
一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0 网页输出"欢迎下次光临" 在网页中弹出框输入1 网页输 ...
- pytorch梯度下降函数_Pytorch中常用的四种优化器SGD、Momentum、RMSProp、Adam
来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-16 引言 很多人在使用pytorch的时候都会遇到优化器选择的问题,今天就给大家介绍对比 ...
- python中常用的九种预处理方法
本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardization or Mean Removal ...
最新文章
- Canny算法源码,欢迎交流
- knn闽南语是什么意思_小丑竟是我自己是什么意思梗 小丑竟是我自己bgm是什么...
- Java多线程2:Thread中的实例方法
- Java 11 新特性
- CocosCreator游戏开发---菜鸟学习之路(三)如何在CocosCreator中使用Pomelo
- MySQL 数据库的操作 连接、新增、删除、选择数据库 命令行(带图)
- APUE(7)---进程环境
- RUNOOB python练习题9 如何在代码中加入砸瓦鲁多
- 1910101811-2
- WireMock.NET如何帮助进行.NET Core应用程序的集成测试
- 关于php反射机制的一些理解
- VMWarevSphere Client 克隆虚拟机、变更IP地址、变更主机名、修改MAC地址
- fedora 安装docker
- CenterOS安装
- matlab汉明窗dft,Mitre_sfr代码注解(四) LSF / 汉明窗 / SFR(DFT)计算
- 鉴源实验室丨汽车网络安全需求分析方法综述
- html5网页录音插件Recorder
- iOS项目集成unity(2020+ 版本)
- 科学计算基础软件包NumPy入门讲座(4):操作数组
- 【ChatGPT】ChatGPT 原理全解析——读完这10篇论文,你就懂了。