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

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


北京航空航天大学计算机学院-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,它们同时依次进入就绪队列,它们的优先数和需要的处理器时间如下表。

进程 处理器时间 优先级(数小优先级高)
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2

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

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

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

北航操作系统课程-第六次作业-进程与调度_第1张图片

先来先服务:

进程 周转时间 等待时间 执行时间
P1 10 0 10
P2 11 10 1
P3 13 11 2
P4 14 13 1
P5 19 14 5

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

短作业优先:

进程 周转时间 等待时间 执行时间
P1 19 9 10
P2 1 0 1
P3 4 2 2
P4 2 1 1
P5 9 14 5

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

非抢占式优先数:

进程 周转时间 等待时间 执行时间
P1 16 6 10
P2 1 0 1
P3 18 16 2
P4 19 18 1
P5 6 1 5

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

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

进程 周转时间 等待时间 执行时间
P1 19 9 10
P2 3 2 1
P3 5 3 2
P4 6 5 1
P5 15 10 5

时间片轮转(时间片为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

你可能感兴趣的:(北航计算机学院操作系统课程)