北航操作系统课程-第六次作业-进程与调度

北航操作系统课程-第六次作业-虚拟内存管理-页面置换


北京航空航天大学计算机学院-2020春操作系统课程
题目作者为北航计算机学院操作系统课程组,答案为博主原创。水平有限,无法保证作答正确性,如有错误敬请批评指正。部分作答源自百度谷歌等其他资料,如有侵权联系删除


1 一个线程是否会被时钟中断剥夺CPU使用权?请分线程实现类型讨论。

用户级线程不会被时钟中断剥夺CPU使用权。用户级线程在用户空间通过库函数实现,无需内核支持也不参与内核的调度,由用户程序自行调用、调度和维护。用户级线程不受内核时钟中断的影响,但如果其所在的进程时间片用完,自然整个进程的所有线程都会让出CPU。

内核级线程由内核调度和维护,是可以被时钟中断单独剥夺CPU使用权的。

对于混合线程实现方式,用户级线程和内核级线程之间有映射关系,一个线程是否会被时钟剥夺CPU使用权取决于其由哪一方控制。不论是Many-to-One, One-to-One, 还是Many-to-Many,其映射中内核级线程是可以被时钟中断剥夺CPU使用权的,而用户级线程的情况取决于其所映射的内核级线程,一旦内核级线程被剥夺CPU使用权,其所映射的用户级线程都将让出CPU。如果一个内核级线程映射多个用户级线程,其用户级线程不可单独被时钟中断剥夺CPU使用权;如果一个内核级线程只映射了一个用户级线程,那么中断掉内核级线程也就相当于中断掉了对应的用户级线程。


2 一个软实时系统中有4个周期性进程,其周期分别为:50、100、200、250,每次CPU运行时长分别为:35、20、10、x,求使得这些进程可调度的最大x取值。

若使用静态调度算法,RMS已被证明是静态最优调度算法,其推导了,当任务集满足 ∑ i = 1 n C i / T i ≤ n ( 2 n − 1 ) \sum_{i=1}^n C_i/T_i \leq n(\sqrt[n]2-1) i=1nCi/Tin(n2 1) 时一定可调度,在题目所述情况下有4个进程,不等式右侧为 4 × ( 2 4 − 1 ) = 0.75682846 4 \times (\sqrt[4]2-1)=0.75682846 4×(42 1)=0.75682846 ,将4个进程的运行时间和周期代入不等式左侧,得到 35 / 50 + 20 / 100 + 10 / 200 + x / 250 ≤ 0.75682846 35/50+20/100+10/200+x/250 \leq 0.75682846 35/50+20/100+10/200+x/2500.75682846 ,发现 x x x 必须是负数,说明上述条件得任务集是静态不可调度的。

若使用动态的调度算法,只需要任务集满足 ∑ i = 1 n C i / T i ≤ 1 \sum_{i=1}^n C_i/T_i \leq1 i=1nCi/Ti1 即可调度。 35 / 50 + 20 / 100 + 10 / 200 + x / 250 ≤ 1 35/50+20/100+10/200+x/250 \leq 1 35/50+20/100+10/200+x/2501 ,得到 x ≤ 12.5 x \leq 12.5 x12.5


3 有五个进程P1、P2、P3、P4、P5,它们同时依次进入就绪队列,它们的优先数和需要的处理器时间如下表。

进程处理器时间优先级(数小优先级高)
P1103
P211
P323
P414
P552

忽略进行调度等所花费的时间,回答下列问题:

  1. 写出采用“先来先服务”、“短作业(进程)优先”、“非抢占式的优先数”和“轮转法”等调度算法,进程执行的次序。(其中轮转法的时间片为2)
  2. 分别计算上述算法中各进程的周转时间和等待时间,以及平均周转时间。

四种调度算法下五个进程的执行顺序如下图所示:

在这里插入图片描述

先来先服务:

进程周转时间等待时间执行时间
P110010
P211101
P313112
P414131
P519145

先来先服务的平均周转时间: ( 10 + 11 + 13 + 14 + 19 ) ÷ 5 = 13.4 (10+11+13+14+19)\div5=13.4 (10+11+13+14+19)÷5=13.4

短作业优先:

进程周转时间等待时间执行时间
P119910
P2101
P3422
P4211
P59145

短作业优先的平均周转时间: ( 19 + 1 + 4 + 2 + 9 ) ÷ 5 = 7 (19+1+4+2+9)\div5=7 (19+1+4+2+9)÷5=7

非抢占式优先数:

进程周转时间等待时间执行时间
P116610
P2101
P318162
P419181
P5615

非抢占式优先数的平均周转时间: ( 16 + 1 + 18 + 19 + 6 ) ÷ 5 = 12 (16+1+18+19+6)\div5=12 (16+1+18+19+6)÷5=12

时间片轮转(时间片为2):

进程周转时间等待时间执行时间
P119910
P2321
P3532
P4651
P515105

时间片轮转(时间片为2)的平均周转时间: ( 19 + 3 + 5 + 6 + 15 ) ÷ 5 = 9.6 (19+3+5+6+15)\div5=9.6 (19+3+5+6+15)÷5=9.6

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值