注:标有“操作系统第二版中文版答案”的答案是从操作系统第二版中文答案的电子书上摘抄的,剩下的是非标准答案(可以忽略~~)。有几道题没有写。以下的相关文档仅供参考!祝各位同学考试愉快! 第一章:引论(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有两个线程(超线程)。假设有三
个线程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-阶段管道,每阶段1nsec,也将执行对每秒十亿条指令。因为无论哪种情况,管道末端输出的指令数都是一样的。(操作系统第二版中文答案)
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 .
14、陷阱和中断的主要差别是什么?
答:陷阱是由程序造成的,并且与它同步。如果程序一而再地被运行,陷阱将总在指令流中相同的位置的精确发生。而中断则是由外部事件和其他时钟造成的,不具有重复性。(操作系统第二版中文答案)
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.(操作系统第二版中文答案)
22、块特殊文件和字符特殊文件的基本差别是什么?
答:块特殊文件包含被编号的块,每一块都可以独立地读写或者写入。而且可以定位于任何块,并且开始读入或写入。这些对于字符特殊文件是不可能的。(操作系统第二版中文答案)
25、对程序员而言,系统调用就像对其他库过程的调用一样。有无必要让程序员了解哪一个库过程导致了系统调用?在什么情形下,为什么?
答:就程序逻辑而言,库例程调用哪个系统调用是没有关系的。但是,如果需要考虑性能问题,无需系统调用就可以完成的任务将使进程运行更快。所有的系统
调用都会导致用户环境和内核环境的切换开销。更进一步,在多用户系统中,在系统调用完成之前,操作系统可能调度到其他的进程,这将使得调用过程的处理更加迟缓。(操作系统第二版中文答案)
1、于操作系统,下列叙述不正确的是( )。 A、管理系统资源 B、控制程序执行
C、改善人机界面 D、提高用户软件运行速度 2、以下哪个系统不是基本的操作系统( ). A、分时操作系统 B、实时操作系统 C、分布式操作系统 D、多道批处理系统 3、计算机系统由__________和__________组成。
4、分时操作系统具有的四个主要特点是同时性、 _________、__________和_________。
5、多道程序设计的根本目标是( )。
6、多项选择:操作系统设计目标是( )。 A、管理系统资源 B、提高安全性
C、方便用户使用系统 D、使系统能高效工作
7、在( )的控制下,计算机系统能及时处理由过程控制反馈的数据,并作出响应。
A、批处理操作系统 B、实时操作系统 C、分时操作系统 D、多处理机操作系统
8、多项选择:引入多道程序设计的主要目的在于( )。
A、提高实时响应速度 B、充分利用处理机,减少机空闲时间 C、有利于代码共享 D、充分利用外围设备 E、减少存储器碎片
9、计算机发展到第三代,操作系统已成为软件的一个重要分支,最早的操作系统是()。
10、设计实时操作时( )不是主要的追求目标。
A、安全可靠 B、资源利用率 C、及时响应 D、快速处理
答案:
1、D 2、C 3、硬件子系统 软件子系统 4、独立性 及时性 交互性 5、提高计算机系统的工作效率 6、C D 7、B 8、BD
9、批处理操作系统 10、B
第二章:进程与线程(P95)
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.5^2 = 0.75, 则T = (10 + 10) / 0.75 = 26.7(分钟).
7、如果创建一个多线程进程,若子进程得到全部父进程线程的副本,会出现问题。假如原有线程之一正在等待键盘输入,现在则成为两个线程在等待键盘输入,每个进程有一个。在单线程进程中也会发生这种问题吗?
答:不会。如果单线程进程在键盘上阻塞,就不能创建子进程。(操作系统第二版中文答案)
9、在本章中,我们介绍了多线程的web服务器,说明它比单线程服务器和有限状态机服务器更好的原因。存在单线程服务器更好一些的情形吗?请给出一个例子。
答:是的。如果服务器是完全CPU绑定的,则不需要多线程。这只会增加不必要的复杂性。假设某个百万人口区域的电话查号系统(类似于114),如果每个(姓名,电话号码)记录为64个字符,整个的数据库则为64MB,这就是很容易全部读入服务器内存中以提高快速的查询。(操作系统第二版中文答案)
11、为什么线程要通过调用thread_yield自愿放弃CPU?毕竟,由于没有周期性的时钟中断,线程可以不交回CPU。