好文档 - 专业文书写作范文服务资料分享网站

操作系统课后习题1-9答案

天下 分享 时间: 加入收藏 我要投稿 点赞

练习1 1.1-1.10题解见书

1.11 有一台输入设备和一台输出设备的计算机系统上,运行有两道程序。两道程序投入运行情况如下: 程序1先开始运行,其运行轨迹为:计算50ms、输出100ms、计算50ms、输出100ms,结束;

程序2后开始运行,其运行轨迹为:计算50ms、输入100ms、计算100ms、结束。

1. 忽略调度时间,指出两道程序运行时,CPU是否有空闲?在哪部分空闲?指出程序1和程序

2. 有无等待CPU的情况?如果有,发生在哪部分? 题解:

由题画出CPU利用图如下:

由图可知,1.CPU有空闲,在100ms~150ms时间段是空闲的。 2.程序1无等待时间,而程序2在一开始的0ms~50ms时间段会等待。

1.12 在计算机系统上运行三道程序,运行次序为程序1、程序2、程序3。 程序1的运行轨迹为:计算20ms、输入40ms、计算10ms。 程序2的运行轨迹为:计算40ms、输入30ms、计算10ms。 程序3的运行轨迹为:计算60ms、输入30ms、计算20ms。 忽略调度时间,画出三道程序运行的时间关系图;完成三道程序共花多少时间?与单道程序比较,节省了多少时间?

解答:三道程序运行,完成三道程序共花170ms。与单道程序(260ms)比较,节省了90ms。

(始终按照1-2-3的次序,即程序1→程序2→程序3→程序1→程序2→(在程序3运行前会停10ms等待输入完成)程序3。

(如果不是按照程序1、2、3的次序完成则会有多种情况。)

1.13 在计算机系统上有两台输入/输出设备,运行两道程序。

程序1的运行轨迹为:计算10ms、输入5ms、计算5ms、输出10ms、计算10ms。

程序2的运行轨迹为:输入10ms、计算10ms、输出5ms、计算5ms、输出10ms。

在顺序环境下,先执行程序1,再执行程序2,求总的CPU利用率为多少?

题解:由题画出CPU利用图如下:

由图可知,在总共80ms的时间里,CPU空闲时间为40ms,即: CPU利用率=40ms/80ms*100%=50%

1.14 一个计算机系统有足够的内存空间存放3道程序,这些程序有一半的时间在空闲等待I/O操作。问多大比例的CPU时间被浪费掉了。 题解:由题画图如下:

因为每个程序有一半的时间在等待I/O操作,所以在并发状态下,程序1、程序2、程序3所占时间比依次减半(如上图),所以浪费的时间比例为1/8。

练习2

2.18 某系统中进程状态变化如图2.22所示,当对系统中的进程进行观察时,发现某一进程产生的一次状态变化会引起另一进程发生状态变化。

(1)在什么情况下,一个进程的状态变化3能够立即引起另一进程的状态变化1?

(2)在什么情况下,一个进程的状态变化2能够立即引起另一进程的状态变化1? (3)进程的状态变化3是否可能引起另一进程的状态变化2?进程的状态变化3是否可能引起另一进程的状态变化1?

解答:

(1)当就绪队列中还存在其它进程的情况下,一个进程的状态变化3能够立即引起另一进程的状态变化2。

(2)当就绪队列中还存在其它进程的情况下,一个进程从运行状态变化到就绪状态后,另一个就绪进程能够从就绪状态变为运行状态。 (3)不可能,可能。

2.19分别写出相应的程序来描述图2.23中的前趋图。 解答

S4 S2 S6 S1 S5 S3 S7

程序:S1:a:=x+1 S2:b:=a+2 S3:c:=a+3 S4:d:=b+4 S5:e:=b+c S6:f:=e+5 S7:g=e+6

S4 S2 S6 S1 S5 S3 S7

程序:S1:a:=x+1 S2:b:=a+2 S3:c:=a+3 S4:d:=b+4 S5:e:=b+c S6:f:=d+e S7:g:=c+e

2.20 假设在一个系统中,新进程以每分钟8个进程的速率到达,每个进程请

求服务的平均时间为6s,估计在一个单处理器系统中CPU忙的时间比率。 如果新进程以每分钟10个进程的速率到达,每个进程请求服务的平均时间也为6s,估计在一个单处理器系统中CPU忙的时间比率。 如果新进程创建以每分钟超过10个进程的速率到达,每个进程请求服务的平均时间为6s,估计在一个单处理器系统中CPU忙得时间比率,并解释此时的情况。 解答:

因为新进程每分钟8个进程的速率到达,每个进程之间达到的时间间隔为7.5s。由于每个进程占用6s的CPU时间。所以,1分钟之内CPU的空间时间为8*1.5s=12s。CPU的利用率为48/60=0.8,即80%。

因为新进程每分钟10个进程的速率到达,每个进程之间达到的时间间隔为6s。由于每个进程占用6s的CPU时间。所以,1分钟之内CPU的空间时间为0s。CPU的利用率为100%。

如果新进程创建以每分钟超过10个进程的速率到达,每个进程请求服务的平均时间为6s,则请求服务时间会大于1分钟,CPU一直会处于繁忙,所以 CPU忙的时间比率同样为100%。

2.21 一个系统中有4个进程,进程P1要求20s后运行,经过40s后再次运行;进程P2要求25s后运行;进程P3要求35s后运行,经过35s后再次运行;进程P4要求60s后运行。进程在阻塞队列等待被唤醒后运行,试创建进程的唤醒队列。

解答:进程的唤醒队列为P1→P2→P3→P4→P1→P3 注意:“经过40s后再次运行”表示第1次运行完成后再过40s。

2.22 如果线程是在用户空间线程库中实现,解释为什么当进程中的一个线程阻塞时,进程内的所有其它线程都会阻塞?如果线程是在内核空间中实现,而进程内的一个线程阻塞不会引起进程内的其他线程被阻塞,为什么? 解答:

用户级线程由用户空间运行的用户级线程库实现。当一个应用程序提交给操作系统后,操作系统首先为该应用程序建立一个内核管理进程,然后用户级线程库为该进程创建一个或多个用户级线程,但内核并不知道用户空间线程的活动,内核只是以进程为单位,实现进程状态的转换,因此当进程中的一个线程阻塞时,进程内的所有其它线程都会阻塞。

如果线程是在内核空间中实现的,这些内核级线程都由内核创建和控制管理,内核为整个进程及进程中的所有线程维护现场信息,内核的调度是在线程的基础上进行的,因而进程的一个线程阻塞不会引起进程内的其他线程被阻塞。

练习3

3.13 证明作业调度算法中短作业优先调度算法具有最小平均等待时间。

证明:假设在作业队列中等待运行的作业有N道,分别为N0,N1,N2,?,Nn-1,它们的运行时间分别为t0,t1,?,tn-1,且满足t0

由于短作业有限调度算法总是选择最短的作业先调度,故这些作业总的等待时间为:

T1=0 + t0 + (t0 + t1)+(t0 + t1 + t2 ) + ? + (t0 + t1 + t2 + ? +

操作系统课后习题1-9答案

练习11.1-1.10题解见书1.11有一台输入设备和一台输出设备的计算机系统上,运行有两道程序。两道程序投入运行情况如下:程序1先开始运行,其运行轨迹为:计算50ms、输出100ms、计算50ms、输出100ms,结束;程序2后开始运行,其运行轨迹为:计算50ms、输入1
推荐度:
点击下载文档文档为doc格式
7qjqr6qd3q1xkfw968ko77t6k14pg601b4z
领取福利

微信扫码领取福利

微信扫码分享