当前位置:文档之家› 操作系统习题解答

操作系统习题解答

练习答案练习11.1-1.10题解见书1.11有一台输入设备和一台输出设备的计算机系统上,运行有两道程序。

两道程序投入运行情况如下:程序1先开始运行,其运行轨迹为:计算50ms、输出100ms、计算50ms、输出100ms,结束;程序2后开始运行,其运行轨迹为:计算50ms、输入100ms、计算100ms、结束。

1. 忽略调度时间,指出两道程序运行时,CPU是否有空闲?在哪部分空闲?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。

练习22.1-2.17题解见书2.18 某系统中进程状态变化如图2.22所示,当对系统中的进程进行观察时,发现某一进程产生的一次状态变化会引起另一进程发生状态变化。

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

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

(3)不可能,可能。

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

解答程序:S1:a:=x+1S2:b:=a+2S3:c:=a+3S4:d:=b+4S5:e:=b+cS6:f:=e+5S7:g=e+6程序:S1:a:=x+1S2:b:=a+2S3:c:=a+3S4:d:=b+4S5:e:=b+cS6:f:=d+e S1S2S3 S4S5 S6 S7 S1S2S3 S4S5 S6S7S7:g:=c+e2.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 如果线程是在用户空间线程库中实现,解释为什么当进程中的一个线程阻塞时,进程内的所有其它线程都会阻塞?如果线程是在内核空间中实现,而进程内的一个线程阻塞不会引起进程内的其他线程被阻塞,为什么?解答:用户级线程由用户空间运行的用户级线程库实现。

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

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

练习33.1-3.12题解见书3.13证明作业调度算法中短作业优先调度算法具有最小平均等待时间。

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

由于短作业有限调度算法总是选择最短的作业先调度,故这些作业总的等待时间为:T1=0 + t0 + (t0 + t1)+(t0 + t1 + t2 ) + … + (t0 + t1 + t2 + … + tn-2)=( N - 1) t0 + ( N - 2) t1 + ( N - 3) t2 + … + tn-2 (1)如果不按照短作业优先调度算法,可设调度顺序为:N1,N0,N2,…,Nn-1,故这些作业总的等待时间为:T2= 0 + t1 +(t0 + t1)+(t0 + t1 + t2 ) + … + (t0 + t1 + t2 + … + tn-2)=( N - 2) t0 + ( N - 1) t1 + ( N - 3) t2 + … + tn-2 (2)(2)-(1)得:T2 – T1 = t1 – t0 >0说明任何一种作业调度顺序的作业的平均等待时间都大于按照短作业优先的作业的平均等待时间。

3.14 假设在一个处理器上执行5个作业,作业到达的次序和需要执行的时间分别为:J0(75ms)、J1(15ms)、J2(5ms)、J3(15ms)、J4(45ms),假定系统中使用FCFS调度算法,作业J3的周转时间是多少?作业的平均等待时间是多少?答:周转时间(ms) 等待时间(ms)J0 75 0J1 90 75J2 95 90J3 110 95J4 155 110平均等待时间(ms)743.15在单道批处理系统中,三个作业的提交时间分别为:10:00、10:10、10:20,需要执行时间分别为:2小时、1小时、0.5小时,分别按照短作业优先调度算法和高响应比优先调度算法进行调度,比较哪一种调度算法更好?解:(1)不抢占:执行顺序为A,C,B平均周转时间:(120+130+200)/3=150(min)平均带劝周转时间:(120/120+130/30+200/60)/3 =26/9抢占:A(10:10),B(10:20),C(10:50),B(11:40),A(13:30)平均周转时间:(210+90+30)/3=110(min)平均带劝周转时间:(210/120+90/60+30/30)/3 =510/360=17/12(2)响应比高者优先调度算法不会抢占,因此,只存在这样一种情况:执行顺序为A,C,B平均周转时间:(120+130+200)/3=150(min)平均带劝周转时间:(120/120+130/30+200/60)/3 =26/9所以,如果要比较哪一种算法好自然针对不抢占的情况。

根据比较结果,它们的平均周转时间和平均带权周转相同,这主要是该应用正好发生了这样凑巧的情况。

3.16假设在具有一个处理器的系统上执行下面的作业,假如采用抢占式短作业优先调度算法,作业需要处理时间T和到达时间A分别如下:那么:I T 到达时间A0 50 01 35 102 20 103 25 554 40 95作业1的周转时间是多少?作业的平均等待时间是多少?答:1。

执行顺序为:0(10),2(30),1(65),3(90),0(130),4(170)作业0的周转时间为:130,作业1的周转时间为:55,作业2的周转时间为:20,作业3的周转时间为:35作业4的周转时间为:65平均周转时间=305/5=61作业0的等待时间为:130-50=80,作业1的等待时间为:55-35=20,作业2的等待时间为:10-10=0,作业3的等待时间为:,35-25=10作业4的等待时间为:,65-40=253.17假如在具有一个处理器系统中,采用优先级高者优先的进程调度算法,优先数小代表优先级高,进程达到顺序I和需要处理时间T、优先数分别如下:I T 优先级0 75 31 15 12 5 43 15 54 45 2(1)没有优先级抢占情况下,写出进程的执行先后序列,进程2的周转时间是多少?进程的平均等待时间是多少?(3)有优先级抢占情况下,写出进程的执行先后序列,进程2的周转时间是多少?进程的平均等待时间是多少?答:(1)无抢占:执行顺序为:1(15),4(60),0(135),2(140),3(155)进程0的周转时间为:135进程1的周转时间为:15进程2的周转时间为:140进程3的周转时间为:155进程4的周转时间为:60进程的平均等待时间=((135-75)+(15-15)+(140-5)+(155-15)+(60-45))/5 = 70(2)有抢占:优先级抢占同上一样。

相关主题