CPU调度算法
批处理系统中的调度算法:
*需要考虑的因素:
1. 吞吐量
2. cpu利用率
3. 周转时间
4. 公平性*
1.先来先服务: FCFS:
- 优点:实现简单
- 缺点:可能造成周转时间长
2.最短作业优先 SJF(非抢占式)
- 优点:平均周转时间最短
- 缺点:不公平,短任务多时,长任务一直得不到执行,产生starvation。
3. 最短剩余时间优先 SRTN :Shortest Remainning Time Next
SJF的抢占式版本
4. 最短相应比优先 HRRN:highest response ratio next
- 是一个综合考虑的算法
- 调度时,先计算每个进程的响应比,之后总是选择响应比高的执行。
响应比R = 1+(等待时间/处理时间)
交互式系统中的调度算法
考虑主要因素:
- 响应时间
- 公平性
1.RR-round Robin (时间片轮转):
- 目标:为改善短任务的平均响应时间
主要思想:
1.周期性切换
2.每个进程分配一段时间片
3.利用时钟中断进行进程切换如何选择合适长度的时间片:
-时间片太长:
1.如何每个进程的处理时间都小与时间片的长度,就会退化为FCFS
2.延长短进程的响应时间-时间片太短:
1.频繁的cpu切换浪费cpu优点:
1.公平
2.有利于交互式计算,响应时间短缺点
1.由于进程切换,RR算法开销较大
2.对于各个进程处理时间大致相同的情况不利,造成更大的平均处理时间。
mutilevel feedback (多级反馈队列)
- unix BSD5.3 版本使用的调度算法
- 是一个综合的调度算法
基本思想:
- 设置多个就绪,第一级队列优先级最高
- 优先级高,时间片越短,优先级越低,时间片越长。
- 第一级队列为空时,开始调度第二级队列,以此类推
- 各级队列使用RR算法调度
- 当一个新创建进程就绪后,进入第一级队列
- 进程用完时间片,放弃cup,就进入下一级队列
- 由于阻塞而放弃cpu的进程,进入相应的等待队列,一旦等待的事件发生,就回到原来的就绪队列
- 多级反馈队列对i/o型进程更友好
CPU调度算法的更多相关文章
- 进程状态转换、CPU调度算法
进程的状态转换 进程在运行中不断地改变其运行状态.通常,一个运行进程必须具有以下三种基本状态. 进程状态 执行态run:进程正在使用CPU 等待态wait:进程正在等待I/O完成,不在使用也不能使用C ...
- 操作系统概念学习笔记三 cpu调度算法
一 基本概念 1 队列中的记录通常是进程的进程控制块. 2 CPU调度决策可在如下四种环境下发生 a 当一个进程从运行状态切换到等待状态 例如,I/O请求或调用wait以等待一个子进程的终止 b 党一 ...
- s5-2 Cpu调度算法
调度程序采用什么算法选择一个进程(作业)? 如何评价调度算法的性能? 调度准则 CPU利用率 – 使CPU尽可能的忙碌 吞吐量 – 单位时间内运行完的进程数 周转时间 – 进程从提交到运行结束的全部时 ...
- 【转】CPU调度
转自:http://blog.csdn.net/xiazdong/article/details/6280345 CPU调度 用于多道程序 以下先讨论对于单CPU的调度问题. 回顾多道程序,同时把 ...
- 操作系统概念学习笔记 10 CPU调度
操作系统概念学习笔记 10 CPU调度 多道程序操作系统的基础.通过在进程之间切换CPU.操作系统能够提高计算机的吞吐率. 对于单处理器系统.每次仅仅同意一个进程执行:不论什么其它进程必须等待,直到C ...
- 操作系统中的几种调度算法(JAVA版)
import java.text.DecimalFormat; import java.util.Arrays; import java.util.Scanner; /* * 作者:Chensx102 ...
- s5-1 CPU调度
基本概念 通过多道程序设计得到 CPU 的最高利用率 (CPU-- I/O 脉冲周期 - - 进程的执行包括进程在 CPU 上执行和等待 I/O ) 进程的执行以 CPU 脉冲开始,其后跟着 I/O ...
- Linux性能优化之CPU优化(一)
前言 何为性能优化?个人认为,性能优化是为了提高应用程序或系统能力为目的.那么如何才能实现对应用程序的性能调优呢?这里很设计到很多的内容,包括Linux内核.CPU架构以及Linux内核对资源的分配以 ...
- 线程池线程数与(CPU密集型任务和I/O密集型任务)的关系
近期看了一些JVM和并发编程的专栏,结合自身理解,来做一个关于(线程池线程数与(CPU密集型任务和I/O密集型任务)的关系)的总结: 1.任务类型举例: 1.1: CPU密集型: 例如,一般我们系统的 ...
随机推荐
- 【HDOJ5558】Alice's Classified Message(后缀数组)
题意:给定一个长度为n的下标从0开始的小写字母字符串,每次对于当前的i寻找一个j使得后缀i与后缀j的lcp最大,(j<i)若lcp相同则取较小的 若lcp为0则输出0与当前字符,i自增1,否则输 ...
- mysql启动错误1067的解决
安装后MYSQL5后,发现启动出错,有时启动正常,但加接时马上出错. 出错代码:1067 解决办法如下: 删除%windows%/my.ini 删除其它地方的my.ini 在mysql安装 ...
- MySQL的配置文件无法修改的解决办法(Win8)
问题描述 修改mysql5.7安装目录下my-default.ini发现不起作用: MySQL的版本是5.7,操作系统是window8.1.MySQL安装在 C:\Program Files ...
- 【全局变量】mysql查看全局变量以及设置全局变量的值
1.查看mysql的所有全局变量的值 SHOW GLOBAL VARIABLES 或者 SHOW VARIABLES mysql有很多全局变量,包括系统的一些基本信息,以及mysql的一些基本配置都可 ...
- Codeforces Round #449 Div. 2 A B C (暂时)
A. Scarborough Fair 题意 对给定的长度为\(n\)的字符串进行\(m\)次操作,每次将一段区间内的某一个字符替换成另一个字符. 思路 直接模拟 Code #include < ...
- Linux继续学习笔记
本篇文章是慕课网<Linux达人养成计划2>笔记. 第一章 VIM文本编辑器 VI : Visual Interface (可视化接口) VIM: 在VI的基础上进行的升级,相比于VI有一 ...
- hadoop(一)hadoop简介
1. Hadoop 版本衍化历史 Hadoop 是一个由 Apache 基金会所开发的开源分布式系统基础架构.用户可以在不了解 分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和 ...
- hdu 5698(杨辉三角的性质+逆元)
---恢复内容开始--- 瞬间移动 Accepts: 1018 Submissions: 3620 Time Limit: 4000/2000 MS (Java/Others) Memory Limi ...
- 关于Integer的parseInt(String s, int radix)方法的使用
我们平时用到Integer.parseInt("123");其实默认是调用了int i =Integer.parseInt("123",10); 其中10代表的 ...
- 洛谷 P1579 哥德巴赫猜想(升级版)【筛素数/技巧性枚举/易错】
[链接]:https://www.luogu.org/problemnew/show/P1579 题目背景 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇 ...