操作系统面试—cpu调度
2016-06-21 11:08
393 查看
cpu调度是多道程序设计的基础。本文是对操作系统概念(第七版)第五章——cpu调度的学习总结,不足之处欢迎各位博友提出,共同进步。
本文内容:
1、介绍cpu调度常见概念。
2、介绍cpu调度算法以及特点。
(1)cpu调度决策发生的情况:
a、当一个进程从运行态到等待状态。(I/O请求)
b、运行状态到就绪态(中断)
c、等待状态到运行态
d、一个进程终止
其中a,d是非抢占的,b,c是抢占的。
(2)调度准则
a、cpu使用率
b、吞吐量(单位时间内可以完成的进程数量)
c、周转时间(进程提交到完成所需要的总时间)
d、等待时间(进程在就绪队列中等待所花费的总时间)
e、响应时间(提交请求到第一响应的时间(开始响应))
(3)调度算法
a、先到先服务调度(FCFS)
缺点:平均等待时间通常比较长。
特点:非抢占的。
b、最短作业优先调度(SJF)
特点:最佳的,但困难在于无法确定下一个cpu区间的长度。可以是抢占和非抢占的。抢占SJF调度又称为最短剩余时间优先调度。
解决:近似SJF调度:t(n+1)=ax(n)+t(n),x(n)为第n个区间cpu的长度。
c、优先级调度
特点:可抢占,可非抢占。
问题:无穷阻塞/饥饿,即优先级低的可能一直得不到cpu
解决:老化技术,随着时间优先级提高。
d、轮转法调度(RR)
特点:分配时间片,是可抢占的(运行时间超过时间片,则被抢占)
缺点:平均等待时间较长。
e、多级队列调度
特点:多个队列,每个队列的优先级不同,并且在不同的队列可以采用不同的调度算法。
缺点:进程无法在不同的队列中进行移动。
f、多级反馈队列调度
特点:进程无法在不同的队列中进行移动,这是最通用的调度算法,但也最复杂。
(4)多处理器调度
a、非对称多处理,(由一个处理器处理所有的调度等)
b、对此多处理(smp),每个处理器自我调度。
(5)处理器亲和性
本质就是努力是一个进程在一个处理器中运行,而不在处理器之间进行移动。
原因:移动之后得重新建立缓存,时间开销大。
(6)负载平衡
目标:是cpu能够平衡利用,不会导致某个cpu负载过重,而另外的空闲。
两种方法:push migration和pull migration.
负载平衡和处理器亲和性是冲突的。
(7)对称多线程(超线程)
思路:将一个物理处理器分成多个逻辑处理器,超线程是基于硬件而不是软件的,每个逻辑处理器有自己的架构状态。
本文内容:
1、介绍cpu调度常见概念。
2、介绍cpu调度算法以及特点。
(1)cpu调度决策发生的情况:
a、当一个进程从运行态到等待状态。(I/O请求)
b、运行状态到就绪态(中断)
c、等待状态到运行态
d、一个进程终止
其中a,d是非抢占的,b,c是抢占的。
(2)调度准则
a、cpu使用率
b、吞吐量(单位时间内可以完成的进程数量)
c、周转时间(进程提交到完成所需要的总时间)
d、等待时间(进程在就绪队列中等待所花费的总时间)
e、响应时间(提交请求到第一响应的时间(开始响应))
(3)调度算法
a、先到先服务调度(FCFS)
缺点:平均等待时间通常比较长。
特点:非抢占的。
b、最短作业优先调度(SJF)
特点:最佳的,但困难在于无法确定下一个cpu区间的长度。可以是抢占和非抢占的。抢占SJF调度又称为最短剩余时间优先调度。
解决:近似SJF调度:t(n+1)=ax(n)+t(n),x(n)为第n个区间cpu的长度。
c、优先级调度
特点:可抢占,可非抢占。
问题:无穷阻塞/饥饿,即优先级低的可能一直得不到cpu
解决:老化技术,随着时间优先级提高。
d、轮转法调度(RR)
特点:分配时间片,是可抢占的(运行时间超过时间片,则被抢占)
缺点:平均等待时间较长。
e、多级队列调度
特点:多个队列,每个队列的优先级不同,并且在不同的队列可以采用不同的调度算法。
缺点:进程无法在不同的队列中进行移动。
f、多级反馈队列调度
特点:进程无法在不同的队列中进行移动,这是最通用的调度算法,但也最复杂。
(4)多处理器调度
a、非对称多处理,(由一个处理器处理所有的调度等)
b、对此多处理(smp),每个处理器自我调度。
(5)处理器亲和性
本质就是努力是一个进程在一个处理器中运行,而不在处理器之间进行移动。
原因:移动之后得重新建立缓存,时间开销大。
(6)负载平衡
目标:是cpu能够平衡利用,不会导致某个cpu负载过重,而另外的空闲。
两种方法:push migration和pull migration.
负载平衡和处理器亲和性是冲突的。
(7)对称多线程(超线程)
思路:将一个物理处理器分成多个逻辑处理器,超线程是基于硬件而不是软件的,每个逻辑处理器有自己的架构状态。
相关文章推荐
- 应用领航:盘点那些年我们一起追过的OS
- 无奇不有!盘点各国自己开发的操作系统
- 可自定义oem的萝卜家园 Ghost XP 新春装机版 V200801 下载
- C#实现判断操作系统是否为Win8以上版本
- js获取本机操作系统类型的两种方法
- Linux操作系统添加新硬盘方法
- java如何获取本地操作系统进程列表
- Linux rdesktop操作系统下远程登录Windows XP桌面
- 32位操作系统认出超出4G内存的方法
- Linux rpm tar 操作系统下软件的安装与卸载方法
- JavaScript 获取用户客户端操作系统版本
- jsp 获取客户端的浏览器和操作系统信息
- Windows 操作系统的安全设置
- php判断当前操作系统类型
- PHP获取用户的浏览器与操作系统信息的代码
- Perl操作系统环境变量的脚本代码
- javascript获取本机操作系统类型的方法
- 封装好的js判断操作系统与浏览器代码分享
- javascript实现获取浏览器版本、操作系统类型
- php根据操作系统转换文件名大小写的方法