当前位置:文档之家› 现代操作系统--作业题整理演示教学

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

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

注:标有“操作系统第二版中文版答案”的答案是从操作系统第二版中文答案的电子书上摘抄的,剩下的是非标准答案(可以忽略~~)。有几道题没有写。以下的相关文档仅供参考!祝各位同学考试愉快!

第一章:引论(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。

答:进程中线程是相互协作的,而不是相互独立的。如果放弃了是为了应用程序,那么线程将放弃CPU。毕竟,通常是同一个程序员写的代码。(操作系统第二版中文答案)

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

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

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

答:对于时间片轮转调度,该方法不会出现问题。L迟早会运行,而且最终将离开其临界区。对于优先级调度,L永远得不到运行;而对于时间片轮转,它将周期性地得到一时间片,因此就有机会离开其临界区。(操作系统第二版中文答案)

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

答:是的,它还是会有用的。当然,它依然是忙等待。(操作系统第二版中文答案)

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

答:如果程序是操作按阶段进行,直到两个进程都完成当前阶段才能进入下一个阶段,这时就应该使用屏障。(操作系统第二版中文答案)

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

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

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

答:雇员之间通过消息传递进行通信:在该例中,消息为订单、食物和袋子。在UNIX中,该4个进程通过管道连接。(操作系统第二版中文答案)

1、为了使A、B两个进程互斥地访问单个缓冲区,应为之设置一个互斥信号量S,初值为1,相应在的P(S),V(S)操作必须分别安排在()的两端。

A、该单缓冲区

B、两进程的临界区

C、两进程的程序段

D、两进程的控制块

2、一个进程可以包含多个线程,各线程()

A、必须串行工作

B、共享分配给进程的主存地址空间

C、共享进程的PCB

D、是独立的资源分配单位

3、PV操作所处理的变量是()

A、锁变量

B、整型信号量

C、记录型信号量

D、控制变量

4、为了使两个进程能同步运行,最少需要()个信号量。

A、1

B、2

C、3

D、4

5、共享变量是指()访问的变量。

A、只能被系统进程

B、只能被多个进程互斥访问的变量

C、只能被用户进程

D、可被多个进程

6、临界区是指并发进程中访问共享变量的()。

A、管理信息

B、数据

C、信息存储

D、程序

7、多项选择:线程是操作系统的概念,已具有线程管理的操作系统有()。

A、WINDOWS32

B、OS/2

C、Windows NT

D、DOS6.22

E、Mach

8、多项选择:一个进程向其他进程发送消息时,应组织好一封信件,内容包括()。

A、接收者名

B、发送者名

C、具体信息

D、等不等回信标志

E、回信存放地址

9、在具有n个进程的系统中,允许m个进程(n≥m≥1)同时进入它们的临界区,其信号量S的值的变化范围是_________,处于等待状态的进程数最多________个。

10、线程与进程的根本区别是把进程作为______单位,而线程是_________单位。答案:

1、B

2、B

3、B

4、B

5、B

6、D

7、BCE

8、BCDE

9、n-m≤S≤m n-m

10、资源分配调度和执行

第三章:存储管理(P139)

2、交换系统通过紧缩来消除空闲区。假设有很多空闲区和数据段随机分布,并且读或写32位长的字需要10ns的时间,紧缩128MB大概需要多少长时间?为了简单起见,假设空闲区中含有字0,内存中最高地址处含有有效数据。

答:几乎整个内存都必须复制,也就是要求读出每一个内存字,然后重写到不同的位置。读4个字节需要10nsec,因此读1个字节需2.5nsec,而还要话费2.5nsec 用于重写,因此,对于每个字节的压缩需要5nsec。其速率为200,000,000字节

/sec。为了复制128MB(2^27 字节,也就是大约1.34*10^8字节),该计算机需要2^27 / 200,000,000sec,也就是大约671msec。该数字是稍微悲观的因为如果内存地步的最初的空间为k字节,那么该k字节无需复制。不过,如果有许多空间和许多数据碎片,因此空洞将非常小,k也就非常小,而误差也非常小。(操作系统第二版中文答案)

3、请比较用位图和链表两种方法来记录空闲内存所需的存储空间。128MB的内存以n字节为单元分配。对于链表,假设内存中数据段和空闲区交替排列,长度均为64KB。并假设链表中的每个结点需要32位的内存地址、16位长度和16位下一个结点域。这两种方法分别需要多少字节的存储空间?哪种方法更好?答:位图:128MB(2^27 字节)的内存以n字节为单元分配,则可以分成(128*2^20)/n = 2^27 /n 个单元,8个单元需要1字节的位图,即总需要 2^27 /8n字节的位图。所以记录内存需要的存储空间大小为:2^27 + 2^27 /8n = 2^27 (1 + 1/8n) 字节;

链表:128MB的内存可有(128MB/64KB = 2^11)个区域,一个节点需要(32 + 16 +16)/8 = 8 字节,所以记录内存需要的存储空间大小为:2^11 * 8 + 2^27 = 2^27 (1 +1/2^13 ) = 2^27 (1 +1/(8*2^10) );

当n < 2^10字节(即1KB)时,位图 > 链表,则使用链表;当n > 1KB时,位图 < 链表,则使用位图。

4、在一个交换系统中,按内存地址排列的空闲区大小是:10KB、4KB、20KB、18KB、7KB、9KB、12KB和15KB。对于连续的段请求:a)12KB,b)10KB,c)9KB。使用首次适配算法,将找出哪个空闲区?使用最佳适配、最差适配、下次适配算法呢?答:首次适配:20KB,10KB,18KB;

最佳适配:12KB,10KB,9KB;

最差适配:20KB,18KB,15KB;

下次适配:20KB,18KB,9KB。(操作系统第二版中文答案)

7、考虑下面的C程序:

int X[N];

int step = M;//M是某个预定义的常量

for(int i = 0;i < N;i +=step)X[i] = X[i] +1;

a)如果这个程序运行在一个页面大小为4KB且有64个TLB表项的机器上时,M 和N取什么值会使得内层循环的每次执行都会引起TLB失效?

b)如果循环重复很多遍,结果会和a)的答案相同吗?请解释。

答:a)M的最小值是4096,才能使内层循环的每次执行时都引起TLB失效,N的值只会影响到X的循环次数,与TLB失效无关。

b)M的值应该大于4096才能在内层循环每次执行时引起TLB失效,但现在N的值要大于64K,所以X会超过256KB。

10、假设一个机器有48位的虚拟地址和32位的物理地址。

a)假设页面大小是4KB,如果只有一级页表,那么在页表里有多少页表项?请解释。

b)假设同一系统有32个TLB表项,并且假设一个程序的指令正好能放入一个页,

相关主题
文本预览
相关文档 最新文档