操作系统 | 《操作系统设计与实现》Homework 2 进程

教材:《操作系统设计与实现》(第三版)

2、进程的三种状态各是什么?分别简要描述。
答:(1)运行态(Running,在该时刻实际占用处理机)。
(2)就绪态(Ready,可运行,因为其他进程正在运行而暂时被挂起)。
(3)阻塞态(Blocked,除非某种外部事件发生,否则不能运行)。

4、目前的计算机上,中断处理程序至少有一小部分用汇编语言编写,为什么?
答:(1)中断处理程序中诸如开中断、关中断、保存寄存器的值、以及设置栈指针等操作无法用高级语言描述,(2)中断处理程序的执行应该尽可能快,而汇编语言代码比高级语言代码执行效率可能更高。

7、进程和线程的本质区别是什么?
答:本质区别在于是否共享地址空间和共享多少地址空间。传统意义上,进程之间是不共享地址空间的,而线程是共享着进程的地址空间。

8、在使用线程的系统中,是每一个线程有一个堆栈还是每个进程有一个堆栈?说明原因。
答:每个线程有各自独立的栈;堆为本进程中所有线程共享。

9、什么是竞争条件?
答:两个或多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序,就称为竞争条件。

17、在2.2.4节中描述了一个高优先级进程H和低优先级进程L的情况。它最终导致H陷入死循环。若采用时间片调度而不是优先级调度,还能发生这种情况吗?请进行讨论。
答:不会发生这种情况。在优先级调度算法下,L永远不会运行。在时间片调度算法下,进程L迟早会运行,最终它会离开临界区。

23、从何种类型的进程可以在何时被启动的角度来看,读者-写者问题可以通过几种方式进行形式化。根据优先哪几类进程的不同,请详细地描述问题的三种变体。对每种变体,请说明当一个读者或写者能够访问数据库时情况将会怎样,以及当一个进程对数据库访问结束后将会怎样。
答:
(1)读者优先:读者优先的情况下,当有一个读者正在读取,则要等到所有读者结束读取,才真正开始写;若有一个写者已经开始写,则这个写者完成后就开始读。读者不需要排队等待。
(2)写者优先:写者优先的情况下,当有一个读者已经开始读,则可以继续读取,但是如果有再读者申请读取文件,则不能够读取,只有在所有的写者写完之后才可以读取;若正在写,则要等到所有的写结束后才开始读。写者不需要排队等待。
(3)读写公平:一旦开始读,就一直读到没有读者为止;同样地,一旦开始写,所有写者都被完成为止。

26、对某系统进行监测后表明平均每个进程在I/O阻塞之前的运行时间为T。一次进程切换需要的时间为S,这里S实际上为开销。对于采用时间片长度为Q的时间片调度法,对以下各种情况给出CPU利用率的计算公式:
(a)Q=
(b)Q>T
©S<Q<T
(d)Q=S
(e)Q趋于0

答:
(a)和(b):CPU利用率= T S + T \frac T{S+T} S+TT
(c):CPU利用率= T T + S T Q = Q Q + S \frac T{T+S{\displaystyle\frac TQ}}=\frac Q{Q+S} T+SQTT=Q+SQ
(d)CPU利用率将S替换为Q代入得:50%
(e)Q趋于0,可近似看作CPU时间都花费在进程切换上,利用率趋近于0。

27、有5个待运行任务,各自的预计运行时间分别是9,6,3,5和X。采用哪种运行次序将使平均响应时间最短?(答案取决于X)
答:最短运行时间的任务优先调度。
x ≤ 3 x\leq3 x3时,运行次序为x,3,5,6,9;
3 < x ≤ 5 3<x\leq5 3<x5时,运行次序为3,x,5,6,9;
5 < x ≤ 6 5<x\leq6 5<x6时,运行次序为3,5,x,6,9;
6 < x ≤ 9 6<x\leq9 6<x9时,运行次序为3,5,6,x,9;
x > 9 x>9 x>9时,运行次序为3,5,6,9,x。

28、有5个批处理任务A到E几乎同时到达一个计算中心。其预计运行时间分别为10min,6min,2min,4min和8min。其优先级(由外部设定)分别为3,5,2,1和4,这里5为最高优先级。对于下列每种调度算法,计算其平均进程周转时间,进程切换开销可忽略:
(a)时间片轮转
(b)优先级调度
©先来先服务(按照次序10,6,2,4,8)
(d)最短作用优先
对于(a),假设系统具有多道处理能力,每个作业均获得公平的CPU份额;对于(b)到(d),假设某一时刻只有一个作业运行,直到结束。所有的作业都是完全的CPU密集型作业。

答:
(a)时间片轮转
前十分钟,每个作业获得1/5的CPU时间,在第十分钟时,C结束;在接下来的8分钟内,每个作业获得1/4的CPU时间,在第8分钟时,D结束;以此类推。
平均进程周转时间: ( 10 + 18 + 24 + 28 + 30 ) ÷ 5 = 22 m i n (10+18+24+28+30)\div5=22min (10+18+24+28+30)÷5=22min
(b)优先级调度
调度次序:B E A C D
平均进程周转时间: ( 6 × 5 + 8 × 4 + 10 × 3 + 2 × 2 + 4 ) ÷ 5 = 20 m i n (6\times5+8\times4+10\times3+2\times2+4)\div5=20min (6×5+8×4+10×3+2×2+4)÷5=20min
©先来先服务
平均进程周转时间: ( 10 × 5 + 6 × 4 + 2 × 3 + 4 × 2 + 8 ) ÷ 5 = 19.2 m i n (10\times5+6\times4+2\times3+4\times2+8)\div5=19.2min (10×5+6×4+2×3+4×2+8)÷5=19.2min
(d)最短作业优先
调度次序:C D B E A
平均进程周转时间: ( 2 × 5 + 4 × 4 + 6 × 3 + 8 × 2 + 10 ) ÷ 5 = 14 m i n (2\times5+4\times4+6\times3+8\times2+10)\div5=14min (2×5+4×4+6×3+8×2+10)÷5=14min

33、一个软实时系统有4个周期性事件,其周期分别为50ms,100ms,300ms,250ms。假设其处理分别需要35ms,20ms,10ms和x ms,则该系统可调度所允许的x值最大是多少?
答:若 35 50 + 20 100 + 10 300 + x 250 ≤ 1 \frac{35}{50}+\frac{20}{100}+\frac{10}{300}+\frac x{250}\leq1 5035+10020+30010+250x1成立,则系统可调度。
解得: x ≤ 50 3 x\leq\frac{50}3 x350
因此, x x x的最大值为 50 3 \frac{50}3 350

38、MINIX3使用图2.43所示的调度方法,其中不同类型的进程有不同的优先级。优先级最低的进程(用户进程)使用时间片调度法,而系统任务和服务器进程则允许一直运行到阻塞。请问优先级最低的进程是否会发生饥饿?为什么?
答:不会发生饥饿。系统任务和服务器进程优先级高,分配的时间片多,通常这些高优先级进程由于时间片用不完,常常处于阻塞状态。而用户进程的时间片分配得少,当时间片用完后被移动到队列尾部。并且MINIX是一个抢占式操作系统,可以修改进程的优先级。

欢迎补充与指正,谢谢~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值