操作系统——进程调度之短进程优先
2015-07-30 11:16
204 查看
1、什么是进程调度
无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。
2、处理机调度分类
高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:
高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备进程调入内存运行;
低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;
中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。
最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First)
该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行
期分别是16、12、4和3个单位时间,执行情况如下图:
P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。
该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。
无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。
2、处理机调度分类
高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:
高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备进程调入内存运行;
低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;
中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。
3、短进程优先
最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First)该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行
期分别是16、12、4和3个单位时间,执行情况如下图:
P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。
该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。
相关文章推荐
- 两种php给图片加水印的实现代码
- eclipse快捷键大全
- 《C++编程思想》第六章 输入输出流介绍(原书代码+习题+解答)
- MPEG2 TS概念总结
- iphone之NSUserDefaults
- machine learn in python 第二章2.1.1
- android手机上安装apk时出现解析包错误的一个解决办法
- Ubuntu 配置Eclipse 导入工程完整设置 嵌入式工具链的安装
- App推送程序
- C++ Trace和assert 的使用
- 树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW
- 用javascript写的加法运算的两种方法
- Android开发:如何把Android studio中的Library发布到Jcenter
- 字节流和字符流
- 《如果我不曾见过太阳》
- float闭合(清除浮动)和CSS HACK
- mysql报Fatal error encountered during command execution的解决办法
- mongo 学习教程(全)
- C++内存分配方式(——选自:C++内存管理技术内幕)
- 基于Google Volley的Android Http连接库