西南交大操作系统课后习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11. 对读者写者算法进行修改,要求如果读者在读数据 时,有写进程到达,则后续到达的读者不能直接进入, 而在该写者后排队,等写者完成工作后方可进入
西南交通大学 7
2
西南交通大学 6
1
第2章习题(…..续)
10. 一个主修人类学、辅修计算机科学的学生参加了一 个课题,调查非洲狒狒是否能被教会理解死锁。他找到 一处很深的峡谷,在上边固定了一根横跨峡谷的绳索, 这样狒狒就可以攀住绳索越过峡谷。同一时刻可以有几 只狒狒通过,只要它们朝着相同方向。但如果向东和向 西的狒狒同时攀在绳索上则将发生死锁(狒狒将被卡在中 间),因为它们无法在绳索上从另一只的背上翻过去。如 果一只狒狒想越过峡谷,它必须看当前是否有别的狒狒 正在逆向通过。使用信号量写一个避免死锁的程序来解 决该问题。
间22、37和47 时每个进程的状 态。如果一个进
时间18:P7执行对磁盘单元3的写操作 时间20:P3执行对磁盘单元2的读操作 时间24:P5执行对磁盘单元3的写操作 时间28:P5被换出
程在阻塞态,写 时间33:P3读磁盘单元2操作完成,产生中断
出其等待的事件 时间36:P1读磁盘单元3操作完成,产生中断
西南交通大学 4
第2章习题(…续)
7. 有5个批处理任务A到E几乎同时到达一计算中心。其 预计运行时间分别为10,6,2,4和8分钟。其优先级 (由外部设定)分别为3,5,2,1和4,这里5为最高优 先级。对于下列每种调度算法,计算其平均进程周转时 间,进程切换开销可忽略。 (a) 时间片轮转(时间片为2分钟) (b) 优先级调度 (c) 先来先服务 (d) 最短作业优先
第1章习题
1. 设内存中有三道程序A、B、C,它们按A、B、C的优 先次序执行,其计算和I/O操作的时间如下表所示(单位 ms)。假设该三道程序使用相同设备进行计算和I/O操 作,即程序以串行方式使用设备,试画出单道运行和多 道运行的时间关系(调度程序的执行时间忽略不计)。并计 算在两种情况下,完成这三道程序各自要花多少时间?
(设系统中进程 一共5个状态)
时间38:P8结束 时间40:P5写磁盘单元3操作完成,产生中断 时间44:P5被调入
时间48:P7写磁盘单元3操作完成,产生西中南交断通大学 2
第2章习题(.续)
3. 两个进程在一台共享内存的多处理机(即共享同一个 存储器)上运行时,如图所示的采用变量turn的忙等待方 案还奏效吗?
} (1号进程)
西南交通大学 3
第2章习题(..续)
4. 在系统中进程如采用忙等待(一直占用CUP)进行互斥 时,可能引起优先级翻转问题,该问题描述了一个高优先 级进程H和低优先级进程L的情况。它最终导致H陷入死循 环。若采用时间片调度而不是优先级调度,还能发生这种 情况吗?请进行讨论。
5. 有5个待运行任务,各自预计运行时间分别是9,6,3, 5和X。采用哪种运行次序将使平均响应时间最短?请给出 合适的调度次序。(答案依赖于X)
西南交通大学 5
第2章习题(….续)
8. 使一个参数a=1/2的老化算法来预测运行时间。从最 早到最近的前4次执行时间分别为40,20,40和 15ms,则下次运行时间预计为多长?
9. 一个软实时系统有4个周期性事件,其周期分别为 50,100,300和250ms。假设其处理分别需要35, 20,10和x ms,则该系统可调度所允许的x值最大是 多少?
6. 对某系统进行检测后表明平均每个进程在I/O阻塞之前的 运行时间为T。一次进程切换需要的时间为S,这里S实际 上即为开销。对于采用时间片长度为Q的时间片调度法, 对以下各种情况给出CPU利用率的计算公式。
(a) Q=∞; (b) Q>T; (c) S<Q<T; (d) Q=S; (e) Q趋近于0
操作
程序 A
B
C
计算 I/O 计算
30
60
20
40
30
40
10
10
20
西南交通大学 1
第2章习题
1. 目前的计算机上,中断处理程序至少有一小部分用汇
编语言编写,为什么?
2. 假设在时间5时,系统资源只有处理器和内存被使用。
考虑如下表事件: 时间 5:PΒιβλιοθήκη Baidu执行对磁盘单元3的读操作
请分别写出在时 时间15:P5的时间片结束
while(TRUE){ while(turn != 0); /*wait*/ critical_region( ); turn = 1; noncritical_region( );
} (0号进程)
while(TRUE){ while(turn != 1); /*wait*/ critical_region( ); turn = 0; noncritical_region( );
相关文档
最新文档