操作系统面试—cpu调度

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)对称多线程(超线程)

思路:将一个物理处理器分成多个逻辑处理器,超线程是基于硬件而不是软件的,每个逻辑处理器有自己的架构状态。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章