操作系统-调度算法(2)

1.先来先服务

例题1:

作业名称           到达时间        服务时间         开始时间        完成时间
    A                        0                    1                   0                     1
     
     B                        1                  100               1                    101

     C                        2                    1               101                   102

      D                       3                   100               102                  202

因为要采用先来先服务算法,所以后面要等前面完成才能执行他的操作
B->C  B比C先到达,所以C先等待B执行完,所以开始时间是101.

周转时间:完成时间-到达时间

综上所示, 不利于短作业进程(C到达时间2秒,但执行时间101S)
带权周转时间 = (完成-到达)/服务时间    

2.短作业优先算法
从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给他执行
缺点:
(1)对长作业不利
(2)不能保证紧迫进程及时处理
(3)是估计运行时间,所以不能保证真正的短作业优先

3.优先级调度算法
调度方式:

(1)非抢占式优先权算法

(2)抢占式优先权调度算法


类型:  

(1)静态优先权

(2)动态优先权(动态分时间片)


高响应比优先调度算法:
R = (等待时间 + 服务时间) / 服务时间


特点:
照顾了短作业, 又考虑了作业到达的先后次序, 不会使长作业期得不到服务,是一种
短作业和先来先服务是算法的结合.


4.时间片轮转法

给固定时间片,cpu调度各个进程只分配这个固定的时间片

时间片选取:  过长就变成先来先服务算法、过短增加系统能耗

选取原则:

 (1)一般根据经验: 时间片的长度不应使得上下文切换开销超过1%.
 (2)时间片略大于一次典型交互所需要时间(可使大多数进程在一个时间片内完成)

执行过程:

下列作业完成所需要时间:

        P1:48         P2:8          P3:60         P4:19

时间片: 20

        (1)p1获取到执行权,20s后,放弃执行权,还差28s

        (2)p2获取到执行权,20s后,放弃执行权,任务完成

        (3)p3获取到执行权,20s后放弃执行权,还差40s

        (4)p4获取到执行权,20s后,放弃执行权,任务完成

        (5)p1获取到执行权,20s后,放弃执行权,还差8s

        (6)p3获取到执行权,20s后,放弃执行权,还差20s

        (7)p1获取到执行权,20s后,放弃执行权,任务完成

        (8)p1获取到执行权,20s后,放弃执行权,任务完成

5.多级反馈队列算法

内容:   

                        队列1:   1,2, 3, 4

                        队列2:5,   6,   7,    8

                        队列3:   9,  10

过程:

         发给每个队列一个时间片,队列1要是在它的时间片内没把任务处理完成,

        则任务会留到队列2.......

特点:

cpu密集型进程: 进程优先级会下降很快,得到较大的时间片,减少进程切换开销

进程会停留在高优先级队列中,因为每次需要cpu执行时间很短

6.面向用户的准则

(1)周转时间短

周转时间,是在作业被提交到系统开始,到作业完成为止这段时间间隔

平均周转时间T:(T1+T2+T3+...+Tn)/n

带权平均周转时间T:(T1/TS1 + T1/TS2+.....+TN/TSn)/n(TSi为服务时间)

(2)响应速度快

响应时间: 等待时间 + 服务时间

例题:

考虑在单纯时间片轮转算法中,实现“优先级调度”,即优先级高的进程一次分配的简片越多。有进程A、B、C、D、E依次几乎同时到达,其估计运行时间分别为:10、6、2、4、8,其优先级分别是:3、5、2、1、4,一个优先级数对应一个时间片。对于前一个进程时间片有剩余的情况,操作系统会调度下一个进程运行。这种情况下,总的响应时间和总周转时间是()。(忽略进程切换时间)
A.30、112 B.30、122 C.47、112 D.47、122

解析:由于是时间片轮转算法,所以我们画一下他的执行过程

0--3(A(7))--8(B(1))--10(C(完))--11(D(3))--15(E(4))--18(A(4))--19(B(完))--20(D(2))--24(E(完))--27(A(1))--28(D(1))--29(A(完))--30(D(完))

响应时间:

A: 3  B:8 C:10  D:11 E:15 =>47

周转时间:   

A29  B19  E24 D30 C10

(3)截止时间

7.面向系统的准则

(1)系统吞吐量高

(2)处理及利用率好

(3)各类资源的平衡利用

         


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值