操作系统教程-孙钟秀(第四版)课后习题答案(共123页).docx
《操作系统教程-孙钟秀(第四版)课后习题答案(共123页).docx》由会员分享,可在线阅读,更多相关《操作系统教程-孙钟秀(第四版)课后习题答案(共123页).docx(123页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一章作者:佚名 来源:网络1、有一台计算机,具有IMB 内存,操作系统占用200KB ,每个用户进程各占200KB 。如果用户进程等待I/O 的时间为80 % ,若增加1MB 内存,则CPU 的利用率提高多少?答:设每个进程等待I/O 的百分比为P ,则n 个进程同时等待刀O 的概率是Pn ,当n 个进程同时等待I/O 期间CPU 是空闲的,故CPU 的利用率为1-Pn。由题意可知,除去操作系统,内存还能容纳4 个用户进程,由于每个用户进程等待I/O的时间为80 % , 故:CPU利用率l-(80%)4 = 0.59 若再增加1MB 内存,系统中可同时运行9 个用户
2、进程,此时:cPu 利用率l-(1-80%)9 = 0.87 故增加IMB 内存使CPU 的利用率提高了47 % : 87 /59 =147 % 147 -100 % = 47 % 2 一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A 先开始做,程序B 后开始运行。程序A 的运行轨迹为:计算50ms 、打印100ms 、再计算50ms 、打印100ms ,结束。程序B 的运行轨迹为:计算50ms 、输入80ms 、再计算100ms ,结束。试说明(1 )两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?( 2 )程序A 、B 有无等待CPU 的情
3、况?若有,指出发生等待的时刻。答:画出两道程序并发执行图如下:(1)两道程序运行期间,CPU存在空闲等待,时间为100 至150ms 之间(见图中有色部分)(2)程序A 无等待现象,但程序B 有等待。程序B 有等待时间段为180rns 至200ms 间(见图中有色部分)3 设有三道程序,按A 、B 、C优先次序运行,其内部计算和UO操作时间由图给出。 试画出按多道运行的时间关系图(忽略调度执行时间)。完成三道程序共花多少时间?比单道运行节省了多少时间?若处理器调度程序每次进行程序转换化时lms , 试画出各程序状态转换的时间关系图。答:1 )忽略调度执行时间,多道运行方式(抢占式):?抢占式共
4、用去190ms ,单道完成需要260ms ,节省70ms 。忽略调度执行时间,多道运行方式(非抢占式): 非抢占式共用去180ms ,单道完成需要260ms ,节省80ms 。2 )调度执行时间1ms , 多道运行方式(抢占式): 调度执行时间ITns ,多道运行方式(非抢占式): 4在单CPU 和两台 I/O( I1 , 12 )设备的多道程序设计环境下,同时投入三个作业运行。它们的执行轨迹如下:Jobl : I2 ( 30ms )、CPU ( 10ms )、I1 ( 30ms )、CPU ( 10ms )、I2 ( 20ms ) Job2 : I1 ( 20ms )、CPU ( 20ms
5、)、I2 ( 40 ms ) JOb3 : CPU ( 30ms )、I1 ( 20ms )、CPU ( 10ms )、I1 ( 10ms ) 如果CPU 、I1 和I2 都能并行工作,优先级从高到低为Jobl 、Job2 和Job3 ,优先级高的作业可以抢占优先级低的作业的CPU ,但不抢占I1和I2 。试求:( l )每个作业从投入到完成分别所需的时间。(2 )从投入到完成CPU 的利用率。(3 )I2设备利用率。答:画出三个作业并行工作图如下(图中着色部分为作业等待时间): ,( 1 ) Job1 从投入到运行完成需110ms , Job2 从投入到运行完成需90ms , Job3 从投
6、入到运行完成需110ms. CPU 空闲时间段为:60ms 至70ms , 80ms 至90ms , 100ms 至110ms 。所以CPU 利用率为(110-30)/10 = 72.7 。设备I1 空闲时间段为:20ms 至40ms , 90ms 至100ms,故I1的利用率为 (110-30)/l10 = 72 . 7 。 设备I2 空闲时间段为:30ms 至50ms,故I2的利用率为(110-20) / 110 = 81.8 。 5 在单CPU 和两台I/O( I1 , 12 )设备的多道程序设计环境下,同时投入三个作业运行。它们的执行轨迹如下:Jobl : I2 ( 30ms )、CP
7、U ( 10rns )、I1 ( 30ms )、CPU ( 10ms ) Job2 : I1 ( 20ms )、CPU ( 20ms )、I2 ( 40ms ) Job3 : CPU ( 30ms )、I1 ( 20ms ) 如果CPU 、I1和I2 都能并行工作,优先级从高到低为Job1 、Job2和Job3 ,优先级高的作业可以抢占优先级低的作业的CPU 。 试求:( l )每个作业从投入到完成分别所需的时间 ( 2 )每个作业投入到完成CPU 的利用率。 (3 )I/0设备利用率。 答:画出三个作业并行工作图如下(图中着色部分为作业等待时间): ( 1 ) Job1从投入到运行完成需80
8、ms , Job2 从投入到运行完成需90ms , Job3 从投入到运行完成需90ms 。( 2 ) CPU 空闲时间段为:60ms 至70ms , 80ms 至90ms 。所以CPU利用率为( 90-20 ) / 90 = 77.78 。( 3 )设备I1 空闲时间段为:20ms 至40ms ,故I1 的利用率为(90-20 ) / 90 = 77 . 78 。设备I2 空闲时间段为:30ms 至50ms ,故I2 的利用率为(90-20 ) / 90=77.78 。6 若内存中有3 道程序A 、B 、C ,它们按A 、B 、C 优先次序运行。各程序的计算轨迹为:A :计算(20 )、I/
9、O( 30 )、计算(10 ) B :计算(40 )、I/O( 20 )、计算(10 ) c :计算(10 )、I/O ( 30 )、计算(20 ) 如果三道程序都使用相同设备进行I/O(即程序用串行方式使用设备,调度开销忽略不计)。试分别画出单道和多道运行的时间关系图。两种情况下,CPU 的平均利用率各为多少?答:分别画出单道和多道运行的时间图( 1 )单道运行时间关系图 单道总运行时间为190ms 。CPU 利用率为(190-80 )/190 = 57.9 % 单道运行时间关系图 多道总运行时间为140ms 。CPU 利用率为(140-30 ) / 140 = 78.6 % 7 若内存中有
10、3 道程序A 、B 、C ,优先级从高到低为A 、B 和C ,它们单独运行时的CPU 和I/O 占用时间为:如果三道程序同时并发执行,调度开销忽略不计,但优先级高的程序可中断优先级低的程序,优先级与I/O 设备无关。试画出多道运行的时间关系图,并问最早与最迟结束的程序是哪个?每道程序执行到结束分别用了多少时间?计算三个程序全部运算结束时的CPU 利用率?答:画出三个作业并发执行的时间图: ( l )最早结束的程序为B ,最后结束的程序为C 。 ( 2 )程序A 为250ms 。程序B 为220ms 。程序C 为310ms 。 ( 3 ) CPU 利用率为(310 -120 ) / 310 =
11、61.3 % 有两个程序,A 程序按顺序使用:( CPU)10 秒、(设备甲)5 秒、(CPU)5 秒、(设备乙)10 秒、(CPU)10 秒。B程序按顺序使用:(设备甲)10 秒、(CPU)10 秒、(设备乙)5 秒、( CPU)5 秒、(设备乙)10 秒。在顺序环境下先执行A ,再执行B ,求出总的CPU 利用率为多少?答:程序A 执行了40 秒,其中CPU 用了25 秒。程序B 执行了40 秒,其中CPU 用了15 秒。两个程序共用了80 秒,CPU 化 40 秒。故CPU 利用率为40/80 =50 。9、在某计算机系统中,时钟中断处理程序每次执行的时间为2ms (包括进程切换开销)。
12、若时钟中断频率为60HZ ,试问CPU用于时钟中断处理的时间比率为多少?答:因时钟中断频率为60HZ ,所以,时钟周期为:l / 60s = 50/3ms 。在每个时钟周期中,CPU 花2ms 执行中断任务。所以,CPU 用于时钟中断处理的时间比率为:2(50/3)=6/50 = 12。第二章作者:佚名 来源:网络1.下列指令中哪些只能在核心态运行?(l)读时钟日期;(2)访管指令;(3)设时钟日期;(4)加载PSW; (5)置特殊寄存器:(6)改变存储器映象图;(7)启动I/O指令。答:( 3 ) , ( 4 ) , ( 5 ) , ( 6 ) , ( 7 ) .2 假设有一种低级调度算法是
13、让“最近使用处理器较少的进程”运行,试解释这种算法对“I/O 繁重”型作业有利,但并不是永远不受理“处理器繁重”型作业。答:因为I/O繁忙型作业忙于I/O,所以它CPU 用得少,按调度策略能优先执行。同样原因一个进程等待CPU 足够久时,由于它是“最近使用处理器较少的进程”,就能被优先调度,故不会饥饿。3 并发进程之间有什么样的相互制约关系?下列日常生活中的活动是属哪种制约关系:(1)踢足球,(2)吃自助餐,(3)图书馆借书,(4)电视机生产流水线工序。答:并发进程之间的基本相互制约关系有互斥和同步两种。其中(1)、(3)为互斥问题(2)、(4)为同步问题。4 在按动态优先数调度进程的系统中,
14、每个进程的优先数需定时重新计算。在处理器不断地在进程之间交替的情况下,重新计算进程优先数的时间从何而来?答:许多操作系统重新计算进程的优先数在时钟中断处理例程中进行,由于中断是随机碰到哪个进程,就插入哪个进程中运行处理程序,并把处理时间记在这个进程的账上。5 若后备作业队列中等待运行的同时有三个作业J1 、J2、J3 ,已知它们各自的运行时间为a 、b 、c,且满足a 0 可见,采用短作业优先算法调度才能获得最小平均作业周转时间。 6、若有一组作业J1 , ,Jn ,其执行时间依次为S1 , , Sn 。如果这些作业同时到试找出一种作业调度算法到达系统,并在一台单CPU 处理器上按单道方式执行
15、。使得平均作业周转时间最短。答:首先,对n 个作业按执行时间从小到大重新进行排序,则对n 个作业:J1 , ,Jn , 创门的运行时间满足:S1S2 S (n-l ) Sn 。那么有:由于任何调度方式下,S1 + S2 + S3Sn为一个确定的数,而当S1 S2 S( n - 1 ) Sn 时才有:0*S1+1*S2+2*S3+(n-1)Sn的值最大,也就是说,此时T 值最小。所以,按短作业优先调度算法调度时,使得平均作业周转时间最短。7、 假定执行表中所列作业,作业号即为到达顺序,依次在时刻0 按次序1 、2 、3 、4 、5 进入单处理器系统。(1)分别用先来先服务调度算法、时间片轮转算法
16、、短作业优先算法及非强占优先权调度算法算出各作业的执行先后次序(注意优先权高的数值小); (2)计算每种情况下作业的平均周转时间和平均带权周转时间。 ( 1 )采用FCFS 算法调度作业,运作情况: ( 2 )采用双算法调度作业,若令时间片长l ,各作业执行情况为:1 、2 、3 、4 、5 、l 、3 、5 、1 、5 、1 、5 、1 、5 、1 、l 、l 、1 、1 。 ( 3 )采用SJF 算法调度作业,运作情况: ( 4 )采用非剥夺优先权算法调度作业,运作情况:8 对某系统进行监测后表明平均每个进程在I/O 阻塞之前的运行时间为T 。一次进程切换的系统开销时间为S 。若采用时间片
17、长度为Q 的时间片轮转法,对下列各种情况算出CPU 利用率。9 有5 个待运行的作业,各自预计运行时间分别是:9 、6 、3 、5 和x ,采用哪种运行次序使得平均响应时间最短?答:按照最短作业优先的算法可以使平均响应时间最短。x 取值不定,按照以下情况讨论:10.有5 个批处理作业A 到E 均己到达计算中心,其运行时间分别2 、4 、6 、8 和10 分钟:各自的优先级分跳狠掀完为、飞、飞、氏积5 、这里5 为最高级。对于1) 时间片轮转算法、2)优先数法、3)短作业优先算法、4)先来先服务调度算法(按到达次序C 、D 、B 、E 、A) ,在忽略进程切换时间的前提下,计算出平均作业周转时间
18、。(对l)每个作业获得相同的2 分钟长的时间片;对2)到4)采用单道运行,直到结束。)答:( l ) FCFS 调度算法 ( 2 )优先级调度算法( 3 )时间片轮转法按次序ABCDEBCDECDEDEE 轮转执行。( 4 ) SJF调度算法 11、 有5 个批处理作业A 到E 均已到达计算中心,其运行时间分别10 、6 、2 、4 和8 分钟;各自的优先级分别被规定为3 、5 、2 、1 和4 ,这里5 为最高级。若不考虑系统切换开销,计算出平均作业周转时间。(1) FCFs (按A 、B 、C 、D 、E ) ; (2) 优先级调度算法,(3)时间片轮转法(每个作业获得相同的2 分钟长的时
19、间片)。答:( 1 ) FCFS 调度算法 ( 2 )优先级调度算法( 3 )时间片轮转法 按次序ABCDEABDEABEAEA 轮转执行。 作业 执行时间 等待时间 周转时间 带权周转时间 ABCDE 10 6 2 48 20l64 l220 302261628 33 .6634 3. 5 作业平均周转时间作业平均带权周转时间 T = ( 30 + 22 + 6 + 16 + 28 ) / 5 = 20.4W = ( 3 + 3.66 + 3 +4 + 3.5 ) / 5 = 3.43 12 (l)假定一个处理器正在执行两道作业,一道以计算为主,另一道以输入输出为主,你将怎样赋予它们占有处理
20、器的优先级?为什么?(2)假定一个处理器正在执行三道作业,一道以计算为主,第二道以输入输出为主,第三道为计算与输入输出均匀。应该如何赋予它们占有处理器的优先级使得系统效率较高?答:处理器调度算法会考虑以下因素:作业响应时间要求;让CPU 尽量和外围设备并行工作;限制一个计算进程长时间霸占处理器。因而,( 1 ) FO 为主作业优先级高。(2 ) 输入输出为主作业优先级最高,输入输出均匀的作业其次,而计算为主作业的优先级最低。 13 请你设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换,则CPU 需要哪些信息?请描述用硬件完成进程切换的工作过程。 答:该计算机有一个专用硬件寄存器
21、,它始终存放指向当前运行进程的PCB 的指针。当系统中发生了一个事件,如FO 结束事件,CPU 便可把运行进程的上下文保存到专用硬件寄存器指针指向的PCB 中保护起来,然后,CPU 转向中断向量表,找到设备中断处理程序入口,让专用硬件寄存器指针指向(设备)中断服务例程,于是,便可启动中断服务例程工作。 14 设计一条机器指令和一种与信号量机制不同的算法,使得并发进程对共享变量的使用不会出现与时间有关的错误。解:( l )设计机器指令。设计一条如下的”测试、比较和交换”三地址指令,提供了一种硬件互斥解决方案: TC&S R1R3B2D2该指令的功能如下:l ) C 为一个共享变量,由地址2 、即
22、变址(B2 ) + D2 给出, (2 )(Rl )与(C )比较, (3 )如果(Rl ) = ( C )则(R3)C ,并置条件码为00 , 如果(R1 )(c )则(C )Rl ,并置条件码为01 . ( 2 )编写进程访问共享变量的程序。对每个访问共享变量C 的进程,编写访问共享变量的程序段为: 陆界区程序 说明 ( C )Rl ;loop2 : ( R1 ) R3 ; Add /decrease R3 ;TC & S ;R( condition = 01 ) loop2 ; 共享变量C 的值保护到RI 中。 Rl 的值传送到R3 中,进程修改共享变量时,先对R3 操作(不是直接操作C
23、 )。 R3 加1 减1 ,进程归还申请由共享变量C 代表的共享资源(假定每次一个)。 执行”测试、比较和交换”指令。 条件码01 ,转向循环loop2 ;否则离开临界区。 ( 3 )程序执行说明。此解与互斥使用共享变量的思路绝然不同,并发运行的进程可不互斥地访问它们的共享变量。此方案认为造成共享变量C 值错误的原因在于:一个进程(Pl )在改变C 值的过程中,另一个进程伊2 )插进来也改变了C 的值,而本进程(Pl)却不知道,造成了c 值结果不正确。如果有办法使本进程口1 )能知道C 值是否改变,改变的话在继承改变了的C 值的基础上,再作自己的改变操作,则就不会导致共享变量C 值的错误。为此
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 教程 孙钟秀 第四 课后 习题 答案 123
限制150内