操作系统调度设计

2018-04-04  本文已影响0人  openex

0.调度算法的目标

所有系统

批处理系统

交互式系统

实时系统


一.批处理系统中的调度

1.先来先服务

先到来的服务,系统先对其进行服务 FIFO

2.短作业优先

评估当前作业中,运行时间最短的作业优先服务

3.最短剩余时间优先

当一个作业到达时,评估当前系统中作业的剩余时间和该作业所需时间,选择剩余时间最小的进行调度

二.交互式系统中的调度

1.轮转调度

每个进程被分配一个时间片,如果时间片内没做完则强制切换,提前做完提前切换

2.优先级调度

每个进程拥有不同的优先级,优先调度优先级高的进程,同优先级的进程采用轮转调度。

3.多级队列

调度系统拥有不同优先级的队列,每个队列的时间片长度不同,进程依情况加入不同的队列中,调度中的进程可能由于时间片用完导致转移到较低级别队列

注:伯克利XDS940分4个优先级 中断、I/O,短时间片,长时间片

4.最短进程优先

从当前可用进程中找出最短的一个进程进行调度
评估算法为 $T_0=aT_0+(1-a)T_1$
$a$:权值
$T_0$:当前估计时间
$T_1$:测量其下一次运行时间

5.保证调度

保证n个进程/用户获得CPU处理能力的$1 \over n$,选择$k$最低的进程进行调度,直到其值小于最近接该进程的竞争者
比率计算 $k= \frac {T_0} {T_1}$
$T_0$ :实际获得时间,进程自创建以来该进程实际获得时间
$T_1$ :应得时间,进程自创建以来过去的时间除以n

6.彩票调度

每个进程拥有f份彩票,所有进程总彩票为m,则每个进程的被调度几率为$f\over m$

7.公平分享调度

在进程调度前先判断进程的所有者是谁,以保证用户之间的调度公平

三.实时系统中的调度

可调度:满足$\sum_{i=1}^m \frac {C_i}{P_i} \leq1$
$m个周期事件,事件i以周期P_i发生需要C_i秒处理$

四.策略与机制

为了使用户进程参与有关调度决策,可以将调度机制与调度策略分离,也就是将调度算法以某种形式参数化,而参数可以由用户进程填写

五.线程调度

线程调度的分类:分为用户级线程内核级线程

1.用户级线程

2.内核级线程

上一篇下一篇

猜你喜欢

热点阅读