cztqwan2017-06-19现代操作系统(第三版)习题答案cztqwan2017-06-19(部分内容来源于网络,转载请注明出处)cztqwan2017-06-19目录第一章绪论..................................................................................................................1第二章进程与线程......................................................................................................8第三章存储管理........................................................................................................21第四章文件系统........................................................................................................32第五章输入/输出......................................................................................................42第六章死锁................................................................................................................55第七章多媒体操作系统............................................................................................65第八章多处理机系统................................................................................................76第九章安全................................................................................................................88第十章实例研究1:Linux.....................................................................................100第十一章实例研究2:WindowsVista..................................................................110第十二章实例研究3:Symbian操作系统...........................................................110第十三章操作系统设计..........................................................................................110cztqwan2017-06-19第1页第一章绪论1、什么是多道程序设计?答:多道程序设计技术是指在内存同时放若于道程序,使它们在系统中并发执行,共享系统中的各种资源。当一道程序暂停执行时,CPU立即转去执行另一道程序。2、什么是SPOOLing?读者是否认为将来的高级个人计算机会把SPOOLing作为标准功能?答:(假脱机技术)输入SPOOLing是作业中的读入技术,例如,从卡片在磁盘,这样当当前执行的进程完成时,将等候CPU。输出SPOOLing在打印之前首先复制打印文件,而非直接打印。在个人计算机上的输入SPOOLing很少,但是输出SPOOLing非常普遍。3、在早期计算机中,每个字节的读写直接由CPU处理(即没有DMA),对于多道程序而言这种组织方式有什么含义?答:多道程序的主要原因是当等候I/O完成时CPU有事可做。如果没有DMA。I/O操作时CPU被完全占有,因此,多道程序无利可图(至少在CPU利用方面)。无论程序作多少I/O操作,CPU都是100%的忙碌。当然,这里假定主要的延迟是数据复制时的等待。如果I/O很慢的话,CPU可以做其它工作。4、系列计算机的思想在20世纪60年代由IBM引入进System/360大型机。现在这种思想已经消亡了还是继续活跃着?答:它依然存在。例如,Intel以各种各样的不同的属性包括速度和能力消耗来生产PentiumI,II,III和4。所有这些机器的体系结构都是兼容的,仅仅是价格上的不同,这些都是家族思想的本质。5、缓慢采用GUI的一个原因是支持它的硬件的成本(高昂)。为了支持25行80列字符的单色文本屏幕应该需要多少视颊RAM?对于1024x768像素24位色彩位图需要多少视频RAM?在1980年($5/KB)这些RAM的成本是多少?现在它的成本是多少?答:25*80字符的单色文本屏幕需要2000字节的缓冲器。1024*768像素24位颜色的位图需要2359296字节。1980年这两种选择将分别地耗费$10和$11520。而对于当前的价格,将少于$1/MB。6、在建立一个操作系统时有几个设计目的,例如资源利用、及时性、健壮性等。请列举两个可能互相矛盾的设计目的。答:考虑公平和实时。公平要求每一个进程都以公平的方式分配资源,没有进程能得到超过公平份额的资源。另一方面,实时要求使进程在规定的时间内执行完毕的基础上分配资源。一个实时的进程可能会得到一个不成比例的资源份额。(非cztqwan2017-06-19第2页标准答案)7、下面的哪一条指令只能在内核态中使用?a)禁止所有的中断。b)读日期-时间时钟。c)设晋日期-时间时钟。d)改变存储器映像。答:选择(a)、(c)、(d)应该被限制在内核模式。8、考虑一个有两个CPU的系统,并且每一个CPU有两个线程(超线程)。假设有三个程序P0,P1,P2,分別以运行时间5ms,10ms,20ms开始。运行这些程序需要多少时间?假设这三个程序都是100%限于CPU,在运行时无阻塞,并且一旦设定就不改变CPU。答:这些程序的运行时间因程序的组合的不同而不同,一共有以下4种情况:1)(P0,P1)andP2=(5ms+10ms)and20ms=20ms2)(P0,P2)andP1=(5ms+20ms)and10ms=25ms3)(P1,P2)andP0=(10ms+20ms)and50ms=30ms4)(P0,P1,P2)=(5ms+10ms+20ms)=35ms9、一台计算机有一个四级流水线,每一级都花费相同的时间执行其工作,即1ns。这台机器每秒可执行多少条指令?答:从管道中每纳秒出现一条指令。意味着该机器每秒执行十亿条指令。它对于管道有多少个阶段全然不予理睬,即使是10-阶段管道,每阶段1ns,也将执行对每秒十亿条指令。因为无论那种情况,管道末端输出的指令数都是一样的。10、假设一个计算机系统有高速缓存、内存(RAM)以及磁盘,操作系统用虚拟内存。读取缓存中的一个词需要2ns,RAM需要10ns,磁盘需要10ms。如果缓存的命中率是95%,内存的是(缓存失效时)99%,读取一个词的平均时间是多少?答:平均访问时间=2ns*0.95+10ns*0.99*(1-0.95)+10ms*(1-0.99)*(1-0.95)=5002.395ns11、一位校对人员注意到在一部将要出版的操作系统教科书手稿中有一个多次出现的拼写错误。这本书大致有700页。每页50行,一行80个字符。若把文稿用电子扫描,那么,主副本进入图1-9中的每个存储系统的层次要花费多少时间?对于内存储方式,考虑所给定的存取时间是每次一个字符,对于磁盘设备,假定存取时间是每次一个1024字符的盘块,而对于磁带,假设给定开始时间后的存取时间和磁盘存取时间相同。cztqwan2017-06-19第3页答:原稿包含80*50*700=2800000字符。当然,这不可能放入任何目前的CPU中,但是如果可能的话,在寄存器中只需2.8ms,在Cache中需要5.6ms,在内存中需要28ms,整本书大约有2700个1024字节的数据块,因此从磁盘扫描大约为27秒,从磁带扫描则需2分钟7秒。当然,这些时间仅为读取数据的时间。处理和重写数据将增加时间。12、在用户程序进行一个系统调用,以读写磁盘文件时,该程序提供指示说明了所需要的文件,一个指向数据缓冲区的指针以及计数。然后,控制权转给操作系统,它调用相关的驱动程序。假设驱动程序启动磁盘并且直到中断发生才终止。在从磁盘读的情况下,很明显,调用者会被阻塞(因为文件中没有数据)。在向磁盘写时会发生什么情况?需要把调用者阻塞一直等到磁盘传送完成为止吗?答:也许。如果调用者取回控制,并且在最终发生写操作时立即重写数据,将会写入错误的数据。然而,如果驱动程序在返回之前首先复制将数据复制到一个专用的缓冲器,那么调用者可以立即继续执行。另一个可能性是允许调用者继续,并且在缓冲器可以再用时给它一个信号,但是这需要很高的技巧,而且容易出错。13、什么是陷阱指令?在操作系统中解释它的用途。答:陷阱指令将一个处理器的执行模式从用户模式切换到内核模式。该指令允许用户程序调用操作系统内核中的函数。14、陷阱和中断的主要差别是什么?答:陷阱由程序造成的,并且与它同步。如果程序一而再地被运行,陷阱将总在指令流中相同位置的精确发生。而中断则是由外部事件和其时钟造成的,不具有重复性。15、在分时系统中为什么需要进程表?在只有一个进程存在的个人计算机系统中,该进程控制整个机器直到进程结束,这种机器也需要进程表吗?答:进程表是为了存储当前被挂起、甚或是被延迟和阻塞的进程状态。在单一进程的系统中是不需要,因为单一进程从不挂起。16、说明有没有理由要在一个非空的目录中安装一个文件系统?如果要这样做,如何做?答:装配文件系统将使得装配目录中已有的任何文件都不可访问,因此装配点通常都是空的。然而,系统管理人员可能需要将某些位于被装配目录中的非常重要cztqwan2017-06-19第4页的文件复制到装配点,使得他们在进行设备检查或修理时,可以在紧急事件中的普通路径上找到这些文件。17、在一个操作系统中系统调用的目的是什么?答:系统调用允许用户进程在内核中访问和执行操作系统功能。用户程序使用系统调用操作系统服务。18、对于下列系统调用,给出引起失败的条件:fork、exec以及unlink。答:如果进程表中没有空闲的槽(或者没有内存和交换空间),fork将失败。如果所给的文件名不存在,或者不是一个有效的可执行文件,exec将失败。如果将要解除链接的文件不存在,或者调用unlink的进程没有权限,则unlink将失败。19、在count=write(fd,buffer,nbytes);调用中,能在count中而不是nbytes中返回值吗?如果能,为什么?答:如果fd不正确,调用失败,将返回1。同样,如果磁盘满,调用也失败,要求写入的字节数和实际写入的字节数可能不等。在正确终止时,总是返回nbytes。20、有一个文件,其文件描述符是fd,内含下列字节序列:3,1,4,1,5,9,2,6,5,3,5。有如下系统调用:lseek(fd,3,SEEK_SET);read(fd,&buffer,4);其中lseek调用寻找文件中的字节3。在读操作完成之后,buffer中的内容是什么?答:1,5,9,221、假设一个10MB的文件在磁盘连续扇区的同一个轨道上(轨道号:5