操作系统——进程管理算法和例题

1、概述

1.1 进程调度

当进程的数量往往多于处理机的个数,出现进程争用处理机的现象,处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

处理机调度是多道程序操作系统的基础,它是操作系统设计的核心问题。

1.2 调度算法

(1)先来先服务(FCFS)

(2)最短作业优先

(3)最短剩余时间优先

(4)轮转调度

(5)优先级调度

(6)多级队列

1.3 各项指标计算

  • CPU利用率

  • 周转时间

 

 

 

2 实例

2.1 时间相关

case 1:

 答:画出时间线:

 (1)在100ms-150ms时CPU空闲等待,利用率是(300-50)/300

(2)无

(3)有,0-50,180到200 

case 2:

答:要考虑优先级,即优先级低的进程要把资源给优先级高的 

P1:T1=80(等待时间+运行时间->作业完成时间-作业提交时间)

P2:T2=10+80(等待时间+运行时间->作业完成时间-作业提交时间)

P3:T3=40+50(等待时间+运行时间->作业完成时间-作业提交时间)

CPU利用率:(10+10+20+30)/90

D1利用率:(30+20+20)/90

D2利用率:(30+40)/90

case 3:

 答:由图可知:

(1)B

(2)A

(3)(20+10+20+40+30+40+20)/210=85.7%

case 4:

 答:

(1)FCFS:1,2,3,4,5

执行时间周转时间
11010(10)
2110+1(11)
3210+1+2(13)
4110+1+2+1(14)
5510+1+2+1+5(19)

平均周转时间:(10+11+13+14+19)/5

带权平均周转时间:(10/10+11/1+13/2+14/1+19/5)/5

(2)SJF:2,4,3,5,1

执行时间周转时间
211(1)
411+1(2)
321+1+2(4)
551+1+2+5(9)
1101+1+2+5+10(19)

平均周转时间:(1+2+4+9+19)/5

带权平均周转时间:(1/1+2/1+4/2+9/5+19/10)/5

(3)非剥夺式优先级调度:2,5,1,3,4

执行时间周转时间
211(1)
551+5(6)
1101+5+10(16)
321+5+10+2(18)
411+5+10+2+1(19)

平均周转时间:(1+6+16+18+19)/5

带权平均周转时间:(1/1+6/5+16/10+18/2+19/1)/5

(4)RR:1,2,3,4,5

执行时间周转时间
11019
212
327
414
5514

平均周转时间:(19+2+7+4+14)/5

带权平均周转时间:(19/10+2/1+7/2+4/1+14/5)/5

2.2 进程同步和互斥例题

case1:

 分析:

进程:仓库存放A产品,仓库存放B产品

设置信号量:mutex(每次只能放一种产品),Sa表示A-B的数量差,Sa表示B-A的数量差

Semaphore mutex=1;  //互斥的信号量
Semaphore Sa=M-1,Sb=N-1   //同步信号量

process_A(){

    while(1){
         
        P(Sa);     
        P(mutex); // 占用仓库
        A入库
        V(mutex); // 释放仓库
        V(Sb);

    }
}

process_B(){

    while(1){
        
        P(Sa);
        P(mutex); // 占用仓库
        B入库
        V(mutex); // 释放仓库
        V(Sb);

    }
}

case 2:

分析:

进程:顾客、销售 

设置信号量:mutex_i (叫号值),mutex_j(取号值)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱缘之梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值