文档视界 最新最全的文档下载
当前位置:文档视界 › 现代操作系统(中文第三版)习题答案

现代操作系统(中文第三版)习题答案

现代操作系统(中文第三版)习题答案
现代操作系统(中文第三版)习题答案

现代操作系统(第三版)习题答案

cztqwan

2017-06-19

(部分内容来源于网络,转载请注明出处)

目录

第一章绪论 (1)

第二章进程与线程 (8)

第三章存储管理 (21)

第四章文件系统 (32)

第五章输入/输出 (42)

第六章死锁 (55)

第七章多媒体操作系统 (65)

第八章多处理机系统 (76)

第九章安全 (88)

第十章实例研究1:Linux (100)

第十一章实例研究2:Windows Vista (110)

第十二章实例研究3:Symbian操作系统 (110)

第十三章操作系统设计 (110)

第一章绪论

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以各种各样的不同的属性包括速度和能力消耗来生产Pentium I,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、在建立一个操作系统时有几个设计目的,例如资源利用、及时性、健壮性等。请列举两个可能互相矛盾的设计目的。

答:考虑公平和实时。公平要求每一个进程都以公平的方式分配资源,没有进程能得到超过公平份额的资源。另一方面,实时要求使进程在规定的时间内执行完毕的基础上分配资源。一个实时的进程可能会得到一个不成比例的资源份额。(非

标准答案)

7、下面的哪一条指令只能在内核态中使用?

a)禁止所有的中断。

b)读日期-时间时钟。

c)设晋日期-时间时钟。

d)改变存储器映像。

答:选择(a)、(c)、(d)应该被限制在内核模式。

8、考虑一个有两个CPU的系统,并且每一个CPU有两个线程(超线程)。假设有三个程序P0,P1,P2,分別以运行时间5ms,10ms,20ms开始。运行这些程序需要多少时间?假设这三个程序都是100% 限于CPU,在运行时无阻塞,并且一旦设定就不改变CPU。

答:这些程序的运行时间因程序的组合的不同而不同,一共有以下4种情况:1)(P0,P1) and P2 => (5ms + 10ms) and 20ms => 20ms

2)(P0,P2) and P1 => (5ms + 20ms) and 10ms => 25ms

3)(P1,P2) and P0 => (10ms + 20ms) and 50ms => 30ms

4)(P0,P1,P2) => (5ms + 10ms + 20ms) => 35ms

9、一台计算机有一个四级流水线,每一级都花费相同的时间执行其工作,即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.395ns

11、一位校对人员注意到在一部将要出版的操作系统教科书手稿中有一个多次出现的拼写错误。这本书大致有700页。每页50行,一行80个字符。若把文稿用电子扫描,那么,主副本进入图1-9中的每个存储系统的层次要花费多少时间?对于内存储方式,考虑所给定的存取时间是每次一个字符,对于磁盘设备,假定存取时间是每次一个1024字符的盘块,而对于磁带,假设给定开始时间后的存取时间和磁盘存取时间相同。

答:原稿包含80*50*700 = 2800000字符。当然,这不可能放入任何目前的CPU 中,但是如果可能的话,在寄存器中只需2.8ms,在Cache中需要5.6ms,在内存中需要28ms,整本书大约有2700个1024字节的数据块,因此从磁盘扫描大约为27秒,从磁带扫描则需2分钟7秒。当然,这些时间仅为读取数据的时间。处理和重写数据将增加时间。

12、在用户程序进行一个系统调用,以读写磁盘文件时,该程序提供指示说明了所需要的文件,一个指向数据缓冲区的指针以及计数。然后,控制权转给操作系统,它调用相关的驱动程序。假设驱动程序启动磁盘并且直到中断发生才终止。在从磁盘读的情况下,很明显,调用者会被阻塞(因为文件中没有数据)。在向磁盘写时会发生什么情况?需要把调用者阻塞一直等到磁盘传送完成为止吗?答:也许。如果调用者取回控制,并且在最终发生写操作时立即重写数据,将会写入错误的数据。然而,如果驱动程序在返回之前首先复制将数据复制到一个专用的缓冲器,那么调用者可以立即继续执行。另一个可能性是允许调用者继续,并且在缓冲器可以再用时给它一个信号,但是这需要很高的技巧,而且容易出错。

13、什么是陷阱指令?在操作系统中解释它的用途。

答:陷阱指令将一个处理器的执行模式从用户模式切换到内核模式。该指令允许用户程序调用操作系统内核中的函数。

14、陷阱和中断的主要差别是什么?

答:陷阱由程序造成的,并且与它同步。如果程序一而再地被运行,陷阱将总在指令流中相同位置的精确发生。而中断则是由外部事件和其时钟造成的,不具有重复性。

15、在分时系统中为什么需要进程表?在只有一个进程存在的个人计算机系统中,该进程控制整个机器直到进程结束,这种机器也需要进程表吗?

答:进程表是为了存储当前被挂起、甚或是被延迟和阻塞的进程状态。在单一进程的系统中是不需要,因为单一进程从不挂起。

16、说明有没有理由要在一个非空的目录中安装一个文件系统?如果要这样做,如何做?

答:装配文件系统将使得装配目录中已有的任何文件都不可访问,因此装配点通常都是空的。然而,系统管理人员可能需要将某些位于被装配目录中的非常重要

的文件复制到装配点,使得他们在进行设备检查或修理时,可以在紧急事件中的普通路径上找到这些文件。

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, 2

21、假设一个10MB的文件在磁盘连续扇区的同一个轨道上(轨道号:50)。磁盘的磁头臂此时位于第100号轨道。要想从磁盘上找回这个文件,需要多长时间?假设磁头臂从一个柱面移动到下一个柱面需要1ms,当文件的开始部分存储在的扇区旋转到磁头下需要5ms,并且读的速率是100MB/s。

答:找到文件需要的时间=1 * 50 ms (移动到50轨道号的时间)

+ 5 ms (旋转到文件开始部分存储在的扇区的时间)

+ 10/100 * 1000 ms (读取10MB的时间)

= 155 ms

22、块特殊文件和字符特殊文件的基本差别是什么?

答:块特殊文件包含被编号的块,每一块都可以独立地读取或者写入。而且可以定位于任何块,并且开始读出或写入。这些对于字符特殊文件是不可能的。

23、在图1-7的例子中库调用称为read,而系统调用自身称为read,这两者都有相问的名字是正常的吗?如果不是,哪一个更重要?

答:系统调用实际上并没有名称,除了在文件中这样描述之外。当库例程read 陷入内核时,它将系统调用号码放入寄存器或者堆栈中。该号码通常用于一张表的索引。这里确实没有使用任何名称。而另一方面,库例程的名称是十分重要的,因为它将用于程序中。

24、在分布式系统中,客户机-服务器模式很普遍。这种模式能用在单个计算机的系统中吗?

答:是的,尤其当系统内核是消息传递系统时。

25、对程序员而言,系统调用就像对其他库过程的调用一样。有无必要让程序员了解哪一个库过程导致了系统调用?在什么情形下,为什么?

答:就程序逻辑而言,库例程调用哪个系统调用是没有关系的。但是,如果需要考虑性能问题,无需系统调用就可以完成的任务将使程序运行更快。所有的系统调用都会导致用户环境和内核环境的切换开销。更进一步,在多用户系统中,在系统调用完成之前,操作系统可能调度到其他的进程,这将使得调用过程的处理更加迟缓。

26、图1-23说明有一批UNIX的系统调用没有与之相等价的Win32 API,对于所列出的每一个没有Win32等价的调用,若程序员要把一个UNIX程序转换到Windows下运行,会有什么后果?

答:某些UNIX调用没有相应的Win32 API:

Link: Win32程序不能给文件另外一个名称,或者使某个文件出现在多个目录中。同时,试图创建链接可以便于测试,并且在文件上加锁。

Mount和umount: Wmdows程序不能创建关于标准的路径的假定命名,因为具有多个磁盘驱动器的系统上路径名,其驱动器部分是不同的。

Chmod: Windows程序员不得不假定所有的用户都能访问每个文件。

Kill: Windows程序员不能kill行为失常的程序。

27、可移植的操作系统是能从一个系统体系结构到另一个体系结构的移动不需要任何修改的操作系统。请解释为什么建立一个完全可移植性的操作系统是不可行的。描述一下在设计一个高度可移植的操作系统时你设计的高级的两层是什么样的。

答:每一个系统体系结构都有它自己可以执行的一套指令。因此,奔腾不能执行SPARC程序或者SPARC无法执行奔腾程序。另外,不同的架构使用不同的总线架构(如VME总线,ISA,PCI,MCA,SBU,…)以及CPU的字长(通常是32或64位)。由于硬件上的这些差异,建立一个完全可移植的操作系统是不可行的。一个高度可移植的操作系统将包括两个高级层——一个机器相关层和一个机器独立层。机器相关层屏蔽硬件的细节,必须为每一个架构单独实现,该层提供了一个统一的接口。机器独立层只需要实现一次。为了实现高度可移植,机器相关层应尽可能小。(非标准答案)

28、请解释在建立基于微内核的操作系统时策略与机制的分离带来的好处。答:策略和机制的分离,使操作系统的设计人员在内核中实现了少量的基本原语。

这些原语被简化,因为它们不依赖于任何特定的策略。然后,它们在用户级别可以被用来实现更复杂的机制和策略。

29、下面是单位转换的练习:

a)一微年是多少秒?

b)微米常称为micron。那么gigamicron是多长?

c) 1TB存储器中有多少字节?

d)地球的质量是6000 yottagram, 换算成kilogram是多少?

答:这些都可以直接转换:

(a)一微年= 10-6×365×24×3600 = 31.536 s。

(b)1000m或lkm。

(c)有240字节,也就是1,099,511,627,776字节。

(d)它是6×1024公斤…

30、写一个和图1-19类似的shell,但是包含足够的实际可工作的代码,这样读者可测试它。读者还可以添加某些功能,如输入输出重定向,管道以及后台作业。答:略。

31、如果读者拥有一个个人UNIX类操作系统(Linux、MINIX、FreeBSD等),可以安全地崩溃和再启动,请写一个可以试图创建一个无限制数量子进程的shell 脚本并观察所发生的事。在运行实验之前,通过shell键人sync,在磁盘上备好文件缓冲区以避免毁坏文件系统。注意:在没有得到系统管理员的允许之前,不要在分时系统上进行这一尝试,其后果将会立即发生,尝试者可能会被抓住并受到惩罚。

答:略。

32、用一个类似于UNIX od或MS-DOS DEBUG的程序考察并尝试解释UNIX 类系统或Windows的目录。提示:如何进行取决于OS允许做什么。一个有益的技巧是在一个有某个操作系统的软盘上创建一个目录,然后使用一个允许进行此类访问的不同的操作系统读盘上的原始数据。

答:略。

第二章进程与线程

1、图2-2中给出了三个进程状态,在理论上,三个状态可以有六种转换,每个状态两个。但是,图中只给出了四种转换。有没有可能发生其他两种转换中的一个或两个?

答:从阻塞到运行的转换是可以想象的。假设某个进程在I/O上阻塞,而且I/O 结束,如果此时CPU空闲,该进程就可以从阻塞态直接转到运行态。而另外一种转换(从阻塞态到就绪态)是不可能的。一个就绪进程是不可能做任何会产生阻塞的I/O或者别的什么事情。只有运行的进程才能被阻塞。

2、假设要设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换。CPU需要哪些信息?请描述用硬件完成进程切换的工作过程。

答:应该有一个寄存器包含当前进程表项的指针。当I/O结束时,CPU将把当前的机器状态存入到当前进程表项中。然后,将转到中断设备的中断向量,读取另一个过程表项的指针(服务例程),然后,就可以启动这个进程了。

3、在所有当代计算机中,至少有部分中断处理程序是用汇编语言编写的。为什么?

答:通常,高级语言不允许访问CPU硬件,而这种访问是必需的。例如,中断处理程序可能需要禁用和启用某个特定设备的中断服务,或者处理进程堆栈区的数据。另外,中断服务例程需要尽快地执行。

4、当中断或系统调用把控制转给操作系统时,通常将内核堆栈和被中断进程的运行堆栈分离。为什么?

答:内核使用单独的堆栈有若于的原因。其中两个原因如下:

首先,不希望操作系统崩溃,由于某些用户程序不允许足够的堆栈空间。

第二,如果内核将数据保留在用户空间,然后从系统调用返回,那么恶意的用户可能使用这些数据找出某些关于其它进程的信息。

5、多个作业能够并行运行,比它们顺序执行完成的要快。假设有两个作业同时开始执行,每个需要10分钟的CPU时间。如果顺序执行,那么最后一个作业需要多长时间可以完成?如果并行执行又需要多长时间?假设I/O等待占50%。答:CPU利用率计算公式:CPU利用率= 1 - p n。设运行作业所需要的时间为T。

顺序执行:T = (10 + 10) / 0.5 = 40(分钟);

并行执行:p = 0.5,n = 2,CPU利用率= 1 - 0.52 = 0.75,则T = (10 + 10) / 0.75 = 26.7(分钟)。

6、在本章中说明的图2-11a的模式不适合用于使用内存高速缓存的文件服务器。为什么不适合?每个进程可以有自己的高速缓存吗?

答:即使是有可能实现,也是很难保持文件系统的一致性。假设某个客户进程给服务器进程1发送请求要更新文件。该进程更新其内存的cache项。然后,另一个客户进程给服务器进程2发送请求读取该文件。不幸的是,如果该文件还在cache中,服务器进程2对此毫不知情,将返回过时的数据。如果第一个进程在缓冲后将文件写到磁盘中,而服务器进程2每次读取时检查磁盘其缓存的备份是否是最新的,系统还可以工作,但是需要避免磁盘访问的所有缓存系统。

7、如果创建一个多线程进程,若子进程得到全部父进程线程的副本,会出现问题。假如原有线程之一正在等待键盘输入,现在则成为两个线程在等待键盘输入,每个进程有一个。在单线程进程中也会发生这种问题吗?

答:不会。如果单线程进程在键盘上阻塞,就不能创建子进程。

8、在图2-8中,给出了一个多线程Web服务器。如果读取文件的惟一途径是正常的阻塞read系统调用,那么Web服务器应该使用用户级线程还是内核级线程?为什么?

答:当工作者线程从磁盘读取Web页时,它就会被阻塞。如果使用用户级线程,该动作将阻塞整个进程,而破坏多线程的价值。这就是使用内核线程的原因:某

些线程的阻塞不会影响到其他线程。

9、在本章中,我们介绍了多线程Web服务器,说明它比单线程服务器和有限状态机服务器更好的原因。存在单线程服务器更好一些的情形吗?请给出一个例子。答:是的。如果服务器是完全CPU绑定的,则不需要多线程。这只会增加不必要的复杂性。假设某个百万人口区域的电话查号系统(类似于114),如果每个(姓名,电话号码)记录为64个字符,整个的数据库则为64MB,这就很容易全部读入服务器内存中以提供快速的查询。

10、在图2-12中寄存器集合按每个线程中的内容列出而不是按每个进程中的内容列出。为什么?毕竟机器只有一套寄存器。

答:当一个线程停止时,它在寄存器中有值。它们必须被保存,就像进程停止时,必须保存寄存器。多线程和多进程没有什么不同,所以每个线程需要自己的寄存器保存区。

11、为什么线程要通过调用thread_yield自愿放弃CPU? 毕竟,由于没有周期性的时钟中断,线程可以不交回CPU。

答:进程中的线程合作。它们彼此不敌对。如果应用程序需要阻塞以运行得更好,那么一个线程可以调用thread_yield自愿放弃CPU。毕竟,同一个进程中的线程的全部代码通常是一个程序员写的。

12、线程可以被时钟中断抢占吗?如果可以,什么情形下可以?如果不可以,为什么不可以?

答:用户级线程不能被时钟剥夺,除非整个进程的时间片用完。内核级线程可以单独地被剥夺。在后一种情况下,如果线程运行过久,时钟将中断该当前进程,因而当前线程也被中断。内核可以自由地从同一个进程中选取其他线程运行。

13、在本习题中,要求对使用单线程文件服务器和多线程文件服务器读取文件进行比较。假设所需要的数据都在块高速缓存中,花费15ms获得工作请求,分派工作,并处理其余必要工作。如果在三分之一时间时,需要一个磁盘操作,要另外花费75ms,此时该线程进入睡眠。在单线程情形下服务器每秒钟可以处理多少个请求?如果是多线程呢?

答:在单线程情况下,cache命中需15ms,cache未命中需要90ms。其加权平均为2/3*15+1/3*90。因此,平均请求为40ms,而服务器每秒可处理25个。对于多线程服务器,所有磁盘等待都是重叠的,因此每个请求都耗时15ms,而服务器每秒可处理66.6666个请求。

14、在用户空间实现线程,其最大的优点是什么?最大的缺点是什么?

答:最大的优势就是效率。不需要陷入内核来切换线程。最大的缺点是,如果一个线程阻塞,整个进程都会阻塞。

15、在图2-15中创建线程和线程打印消息是随机交织在一起的。有没有方法可以严格按照以下次序运行:创建线程1,线程1打印消息,线程1结束,创建线程2,线程2打印消息,线程2结束,以此类推;如果有,是什么方法,如果没有请解释原因。

答:是的,这是可以做到的。每次执行pthread_create后,主程序可以调用pthread_join等待刚刚创建的线程退出后再创建下一个线程。

16、在讨论线程中的全局变量时,曾使用过程create_global将存储分配给指向变量的指针,而不是变量自身。这是必需的,还是由于该过程也需要使用这些值?答:指针是确实必要的,因为全局变量的大小是未知的。它可能是从字符到浮点数数组的任何类型。如果保存其值,就不得不把其大小传递给create_global,这都没有问题,但是必须将其类型作为set_global的第二个参数,那么read_global 返回值的类型是什么呢。

17、考虑线程全部在用户空间实现的一个系统,其中运行时系统每秒钟得到一个时钟中断。假设在该运行时系统中,当某个线程正在执行时发生一个时钟中断,此时会出现什么问题?你有什么解决该问题的建议吗?

答:runtime系统可以正好在这一时刻阻塞或者解除阻塞某个线程,并且忙于处理调度队列。此时并不适合于时钟中断处理程序开始检查该队列是否应该进行线程切换,因为它们可能处于不一致的状态。解决方法可以是:当进入runtime系统后,设置一个标志。时钟处理程序将看到该标志,并且设置其自己的标志,然

后返回。当runtime系统完成时,它将检测时钟标志,看是否有时钟中断发生,并且现在运行时钟处理程序。

18、假设一个操作系统中不存在类似于select的系统调用来提前了解在从文件、管道或设备中读取时是否安全,不过该操作系统确实允许设置报警时钟,以便中断阻塞的系统调用。在上述条件下,是否有可能在用户空间中实现一个线程包?请加以讨论。

答:这是可能的,不过效率很低。线程想要做一个系统调用,首先设定警报定时器,然后才执行调用。如果线程阻塞,定时器将控制归还给线程包。当然,大多数调用是不阻塞的,而定时器必须被清除。每个可能被阻塞的系统调用都必须作为3个系统调用来执行。如果定时器过早失效,各种问题都可能发生。用这种方法建立线程包并不好。

19、在2.3.4节中所讨论的优先级反转问题是否可能在用户级线程中发生?为什么?

答:当低优先级进程位于其临界区,而高优先级进程就绪并且被调度时,将发生优先级倒置问题。如果使用忙等待,高优先级进程将一直运行。对于用户级线程,不可能发生低优先级线程突然被剥夺而允许高优先级线程运行,因为是不可剥夺的。而内核级线程,就会出现这个问题。

20、在2.3.4节中,描述了一种有高优先级进程H和低优先级进程L的情况,导致了H陷入死循环。若采用轮转调度算法而不是优先级调度算法,还会发生这样问题吗?请给予讨论。

答:在轮转调度算法下。L迟早会运行,最终它将会离开临界区。关键是,在优先级调度算法下,L永远不会运行;循环,它定期得到一个正常的时间片,所以有机会离开其临界区。

21、在使用线程的系统中,若使用用户级线程,是每个线程一个堆栈还是每个进程一个堆栈?如果使用内核级线程倩况又如何呢?请给予解释。

答:每个线程都是自己调用例程,因此它必须有其自己的堆栈以保存局部变量、返回地址等等。这一点用户级线程和内核级线程是一样的。

22、在开发计算机时,通常首先用一个程序模拟,一次运行一条指令,甚至多处理器也严格按此模拟。在类似于这种没有同时事件发生的情形下,会出现竞争条件吗?

答:是的。模拟计算机也可以是多道程序设计的。例如,在进程A运行时,它读取一些共享变量。然后发生了一个模拟时钟周期和进程B运行。它也读取相同的变量,然后对变量进行了加1操作。当进程A运行时,如果它也对变量进行了加1操作,就发生了竞争条件。

23、两个进程在一个共享存储器多处理器(即两个CPU)上运行,当它们要共享一个公共内存时,图2-23所示的采用变量turn的忙等待解决方案还有效吗?

答:是,它还是有用的。当然,它依然是忙等待。

24、在进程调度是抢占式的情形下,图2-24中展示的互斥问题的Peterson解法能正常工作吗?如果是非抢占式的情况呢?

答:该方法对可剥夺调度完全没问题。事实上,它就是为这种情况设计的。当调度为不可剥夺的,该方法将会失败。假设初值为0,而进程1首先运行。它将一直循环,永不释放CPU。

25、给出一个可以屏蔽中断的操作系统如何实现信号量的框架。

答:执行信号量操作,操作系统首先要禁用中断。然后,它读取信号量的值。如果执行down操作,而信号量等于0,就将调用进程放入与信号量有关的阻塞进程列表中。如果执行up操作,必须检测看是否有任何进程在信号量上被阻塞。如果有一个或多个进程被阻塞,从阻塞进程的列表中移出一个,使之就绪。当所有这些操作都完成后,就可以开启中断了。

26、请说明计数信号量(即可以保持一个任意值的信号量)如何仅通过二元信号量和普通机器指令实现。

答:将每个计数信号量与2个二值信号量联合:M用于互斥;S用于阻塞。另外,每个计数信号量都组合一个用于保存up次数减去down次数的计数器,以及在

该信号量上阻塞的进程列表。为了实现down操作,进程首先通过对M执行down 操作,以获得对信号量、计数器以及列表的独占访问权。然后,将计数器减1。如果大于等于0, 只需对M执行up操作并退出即可。如果M为负数,就将该进程放入阻塞进程列表中。接着,对M执行up操作,对S执行down操作来阻塞该进程。为了实现up操作,首先对M执行down操作以获得互斥,然后将计数器加1。如果计数器大于0, 则没有进程阻塞,就只需对M执行up操作。不过,如果计数器小于等于0, 则必须从列表中移出某些进程。最后,按次序对B和M 执行up操作。

27、如果一个系统只有两个进程,可以使用一个屏障来同步这两个进程吗?为什么?

答:如果程序操作按阶段执行,直到两个进程都完成当前阶段才能进入下一阶段,这时就应该使用屏障。

28、如果线程在内核中实现,可以使用内核信号量对同一个进程中的两个线程进行同步吗?如果线程在用户空间实现呢?假设在其他进程中没有线程必须访问该信号量。请讨论你的答案。

答:对于内核线程,线程可以在信号量上阻塞,而内核可以运行该进程中的其它线程。因而,使用信号量没有问题。而对于用户级线程,当某个线程在信号量上阻塞时,内核将认为整个进程都被阻塞,而且不再执行它。因此,进程失败。

29、管程内的同步机制使用条件变量和两个特殊操作wait和signal,一种更通用的同步形式是只用一条原语waituntil,它以任意的布尔谓词作为参数。例如

waituntil x < 0 or y + z < n

这样就不再需要signal原语。很显然这一方式比Hoare或Brinch Hansen方案更通用,但它从未被采用过。为什么?提示:请考虑其实现。

答:其实现的代价很高。每次在某些等待变化的进程的谓词中出现的任何变量,runtime系统都必须重新计算该谓词,以判断该进程是否能够被解锁。而对于Hoare和Brinch Hansen管程,则只需signal原语即可唤醒进程。

30、一个快餐店有四类雇员:(1) 领班,接收顿客点的菜单;(2)厨师,准备饭菜;(3)打包工,将饭菜装在袋子里;(4) 收银员,将食品袋交给顾客并收钱。每个雇员可被看作一个进行通信的顺序进程。它们采用的进程间通信方式是什么?请将这个模型与UNIX中进程联系起来。

答:雇员之间通过消息传递进行通信:在该例中,消息为订单、食物和袋子。在UNIX中,该4个进程通过管道连接。

31、假设有一个使用信箱的消息传递系统,当向满信箱发消息或从空信箱收消息时,进程都不会阻塞,相反,会得到一个错误代码。进程响应错误代码的处理方式为一遍一遍地重试,直到成功为止。这种方式会导致竞争条件吗?

答:它不会导致竞争条件(不会丢失任何东西),不过它是完全的忙等待。

32、CDC 6600计算机使用一种称作处理器共享的有趣的轮转调度算法,它可以同时处理多达10个I/O进程。每条指令结束后都进行进程切换,这样进程1执行指令1,进程2执行指令2,以此类推。进程切换由特殊硬件完成,所以没有开销。如果在没有竞争的条件下一个进程需要T秒钟完成,那么当有n个进程共享处理器时完成一个进程需要多长时间?

答:它需要nT sec。

33、是否可以通过分析源代码来确定进程是CPU密集型的还是I/O密集型的?如何能在运行时刻进行此项决定?

答:在简单的情况下是有可能通过看源代码来判断是否为I/O 绑定的。例如,程序开始时,将其所有输入文件读入到缓冲器中,这种程序通常不是I/O 绑定的;但是,对不同文件进行增量地读写(诸如编译程序)的问题很有可能是I/O 绑定的。如果操作系统提供诸如UNIX ps的命令,就可以得知被程序使用的CPU 时间的量,你能把这个时间量与整个的时间比较以判断。当然,最有意义就是你是系统中唯一的用户。

34、在“何时调度”一节中曾提到,有时一个重要进程可以在选择下一个被阻塞进程进入运行的过程中发挥作用,从而改善调度性能。请给出可以这样做的情形并解释如何做。

答:对于管道中的多个进程,普通的父进程可以将数据流的信息传递给操作系统。有了这个信息,OS就可以确定哪个进程可以向需要输入的阻塞进程提供输出。

35、对某系统进行监测后表明,当阻塞在I/O之前时,平均每个进程运行时间为T。一次进程切换需要的时间为S,这里S实际上就是开销。对于采用时间片长度为Q的轮转调度,请给出以下各种情况中CPU利用率的计算公式:

a) Q = ∞

b) Q > T

c) S < Q < T

d) Q = S

e) Q趋近于0

答:CPU的效率就是有用的CPU时间除以整个的CPU时间。当Q > T时,基本的周期就是进程运行T,然后进程切换S。因此,(a)和(b)的效率都是T/(T+S)。当时间片比T短时,每运行一次T就要求T/Q次进程切换,浪费时间为ST/Q。因此,其效率为

T/(T +ST/Q)

也就是下降到Q/(Q+S),这就是(c)的答案。至于(d),只需以S替代Q,就可以计算出其效率为50%。最后,(e)的效率趋近于0。

36、有5个待运行作业,估计它们的运行时N分別是9, 6, 3, 5和X。采用哪种次序运行这些作业将得到最短的平均响应时间?(答案将依赖于X。)

答:最短作业优先可以使得平均响应时间最短。

0 < X ≤3: X, 3, 5, 6, 9.

3 < X ≤5: 3, X, 5, 6, 9.

5 < X ≤6: 3, 5, X, 6, 9.

6 < X ≤9: 3, 5, 6, X, 9.

X > 9: 3, 5, 6, 9, X.

37、有5个批处理作业A到E,它们几乎同时到达一个计算中心。估计它们的运行时间分別为10,6,2,4和8分钟。其优先级(由外部设定)分别为3,5,2,1和4,其中5为最高优先级。对于下列每种调度算法,计算其平均进程周转时间,可忽略进程切换的开销。

a) 轮转法。

b) 优先级调度。

c) 先来先服务(按照10,6,2,4,8次序运行)。

d) 最短作业优先。

对a),假设系统具有多道程序处理能力,每个作业均公平共享CPU时间,对b)到d) ,假设任一时刻只有一个作业运行,直到结束。所有的作业都完全是CPU密集型作业。

答:对于时间片轮转,在头10分钟里,每个作业获得1/5的CPU时间。在第10 分钟时,C结束。在接下来的8分钟里,每个作业获得1/4 的CPU时间,然后D完成,然后,在接下来的6分钟内,余下的3个作业各获得1/3的CPU时间,直到B结束,以此类推。因此,5个作业的完成时间分别为是10, 18, 24, 28和30, 平均为22分钟。对于优先级调度,5最先运行,6分钟完成。其它作业分别在第14, 24, 26和30分钟完成,平均为18.8分钟。如果作业按A->E的次序执行,则分别在第10, 16, 18, 22和30分钟完成,因此,平均为19.2分钟。最后,最短作业优先调度的完成时间分别为第2, 6, 12, 20和30分钟,平均为14分钟。

38、运行在CTSS上的一个进程需要30个时间片完成。该进程必须被调入多少次,包括第一次(在该进程运行之前)?

答:第一次得到 1 个时间片。随后获得2, 4, 8 和15 个时间片,因此必须经过5 次交换。

39、能找到一个使CTSS优先级系统不受随机回车链愚弄的方法吗?

答:可以检查程序是否期待输入,并且对输入进行处理。不期待输入也不对输入进行处理的程序将不得到任何特殊的优先级提升。

40、a = 1/2的老化算法用来预测运行时间。先前的四次运行,从最老的一个到最近的一个,其运行时间分别是40ms,20ms,40ms和15ms。下一次的预测时间是多少?

答:预测值的顺序为40,30,35,所以下一次是25。(把前两个数据加一起,除以2,然后把结果和下一个数据加一起,除以2。)

41、一个软实时系统有4个周期时间,其周期分别为50ms,100ms,200ms和250ms。假设这4个事件分别需要35ms,20ms,10ms和x ms的CPU时间。保

持系统可调度的最大x值是多少?

答:所使用的CPU 的片断为35/50 + 20/100 + 10/200 + x/250。为了使得进程可调度,必须是总和小于因此,x必须小于12.5ms。

42、请解释为什么两级调度比较常用。

答:当内存太小不能载入所有就绪进程时,就需要使用两级调度。某些进程被载入内存,并且从中选择一个运行。内存中进程会随着时间调整。这种算法容易实现也非常有效,另外,时间片轮转调度并不管进程是否在内存中。

43、一个实时系统需要处理两个语音通信,每个运行5ms,然后每次突发消耗1ms CPU时间,加上25帧/秒的一个视频,每一帧需要20ms的CPU时间。这个系统是可调度的吗?

答:每个语音通信运行200次/秒,每次突发消耗1毫秒,所以每个语音通信需要200毫秒/秒或两个语音通信需要400毫秒/秒。视频运行25次/秒,每次使用了20毫秒的时间,总共为500毫秒/秒。它们一起消耗900毫秒/秒,所以还有时间剩余,系统是可调度的。

44、考虑一个系统,在这个系统中为了内核线程调度希望将策略和机制分离。请提出一个实现此目标的手段。

答:内核可以通过任何方式调度进程,但对于每个进程,严格按照进程的优先级顺序执行。通过让用户进程设置自己的优先级,让用户控制策略,而内核处理机制。

45、在哲学家就餐问题的解法(图2-46)中,为什么在过程take_forks中将状态变量置为HUNGRY?

答:如果某个哲学家阻塞,其邻居稍后能够在test中检测其状态,发现他已经饥饿,当叉子可用时,就可以唤醒他了。

46、考虑图2-46中的过程pm_forks,假设变量state[i]在对test的两次调用之后而不是之前被置为THINKING,这个改动会对解法有什么影响?

答:该变化将意味着在哲学家停止进餐后,他的邻居都不能接着被选择。事实上,他们永远不会被选择。假设哲学家2完成了进餐,他将为哲学家1和3运行test,而两者都不会被启动,即使他们两个都饿了而且两个叉子都是可用的。类似的,如果哲学家4完成进餐,哲学家3也不会被启动。他将无法启动。

47、按照哪一类进程何时开始,读者-写者问题可以有若于种方式求解。请详细描述该问题的三种变体,每一种变体偏好(或不偏好)某一类进程。对每种变体,

现代操作系统(第三版)答案

MODERN OPERATING SYSTEMS SECOND EDITION PROBLEM SOLUTIONS ANDREW S.TANENBAUM Vrije Universiteit Amsterdam,The Netherlands PRENTICE HALL UPPER SADDLE RIVER,NJ 07458课后答案网 w w w .k h d a w .c o m

SOLUTIONS TO CHAPTER 1PROBLEMS 1.An operating system must provide the users with an extended (i.e.,virtual)machine,and it must manage the I/O devices and other system resources. 2.Multiprogramming is the rapid switching of the CPU between multiple processes in memory.It is commonly used to keep the CPU busy while one or more processes are doing I/O. 3.Input spooling is the technique of reading in jobs,for example,from cards,onto the disk,so that when the currently executing processes are ?nished,there will be work waiting for the CPU.Output spooling consists of ?rst copying printable ?les to disk before printing them,rather than printing directly as the output is generated.Input spooling on a personal computer is not very likely,but output spooling is. 4.The prime reason for multiprogramming is to give the CPU something to do while waiting for I/O to complete.If there is no DMA,the CPU is fully occu-pied doing I/O,so there is nothing to be gained (at least in terms of CPU utili-zation)by multiprogramming.No matter how much I/O a program does,the CPU will be 100percent busy.This of course assumes the major delay is the wait while data are copied.A CPU could do other work if the I/O were slow for other reasons (arriving on a serial line,for instance). 5.Second generation computers did not have the necessary hardware to protect the operating system from malicious user programs. 6.It is still alive.For example,Intel makes Pentium I,II,and III,and 4CPUs with a variety of different properties including speed and power consumption.All of these machines are architecturally compatible.They differ only in price and performance,which is the essence of the family idea. 7.A 25×80character monochrome text screen requires a 2000-byte buffer.The 1024×768pixel 24-bit color bitmap requires 2,359,296bytes.In 1980these two options would have cost $10and $11,520,respectively.For current prices,check on how much RAM currently costs,probably less than $1/MB. 8.Choices (a),(c),and (d)should be restricted to kernel mode. 9.Personal computer systems are always interactive,often with only a single user.Mainframe systems nearly always emphasize batch or timesharing with many users.Protection is much more of an issue on mainframe systems,as is ef?cient use of all resources. 10.Every nanosecond one instruction emerges from the pipeline.This means the machine is executing 1billion instructions per second.It does not matter at all how many stages the pipeline has.A 10-stage pipeline with 1nsec per 课后答案网 w w w .k h d a w .c o m

操作系统概念第七版习题答案(中文版)完整版

1.1 在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。a. 列出此类的问题b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。 Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。 1.2 资源的利用问题在各种各样的操作系统中出现。试例举在下列的环境中哪种资源必须被严格的管理。(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑 Answer: (a)大型电脑或迷你电脑系统:内存和CPU 资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU 资源(c)手持电脑:功率消耗,内存资源 1.3 在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好? Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。充分利用该系统可以对用户的问题产生影响。比起个人电脑,问题可以被更快的解决。还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。 1.4 在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时 Answer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。 1.5 描述对称多处理(SMP)和非对称多处理之间的区别。多处理系统的三个优点和一个缺点? Answer:SMP意味着所以处理器都对等,而且I/O 可以在任何处理器上运行。非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系。主处理器为从处理器安排工作,而且I/O 也只在主处理器上运行。多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给。它们可以更快速的运行程序和增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、规模经济、增加可靠性) 1.6 集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么? Answer:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。另一方面,多道程序系统可以被看做是一个有多个CPU 组成的单一的物理实体。集群系统的耦合度比多道程序系统的要低。集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间。为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新。当一台处理器出现故障时,另一台处理器能够接管故障处理的功能。

《现代操作系统第四版》第三章答案

第三章内存管理习题 1.IBM360有一个设计,为了对2KB大小的块进行加锁,会对每个块分配一个4bit的密钥,这个密钥存在PSW(程序状态字)中,每次内存引用时,CPU都会进行密钥比较。但该设计有诸多缺陷,除了描述中所言,请另外提出至少两条缺点。 A:密钥只有四位,故内存只能同时容纳最多十六个进程;需要用特殊硬件进行比较,同时保证操作迅速。 2.在图3-3中基址和界限寄存器含有相同的值16384,这是巧合,还是它们总是相等?如果这只是巧合,为什么在这个例子里它们是相等的? A:巧合。基地址寄存器的值是进程在内存上加载的地址;界限寄存器指示存储区的长度。 3.交换系统通过紧缩来消除空闲区。假设有很多空闲区和数据段随机分布,并且读或写32位长的字需要10ns的时间,紧缩128MB大概需要多长时间?为了简单起见,假设空闲区中含有字0,内存中最高地址处含有有效数据。 A:32bit=4Byte===>每字节10/4=2.5ns 128MB=1282^20=2^27Byte 对每个字节既要读又要写,22.5*2^27=671ms 4.在一个交换系统中,按内存地址排列的空闲区大小是10MB,4MB,20MB,18MB,7MB,9MB,12MB,和15MB。对于连续的段请求: (a) 12MB (b) 10MB (c) 9MB

使用首次适配算法,将找出哪个空闲区?使用最佳适配、最差适配、下次适配算法呢? A:首次适配算法:20MB,10MB,18MB;最佳适配算法:12MB,10MB,9MB;最差适配算法:20MB;18MB;15MB;下次适配算法:20MB;18MB;9MB; 5.物理地址和虚拟地址有什么区别? A:实际内存使用物理地址。这些是存储器芯片在总线上反应的数字。虚拟地址是指一个进程的地址空间的逻辑地址。因此,具有32位字的机器可以生成高达4GB的虚拟地址,而不管机器的内存是否多于或少于4GB。 6.对下面的每个十进制虚拟地址,分別使用4KB页面和8KB页面计算虚拟页号和偏移量:20000,32768,60000。 A:转换为二进制分别为:0100111000100000 虚拟地址应该是16位1000000000000000 1110101001100000 4KB页面偏移量范围0~4027,需要12位来存储偏移量,剩下4位作为页号;同理8KB页面需要13位来存储偏移量,剩下3位作为页号;所以,4KB | 8KB 页号| 偏移量| 页号| 偏移量20000 | 0100 111000100000 | 010 0111000100000 32768 | 1000 000000000000 | 100 0000000000000 60000 | 1110 101001100000 | 111 0101001100000 7. 使用图3-9的页表,给出下面每个虚拟地址对应的物理地址:

操作系统概念课后习题答案

1.1在多道程序和分时环境中,多个用户同时共享一个系统,返种情冴导致多种安全问题。a. 列出此类的问题b.在一个分时机器中,能否确保像在与用机器上一样的安全度?并解释乀。 Answer:a.窃叏戒者复制某用户癿程序戒数据;没有合理癿预算来使用资源(CPU,存,磁盘空闱,外围设备)b.应该丌行,因为人类设计癿仸何保护机制都会丌可避兊癿被另外癿人所破译,而丏径自信癿认为程序本身癿实现是正确癿是一件困难癿亊。 1.2资源的利用问题在各种各样的操作系统中出现。试例丼在下列的环境中哪种资源必须被严栺的管理。(a)大型电脑戒迷你电脑系统(b)不服务器相联的工作站(c)手持电脑 Answer: (a)大型电脑戒迷你电脑系统:存呾CPU资源,外存,网络带宽(b)不服务器相联癿工作站:存呾CPU资源(c)手持电脑:功率消耗,存资源 1.3在什举情冴下一个用户使用一个分时系统比使用一台个人计算机戒单用户工作站更好? Answer:当另外使用分时系统癿用户较少时,仸务十分巨大,硬件速度径快,分时系统有意丿。充分利用该系统可以对用户癿问题产生影响。比起个人电脑,问题可以被更快癿解决。迓有一种可能収生癿情冴是在同一时闱有许多另外癿用户在同一时闱使用资源。当作业足够小,丏能在个人计算机上合理癿运行时,以及

当个人计算机癿性能能够充分癿运行程序来达到用户癿满意时,个人计算机是最好癿,。 1.4在下面丼出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实

时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时 Answer:对二实时系统来说,操作系统需要以一种公平癿方式支持虚拟存储器呾分时系统。对二手持系统,操作系统需要提供虚拟存储器,但是丌需要提供分时系统。批处理程序在两种环境中都是非必需癿。 1.5描述对称多处理(SMP)和非对称多处理乀间的区别。多处理系统的三个优点和一个缺点? Answer:SMP意味着所以处理器都对等,而丏I/O可以在仸何处理器上运行。非对称多处理有一个主处理器控制系统,不剩下癿处理器是随从关系。主处理器为从处理器安排工作,而丏I/O也叧在主处理器上运行。多处理器系统能比单处理器系统节省资金,返是因为他们能共享外设,大容量存储呾电源供给。它们可以更快速癿运行程序呾增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、觃模经济、增加可靠性) 1.6集群系统不多道程序系统的区别是什举?两台机器属二一个集群来协作提供一个高可靠性的服务器的要什举? Answer:集群系统是由多个计算机耦合成单一系统幵分布二整个集群来完成计算仸务。另一方面,多道程序系统可以被看做是一个有多个CPU组成癿单一癿物理实体。集群系统癿耦合度比多道程序系统癿要低。集群系统通过消息迕行通信,而多道程序系统是通过共享癿存储空闱。为了两台处理器提供较高癿可靠性服务,两台机器上癿状态必项被复制,幵丏要持续癿更新。当一台处理器出现敀障时,另一台处理器能够接管敀障处理癿功能。

《现代操作系统第四版》 第六章 答案

第四章文件系统习题 Q1: 给出文件/etc/passwd的五种不同的路径名。(提示:考虑目录项”.”和”…”。) A: /etc/passwd /./etc/passwd /././etc/passwd /./././etc/passwd /etc/…/etc/passwd /etc/…/etc/…/etc/passwd /etc/…/etc/…/etc/…/etc/passwd /etc/…/etc/…/etc/…/etc/…/etc/passwd Q2:在Windows中,当用户双击资源管理器中列出的一个文件时,就会运行一个程序,并以这个文件作为参数。操作系统要知道运行的是哪个程序,请给出两种不同的方法。 A:Windows使用文件扩展名。每种文件扩展名对应一种文件类型和某些能处理这种类型的程序。另一种方式时记住哪个程序创建了该文件,并运行那个程序。Macintosh以这种方式工作。

Q3:在早期的UNIX系统中,可执行文件(a.out)以一个非常特別的魔数开始,这个数不是随机选择的。这些文件都有文件头,后面是正文段和数据段。为什么要为可执行文件挑选一个非常特别的魔数,而其他类型文件的第一个字反而有一个或多或少是随机选择的魔数? A:这些系统直接把程序载入内存,并且从word0(魔数)开始执行。为了避免将header作为代码执行,魔数是一条branch指令,其目标地址正好在header之上。按这种方法,就可能把二进制文件直接读取到新的进程地址空间,并且从0 开始运行。 Q4: 在UNIX中open系统调用绝对需要吗?如果没有会产生什么结果? A: open调用的目的是:把文件属性和磁盘地址表装入内存,便与后续调用的快速访问。 首先,如果没有open系统调用,每次读取文件都需要指定要打开的文件的名称。系统将必须获取其i节点,虽然可以缓存它,但面临一个问题是何时将i节点写回磁盘。可以在超时后写回磁盘,虽然这有点笨拙,但它可能起作用。 Q5:在支持顺序文件的系统中总有一个文件回绕操作,支持随机存取

操作系统试题及答案

操作系统试题一 一、单选题(每小题1分,共20分) 1、操作系统中采用多道程序设计技术提高CPU和外部设备的【A 】。 A、利用率 B、可靠性 C 、稳定性D、兼容性 2、如果分时操作系统的时间片一定,那么【C】,则响应时间越短。 A、内存越少 B、内存越多 C、用户数越少 D、用户数越多 3、若把操作系统看作资源管理者,下列的【C】不属于操作系统所管理的资源。 A、CPU B、内存 C、中断 D、程序 4、操作系统是通过【D 】感知进程存在的。 A、程序名 B、进程的状态 C、中断 D、进程控制块 5、当【B 】时,进程从执行状态变为就绪状态。 A、进程被进程调度程序选中 B、时间片用完 C、等待某一事件 D、等待的事件发生 6、以下的进程状态变化中,不可能发生的变化是【D 】。 A、执行状态到就绪状态 B、等待状态到就绪状态 C、执行状态到等待状态 D、等待状态到执行状态 7、若P、V操作的信号量S初值为2,当前值为-3,则表示有【D】

个等待进程。 A、0个 B、1个 C、2个 D、3个 8、P、V操作是【A】 1 / 22 A、两条低级进程通信原语 B、两条高级进程通信原语 C、两条系统调用命令 D、两组不同的机器指令 9、用V操作唤醒一个等待进程时,被唤醒的进程状态变为【B 】。 A、等待 B、就绪 C、执行 D、完成 0、资源的有序分配策略破坏【D 】条件,是一种死锁预防策略。 A、互斥条件 B、保持和请求条件 C、不剥夺条件 D、环路等待条件 1、银行家算法是一种【B 】算法。 A、死锁预防 B、死锁避免 C、死锁检测 D、死锁解除 2、某系统中有同类资源10个,每个进程的资源需求量为3个,则不会发生死锁的最大并发进程数为【C】 A、2 B、、4 D、5 3、分区管理中采用首次适应分配算法时,应把空闲区按【C】次序进行管理。 A、大小递增 B、大小递减 C、地址递增 D、地址递减 4、很好地解决了内存碎片问题的存储管理方案是【C 】。

现代操作系统试卷及其答案

1.一般用户更喜欢使用的系统是()。 A.手工操作 B.单道批处理 C.多道批处理 D.多用户分时系统 2. 与计算机硬件关系最密切的软件是()。 A.编译程序 B.数据库管理系统 C.游戏程序 D.OS 3. 现代OS具有并发性和共享性,是()的引入导致的。 A.单道程序 B. 磁盘 C. 对象 D.多道程序 4. 早期的OS主要追求的是()。 A.系统的效率 B.用户的方便性 C.可移植 D.可扩充性 5.()不是多道程序系统 A.单用户单任务 B.多道批处理系统 C.单用户多任务 D.多用户分时系统 6.()是多道操作系统不可缺少的硬件支持。 A.打印机 B.中断机构 C.软盘 D.鼠标 7. 特权指令可以在()执行。 A.目态 B.浏览器中 C.任意的时间 D.进程调度中 8. 没有了()计算机系统就启动不起来。 A.编译器 B.DBMS C.OS D.浏览器 9. 通道能够完成()之间的数据传输。 A.CPU与外设 B.内存与外设 C.CPU与主存 D.外设与外设 10. 操作系统的主要功能有()。 A.进程管理、存储器管理、设备管理、处理机管理 B.虚拟存储管理、处理机管理、进程调度、文件系统 C.处理机管理、存储器管理、设备管理、文件系统 D.进程管理、中断管理、设备管理、文件系统 11. 单处理机计算机系统中,()是并行操作的。 A.处理机的操作与通道的操作是并行的 B.程序与程序 C.主程序与子程序 D.用户程序与操作系统程序 12. 处理机的所有指令可以在()执行。 A.目态 B.浏览器中

C.任意的时间 D.系统态 13.()功能不是操作系统直接完成的功能。 A.管理计算机硬盘 B.对程序进行编译 C.实现虚拟存储器 D.删除文件 14. 要求在规定的时间内对外界的请求必须给予及时响应的OS是()。 A.多用户分时系统 B.实时系统 C.批处理系统时间 D.网络操作系统 15. 操作系统是对()进行管理的软件。 A.硬件 B.软件 C.计算机资源 D.应用程序 16.()对多用户分时系统最重要。 A.实时性 B.交互性 C.共享性 D.运行效率 17.()对多道批处理系统最重要。 A.实时性 B.交互性 C.共享性 D.运行效率 18. ( )对实时系统最重要。 A.及时性 B.交互性 C.共享性 D.运行效率 19. Windows98是()操作系统。 A.多用户分时 B.批处理系统 C.单用户多任务 D.单用单任务 20. 分布式系统与网络系统的主要区别是() A.并行性 B.透明性 C.共享性 D.复杂性 21. ( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A.网络 B.分布式 C.分时 D.实时 22. 如果分时操作系统的时间片一定,那么(),则响应时间越长。 A.用户数越少 B.用户数越多 C.内存越小 D.内存越大 23. 下面6个系统中,必须是实时操作系统的有()个。 ·航空订票系统 ·过程控制系统 ·机器口语翻译系统 ·计算机辅助系统

操作系统教程习题答案

《操作系统教程》习题答案

习题1 1.单项选择题 (1)大中小型计算机是以为中心的计算机系统。 A、CPU B、存储器 C、系统总线 D、通道 (2)以下关于操作系统的说法正确的是。 A、批处理系统是实现人机交互的系统 B、批处理系统具有批处理功能,但不具有交互能力 C、分时系统是实现自动控制,无须人为干预的系统 D、分时系统即具有分时交互能力,又具有批处理能力 (3)操作系统的职能是管理软硬件资源、合理地组织计算机工作流程和。 A、为用户提供良好的工作环境和接口 B、对用户的命令作出快速响应 C、作为服务机构向其它站点提供优质服务 D、防止有人以非法手段进入系统 (4)设计实时操作系统时,首先应考虑系统的。 A、可靠性和灵活性 B、实时性和可靠性 C、优良性和分配性 D、灵活性和分配性 (5)多道程序设计是指。 A、在分布式系统中同一时刻运行多个程序 B、在一台处理器上并行运行多个程序 C、在实时系统中并发运行多个程序 D、在一台处理器上并发运行多个程序 (6)以下关于并发性和并行性的说法正确的是。 A、并发性是指两个及多个事件在同一时刻发生 B、并发性是指两个及多个事件在同一时间间隔内发生 C、并行性是指两个及多个事件在同一时间间隔内发生 D、并发性是指进程,并行性是指程序 (1)B (2)B (3)A (4)B (5)D (6)B 2.填空题 (1)微机是以总线为纽带构成的计算机系统。 (2)在批处理兼分时系统中,往往把由分时系统控制的作业称为前台作业,把由批处理系统控制的作业称为后台作业。 (3)在分时系统中,若时间片长度一定,则用户数越多,系统响应时间越慢。 (4)分布式操作系统能使系统中若干台计算机协同完成一个共同的任务,分解问题成为子计算并使之在系统中各台计算机上并行执行,以充分利用各计算机的优势。 (5)用户通过网络操作系统可以网络通信、资源共享,从而大大扩展了计算机的应用范围。 3.简答题 (1)什么是操作系统?现代操作系统的基本特征是什么?并发性 (2)什么是批处理系统,衡量批处理系统好坏的主要指标是什么?及时性 (3)试述分时系统的原理及其特性。时间片原则交互性同时性独立性及时性

(完整版)操作系统课后题答案

2 . OS的作用可表现在哪几个方面? 答:(1)0S作为用户与计算机硬件系统之间的接口;(2)0S作为计算机系统资源的管理者;(3)0S实现了对计算机资源的抽象。 5 .何谓脱机I/O 和联机I/O ? 答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围 机控制完成,是在脱离主机的情况下进行的。而联机I/O方式是指程序和数据的输入输出 都是在主机的直接控制下进行的。 11 . OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。 20 .试描述什么是微内核OS。 答:(1)足够小的内核;(2)基于客户/服务器模式;(3)应用机制与策略分离原理;(4)采用面向对象技术。 25 ?何谓微内核技术?在微内核中通常提供了哪些功能? 答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽 量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内核 中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。 第二章进程管理 2.画出下面四条语句的前趋图: S仁a : =x+y; S2=b : =z+1; S3=c : =a - b ; S4=w : =c+1; 7 ?试说明PCB的作用,为什么说PCB是进程存在的惟一标志? 答:PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在 多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程 并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的。 11 .试说明进程在三个基本状态之间转换的典型原因。 答:(1)就绪状态T执行状态:进程分配到CPU资源;(2)执行状态T就绪状态:时间片用 完;(3)执行状态T阻塞状态:I/O请求;(4)阻塞状态T就绪状态:I/O完成. 19 ?为什么要在OS中引入线程? 答:在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具

操作系统教程第5版课后答案

操作系统教程第5版课后答案 费祥林、骆斌编著 第一章操作系统概论 习题一 一、思考题 1.简述现代计算机系统的组成及层次结构。 答:现代计算机系统由硬件和软件两个部分组成。是硬件和软件相互交织形成的集合体,构成一个解决计算问题的工具。硬件层提供基本可计算的资源,包括处理器、寄存器、内存、外存及I/O设备。软件层由包括系统软件、支撑软件和应用软件。其中系统软件是最靠近硬件的。 2、计算机系统的资源可分成哪几类?试举例说明。 答:包括两大类,硬件资源和信息资源。硬件资源分为处理器、I/O设备、存储器等;信息资源分为程序和数据等。 3.什么是操作系统?操作系统在计算机系统中的主要作用是什么? 答:操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。 操作系统在计算机系统中主要起4个方面的作用。 (1)服务用户观点——操作系统提供用户接口和公共服务程序 (2)进程交互观点——操作系统是进程执行的控制者和协调者 (3)系统实现观点——操作系统作为扩展机或虚拟机 (4)资源管理观点——操作系统作为资源的管理者和控制者 4.操作系统如何实现计算与操作过程的自动化? 答:大致可以把操作系统分为以下几类:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。其中批处理操作系统能按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化。又可分为批处理单道系统和批处理多道系统。单道系统每次只有一个作业装入计算机系统的主存储器运行,多个作业可自动、顺序地被装入运行。批处理多道系统则允许多个作业同时装入主存储器,中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备,这样可以充分利用计算机系统的资源,缩短作业时间,提高系统的吞吐率 5.操作系统要为用户提供哪些基本的和共性的服务? 答:(1)创建程序和执行程序;(2)数据I/O和信息存取;(3)通信服务;(4)差错检测和处理。为了保证高效率、高质量的工作,使得多个应用程序能够有效的共享系统资源,提高系统效率,操作系统还具备一些其他的功能:资源分配,统计,保护等。 6.试述操作系统所提供的各种用户接口。 答:操作系统通过程序接口和操作接口将其服务和功能提供给用户。程序接口由一组系统调用组成,在应用程序中使用“系统调用”可获得操作系统的低层服务,访问或使用系统管理的各种软硬件资源,是操作系统对外提供服务和功能的手段;操作接口由一组命令和(或)作业控制语言组成,是操作系统为用户提

操作系统第四版-课后习题答案

操作系统第四版-课后习题答案

第一章 作者:佚名来源:网络 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 个用户进程,此时: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 的情况?若有,指出发生等待的时刻。 答:画出两道程序并发执行图如下: (1)两道程序运行期间,CPU存在空闲等待,时间为100 至150ms 之间(见图中有色部分) (2)程序A 无等待现象,但程序B 有等待。程序B 有等待时间段为180rns 至200ms 间(见图中有色部分) 3 设有三道程序,按A 、B 、C优先次序运行,其内部计算和UO操作时间由图给出。

江西理工大学-现代操作系统考试复习题

第一章:引论 1.系统调用与中断的概念。 作业题解 第一章引论 PE1-14. 陷阱和中断的主要差别是什么? 答:陷阱是由程序造成的,并且与它同步。如果程序一而再地被运行,陷阱将总在指令流中相同的位置的精确发生。而中断则是由外部事件和其他时钟造成的,不具有重复性。 PE1-20. 有一个文件,其文件描述符是fd,内含下列字节序列:3,1,4,1,5,9,2,6,5,3,5.有如下系统调用: lseek (fd, 3, SEEK_SET); // 从文件开头偏移量为3,此时将读写位置移到文件1,5,9,2的1处 Read(fd, &buffer, 4); 其中lseek调用寻找文件中的字节3.在读操作完成之后,buffer中的内容是什么? 答:包含字节:1,5,9,2。 PE1-22. 块特殊文件和字符特殊文件的基本差别是什么? 答:块特殊文件包含被编号的块,每一块都可以独立地读取或者写入。而且可以定位于任何块,并且开始读出或写入。这些对于字符特殊文件是不可能的。 PE1-29. 下面是单位转换练习: (a)一微年是多少秒? (b)微米常称micron.那么gigamicron是多长? (c)1TB存储器中有多少字节? (d)地球的质量是6000 yottagram,换算成kilogram是多少? 答:这些都可以直接转换: (a) micro year = 10-6X 365 X 24 X 3600 = 31.536 sec。 (b) 1km或者1000。 (c)有240字节,也就是1,099,511,627,776 字节。 (d)它是6 X 1024公斤。 第二章:进程与线程 1.进程的概念。 答:进程是对正在运行的程序的一个抽象。是容纳运行一个程序所需要的所有信息的容器。也可以说一个进程就是就是一个正在运行的实例。 2.进程的三种基本状态。 运行态(该时刻进程实际占用CPU)。 就绪态(可运行,但因为其他进程正在运行而暂时停止)。 阻塞态(除非某种外部事件发生,否则进程不能运行)。

操作系统答案解析

1.1什么是操作系统?用自己的话谈谈你对操作系统概念的认识与理解。 一、我的定义:计算机系统可分为四个部分:硬件、操作系统、应用程序和用户,操作系统是其中最重要的一部分。此外,操作系统也是系统软件中的第一软件。它管理和控制计算机系统中的硬件及软件资源、合理的组织计算机工作流程,以便有效利用这个资源为用户提供一个功能强大、使用方便和可扩充的工作环境,从而在计算机和用户之间起到接口作用。 操作系统在计算机系统中充当计算机硬件系统与应用程序之间的界面,所以,操作系统既面向系统资源又面向用户。面向系统资源,操作系统必须尽可能提高资源利用率;面向用户,操作系统必须提供方便易用的用户界面。 (1)系统方面:操作系统是对计算机资源管理;这些资源包括硬件和软件。操作系统向用户提供了高级而调用简单的服务,掩盖了绝大部分硬件设备复杂的特性和差异,使得用户可以免除大量的乏味的杂务,而把精力集中在自己所要处理的任务上。 (2)软件方面:操作系统是程序和数据结构的集合。操作系统是直接和硬件相邻的第一层软件,它是大量极其复杂的系统程序和众多的数据结构集成的。 (3)用户方面:操作系统是用户使用计算机的界,是用户与计算机硬件之间的接口,一般可以分为三种:命令方式,系统调用,图形界面。

二、它的功能:操作系统具有五大管理功能,即文件管理、存储管理、 信息管理、设备管理和处理机管理此外,操作系统还具有提供良好用户界面的功能,因为操作系统是计算机与用户之间的接口,最终是用户在使用计算机,所以它必须为用户提供一个良好的用户界面。用户界面的好坏是直接关系到操作系统能否得到用户认可的一个不容忽略的关键问题。界面主要有三种:命令界面、程序界面和图形界面。 1.文件管理 操作系统的文件管理子系统是最接近用户的部分,它给用户提供一个方便、快捷、可以共享、同时又提供保护的对文件的使用环境。 2.存储管理 存储管理涉及系统另一个紧俏资源——内存,它一方面要为系统进程及各个用户进程提供其运行所需要的内存空间,另一方面还要保证各用户 进程之间互不影响,此外,还要保证用户进程不能破坏系统进程,提供内 存保护。 3.信息管理 主要解决内存分配、保护和扩充的问题; 4.设备管理 主要是对计算机系统中的输入输出等各种设备的分配、回收、调度和控制,以及输入输出等操作; 5.处理机管理 操作系统处理机管理模块的主要任务是确定对处理机的分配策略,实施对进程或线程的调度和管理。 三、它的种类:计算机上使用的操作系统的种类很多,但基本 类型可划分为三类:批处理操作系统、分时操作系统、实时操作系统。此外还有网络操作系统、分布式操作系统、个人操作系统等等 四、它的特性:操作系统有以下五方面特性 1.可靠性

现代操作系统第四版 第二章 答案

现代操作系统第二章进程与线程习题 1. 图2-2中给出了三个进程状态,在理论上,三个状态可以有六种转换,每个状态两个。但是,图中只给出了四种转换。有没有可能发生其他两种转换中的一个或两个 A:从阻塞到运行的转换是可以想象的。假设某个进程在I/O上阻塞,而且I/O结束,如果此时CPU空闲,该进程就可以从阻塞态直接转到运行态。而另外一种转换(从阻塞态到就绪态)是不可能的。一个就绪进程是不可能做任何会产生阻塞的I/O或者别的什么事情。只有运行的进程才能被阻塞。 2.假设要设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换。CPU需要哪些信息请描述用硬件完成进程切换的工作过程。 A:应该有一个寄存器包含当前进程表项的指针。当I/O结束时,CPU将把当前的机器状态存入到当前进程表项中。然后,将转到中断设备的中断向量,读取另一个过程表项的指针(服务例程),然后,就可以启动这个进程了。 3.当代计算机中,为什么中断处理程序至少有一部分是用汇编语言编写的 A:通常,高级语言不允许访问CPU硬件,而这种访问是必需的。例如,中断处理程序可能需要禁用和启用某个特定设备的中断服务,或者处理进程堆栈区的数据。另外,中断服务例程需要尽快地执行。(补充)主要是出于效率方面的考量。中断处理程序需要在尽量短的时间内完成所需的必要处理,尽量减少对线程/程序流造成的影响,因此大部分情况下用汇编直接编写,跳过了通用编译过程中冗余的适配部分。 4.中断或系统调用把控制转给操作系统时,为什么通常会用到与被中断进程的栈分离的内核栈 A:内核使用单独的堆栈有若干的原因。其中两个原因如下:首先,不希望操作系统崩溃,由于某些用户程序不允许足够的堆栈空间。第二,如果内核将数据保留在用户空间,然后从系统调用返回,那么恶意的用户可能使用这些数据找出某些关于其它进程的信息。 5.一个计算机系统的内存有足够的空间容纳5个程序。这些程序有一半的时间处于等待I/O的空闲状态。请问CPU时间浪费的比例是多少 A:^5 =%

现代操作系统--作业题整理演示教学

注:标有“操作系统第二版中文版答案”的答案是从操作系统第二版中文答案的电子书上摘抄的,剩下的是非标准答案(可以忽略~~)。有几道题没有写。以下的相关文档仅供参考!祝各位同学考试愉快! 第一章:引论(P44) 1、什么是多道程序设计? 答:多道程序就是CPU在内存中多个进程之间迅速切换。它一般被用来使CPU 保持忙碌,当有一个或多个进程进行I/O时。(操作系统第二版中文答案) 2、什么是SPOOLing?读者是否认为将来的高级个人计算机会把SPOOLing作为标准功能? 答:SPOOLing是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。(回答:什么是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大型机。现在这种思想已经消亡了还是继续活跃着? 答:它依然存在。例如:Interl以各种各样的不同的属性包括速度和能力消耗来产生Pentium I,II,III和4。所有这些机器的体系结构都是兼容的,仅仅是价格上的不同,这些都是家族思想的本质。(操作系统第二版中文答案) 5、缓慢采用GUI的一个原因是支持它的硬件的成本(高昂)。为了支持25行80列字符的单色文本屏幕应该需要多少视频RAM?对于1024*768像素24位色彩位图需要多少视频RAM?在1980年($5/KB)这些RAM的成本是多少?现在它的成本是多少? 答:25*80字符的单色文本屏幕需要2000字节的缓冲器。1024*768像素24位颜色的位图需要2359296字节。1980年代这两种选择将分别地耗费$10和$11520。而对于当前的价格。将少于$1/MB。(操作系统第二版中文答案) 8、考虑一个有两个CPU的系统,并且每个CPU有两个线程(超线程)。假设有三

高级操作系统答案

一、解释 1、分布式系统: 分布式系统是一些独立的计算机的集合,对该系统的用户来说,系统就像一台计算机一样,即:由大量CPU组成的计算机系统。这个定义有两方面的含义:第一,从硬件角度看,每台计算机都是自主的;第二,从软件角度看,用户将整个系统视为一台计算机。 2、微内核的主要任务 微内核具有更好的灵活性。主要提供四种服务: (1) 进程间的通信机制。 (2) 某些内存管理功能。 (3) 少量的低层进程管理和调度。(4) 低层输入和输出服务。 3、A TM对分布式系统的影响 A、延时:需要新的协议和系统结构处理 B、流量控制:信元淹没 C、阻塞控制:防止数据丢失 4、原子事务的基本特性 事务具有四个重要特性: (1)原子性(Atomic):对外界来说,事务的发生是不可分割的 (2)一致性(Consistent):事务不会破坏系统的恒定 (3)独立性(Isolated):并发的事务不会互相干扰 (4)持久性(Durable):一旦事务提交,所做的改变永远有效 5、并行透明性 并行透明性就是系统的活动可以在用户没有感觉的情况下并行发生(同时发生),即整个分布式并行服务器在用户看起来就像一个传统的单处理机分时系统。 6、请说出微内核优于单内核的两个优点 答:(1)微内核系统具有高度的模块化,对于每一个服务都有一个定义好的借口,每一

个服务程序对所有客户来说都是可以访问的,且和位置无关。 (2)微内核系统具有很高的灵活性,易于实现、安装和调试新的服务程序,因为增加或者改变一个服务程序不需要像有一个单内核那样停止系统和启动一个新的内核。 二、计算题 1、一个A TM系统以OC-3的速率传递信元,每个包48字节长,刚好放进一个信元, 一个中断耗时1μs,CPU用于中断处理的时间是多少?如果包长是1024字节呢? 答:OC-3的数据传输速率为155.520Mbps,由题意可知,一个信元是48字节。可得每秒传递包(信元)的数目为:((155.520*1024*1024)bps/8)/53=384609.76每进入一个包产生一次中断,一个中断耗时1μs,一秒内共产生384609.76个中断。CPU用于中断处理的时间是:1*10-6s*384609.76≈0.38s。 如果包长是1024字节,一个包可拆分为22个信元。每秒传递包的数目为:384609.76/22≈17482 CPU用于中断处理的时间是:1*10-6s*17482≈0. 017s. 2、假设一个空RPC(0字节数据)需时间1.0ms,每增加1k数据,时间增加1.5ms。如 果要从文件服务器读32k的数据,请计算一次读取32k数据的RPC所需的时间和 32次读取1k数据的RPC所需的时间? 解(1)由题知我们记一次读取32k数据的RPC所需的时间记为T则T=1.0+32*1.5=49ms。故一次读取32k数据的RPC所需的时间是49ms。 (2)32次读取1k数据所需的时间记为T1 则T1=32*(1.0+1.5)=80ms, 故32次读取1k所需的时间为80ms。 3、考虑一个分布式系统中的两台机器。这两台机器的时钟假设都每毫秒滴答1000次, 但实际上只有一个是这样,而另一个一毫秒仅滴答990次,如果UTC每分钟更新一 次那么时钟的最大偏移量将是多少? 答:第二个时钟每秒滴答990,000次,每秒提供了一个10毫秒的误差,这个误差在一分钟已增加到600毫秒。 4、如果要求的数据在缓存中,收到任务请求,分配这个工作,并做相应的处理需要15 毫秒;如果要进行磁盘读写,并且进行读写占用1/3的时间,则需要多使用75毫

相关文档
相关文档 最新文档