当前位置:文档之家› 操作系统 第二版中文版答案

操作系统 第二版中文版答案

操作系统 第二版中文版答案
操作系统 第二版中文版答案

MODERN OPERATING SYSTEM

第一章答案

1. 操作系统必须向用户提供一台扩展(即,实际上)的机器,和它必须管理I/O设备和其它系统资源。

2. 多道程序就是CPU在内存中多个进程之间迅速切换。它一般被用来使CPU保持忙碌,当有一个或多个进程进行I/O时。

3. 输入spooling是作业中的读入技术,例如,从卡片在磁盘,这样当当前执行的进程完成时,将等候CPU。输出spooling在打印之前首先复制打印文件,而非直接打印。在个人计算机上的输入spooling很少,但是输出spooling非常普遍。

4. 多道程序的主要原因是当等候I/O完成时CPU有事可做。如果没有DMA,I/O操作时CPU 被完全占有,因此,多道程序无利可图(至少在CPU利用方面)。无论程序作多少I/O操作,CPU都是100%的忙碌。当然,这里假定主要的延迟是数据复制时的等待。如果I/O很慢的话,CPU可以做其它工作。

5. 第二代计算机没有必要的硬件保护操作系统免受恶意的用户程序的侵害。

6. 它依然存在。例如,Intel以各种各样的不同的属性包括速度和能力消耗来生产Pentium I, II, III和4。所有这些机器的体系结构都是兼容的,仅仅是价格上的不同,这些都是家族思想的本质。

7. 25 X 80字符的单色文本屏幕需要2000字节的缓冲器。1024 X 768象素24位颜色的位图需要2359296字节。1980年代这两种选择将分别地耗费$10和$11520。而对于当前的价格,将少于$1/MB。

8. 选择(a),(c),(d)应该被限制在内核模式。

9. 个人的计算机系统总是交互式的,而且经常只有一个用户。而大型机系统几乎总有许多用户强调批处理或者分时。除了对所有资源的有效使用,大型机系统上的保护更加重要。

10. 从管道中每纳秒出现一条指令。意味着该机器每秒执行十亿条指令。它对于管道有多少个阶段全然不予理睬。即使是10-阶段管道,每阶段1 nsec,也将执行对每秒十亿条指令。因为无论那种情况,管道末端输出的指令数都是一样的。

11. 原稿包含80 X 50 X 700 = 2800000字符。当然,这不可能放入任何目前的CPU中,而且对于1MB的cache来说也太大了,但是如果可能的话,在寄存器中只需2.8msec,在Cache 中需要5.8msec。整本书大约有2700个1024字节的数据块,因此从磁盘扫描大约为27秒,从磁带扫描则需2分钟7秒。当然,这些时间仅为读取数据的时间。处理和重写数据将增加时间。

12. 从逻辑上说,边界寄存器使用虚拟地址或者物理地址没有任何关系。然而,前者的性能更好。如果使用虚拟地址,虚拟地址和基址寄存器的相加,与比较可以同时开始,而且可以

并行。如果使用物理地址,相加完成之前是不能进行比较的,这就增加了存取时间。

13. 也许。如果调用者取回控制,并且在最终发生写操作时立即重写数据,将会写入错误的数据。然而,如果驱动程序在返回之前首先复制将数据复制到一个专用的缓冲器,那么调用者可以立即继续执行。另一个可能性是允许调用者继续,并且在缓冲器可以再用时给它一个信号,但是这需要很高的技巧,而且容易出错。

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

15. Base = 40000,Limit = 10000。按照本书中描述的方法Limit = 50000是不正确的。这种方法也是可以执行的,不过这样做将等待addree + Base完成后才能开始边界检查,将会使计算机速度减慢。

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

17. 装配文件系统将使得装配目录中已有的任何文件都不可访问,因此装配点通常都是空的。然而,系统管理人员可能需要将某些位于被装配目录中的非常重要的文件复制到装配点,使得他们在进行设备检查或修理时,可以在紧急事件中的普通路径上找到这些文件。

18. 如果进程表中没有空闲的槽(或者没有内存和交换空间),Fork将失败。如果所给的文件名不存在,或者不是一个有效的可执行文件,Exec将失败。如果将要解除链接的文件不存在,或者调用Unlink的进程没有权限,则unlink将失败。

19. 如果fd不正确,调用失败,将返回.1.。同样,如果磁盘满,调用也失败,要求写入的字节数和实际写入的字节数可能不等。在正确终止时,总是返回nbytes。

20. 包含字节:1,5,9,2。

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

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

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

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

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

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

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

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

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

26. 这些都可以直接转换:

(a) micro year = 106 X 365 X 24 X 3600 = 31.536 sec。

(b) 1km。

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

(d)它是6 X 1024公斤。

SOLUTIONS TO CHAPTER 2 PROBLEM

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

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

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

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

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

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

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

6. 当线程停止时,其值保留在寄存器中。当进程停止时寄存器必须被保存。分时线程与分时进程没有区别,因此每个线出都需要其自己的寄存器保存区。

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

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

9. 进程中的线程是相互协作的,而不是相互对立的。如果放弃是为了应用程序,那么线程将放弃CPU。毕竟,通常是同一个程序员写的代码。

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

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

12. 是的。如果服务器是完全CPU绑定的,则不需要多线程。这只会增加不必要的复杂性。假设某个百万人口区域的电话查号系统(类似于114),如果每个(姓名, 电话号码)记录为64个字符,整个的数据库则为64MB,这就很容易全部读入服务器内存中以提供快速的查询。

13. 指针是确实必要的,因为全局变量的大小是未知的。它可能是从字符到浮点数数组的任何类型。如果保存其值,就不得不把其大小传递给create_global,这都没有问题,但是必须将其类型作为set_global的第二个参数,那么read_global返回值的类型是什么呢?

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

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

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

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

18. 竞争条件是指如下的情形:两个(或多个)进程将要执行某些动作,其执行依赖于准确的定时。如果某个进程首先执行,所有事件顺利完成,但是如果另一个先执行,则会产生致命的错误。

19. 是。模拟的计算机可能是多道程序的。例如,当进程A运行时,它读出某些共享变量。然后,发生一个模拟时钟计时,而进程B运行。它也读出相同的变量。接着,它把该变量加1。当进程A运行时,如果它也是给变量加1,就会产生竞争条件。

20. 是,它还是有用的。当然,它依然是忙等待。

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

22. 当然可以。将内存字作为标志,0表示没有进程使用临界变量,1表示有某个进程正在使用。将1放入寄存器中,并且交换内存字和寄存器。如果寄存器在交换后为0,则准许访问。如果它包含1,则拒绝访问。当进程完成时,将0存储在内存标志中。

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

24. 将每个计数信号量与2个二值信号量联合:M用于互斥;B用于阻塞。另外,每个计数

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

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

26. 对于时间片轮转调度,该方法不会出现问题。L迟早会运行,而且最终将离开其临界区。对于优先级调度,L永远得不到运行;而对于时间片轮转,它将周期性地得到一时间片,因此就有机会离开其临界区。

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

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

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

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

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

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

33. 变种1:读者优先。当读着活跃时,写者都无法启动。当一个新的读者出现时,它可以立即开始除非当前有写者是活跃的。当写者完成时,如果有读者在等待,他们全都启动,无论是否有写者存在。

变种2:写者优先。当有写者等待时,读者都不会开始。当最后活跃的进程结束,如果有作者,就启动它;否则,所有读者(如果有)全部开始。

变种3:平衡的版本。当有读者是活跃的,新的读者可以立即开始。当写者完成时,新的写者优先,如果有写者等待的话。也就是说,一旦开始读,就一直读到没有读者为止。同样地,一旦开始作,所有挂起的写者都被允许运行。

34. 它将需要nT sec。

35. 如果进程在列表中出现多次,它在每个周期内得到多个时间片。这种方法可以用来给重

要的进程更多的CPU 时间。但是当该进程阻塞时,最好从可运行进程的列表中将其所有项都删除。

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

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

38. CPU 的效率就是有用的CPU 时间除以整个的CPU 时间。

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

Q

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

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

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.

40. 对于时间片轮转,在头10分钟里,每个作业获得1/5的CPU 时间。在第10分钟时,C 结束。在接下来的8分钟里,每个作业获得1/4的CPU 时间,然后D 完成。然后,在接下来的6分钟内,余下的3个作业各获得1/3的CPU 时间,直到B 结束,以此类推。因此,5个作业的完成时间分别为是10,18,24,28和30,平均为22分钟。

对于优先级调度,B 最先运行,6分钟完成。其它作业分别在第14,24,26和30分钟完成,平均为18.8分钟。

如果作业按A ?E 的次序执行,则分别在第10,16,18,22和30分钟完成,因此,平均为19.2分钟。

最后,最短作业优先调度的完成时间分别为第2,6,12,20和30分钟,平均为14分钟。

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

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

43. 预测值为40/8 + 20/8 + 40/4 + 15/2 = 25。

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

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

SOLUTIONS TO CHAPTER 3 PROBLEM

1. 在美国的,假设有三个或更多候选人竞选总统。每个人都不足多数,又都不愿放弃。这就是死锁。

2. 如果打印机在收到整个文件之前开始打印(加速响应),磁盘可能被其他请求文件装满,而其他文件又必须等到第一个文件完成后才能开始,但是磁盘空间又无法接受当前文件。如果后台打印直到整个的文件接受后才开始打印文件,就可以拒绝大的请求。开始打印文件相当于保留打印机;如果将打印机保留到整个文件接受后,整个系统就可以避免死锁。当然无法容纳的文件仍然是死锁的,必须另选其他设备打印较大的文件。

3. 打印机是不可剥夺的;系统在完成前一个作业之前,不能开始打印另一个作业。Spool磁盘是可剥夺的;假设协议允许的话,可以删除未发送完毕的大文件,让用户稍后再发送。

4. 是的,没有任何区别。

5. 是的,还有其他形式的图表。我们声明资源只能由单个的进程占用。由资源方块到进程圆圈的弧线表明该进程拥有该资源。因此,具有从两个或更多弧线的方块意味着所有这些进程都占用该资源,这是与规则不符的。因而,有多重的出弧的方块,而结束于不同的圆圈的任何图表都是不合规则的。从方块到方块的弧,以及从圆圈到圆圈的弧也是违反规则的。

6. 可以将部分资源预留,只能由管理员自己的进程使用,这样就可以运行外壳和程序,对死锁做出评估,以杀死某些进程是系统可以继续运行。

7. 这些变化都不会导致死锁。无论哪种情况,都没有出现循环等待。

8. 资源的自愿放弃非常类似于通过剥夺进行恢复。其主要区别在于计算机进程不能自己解决这种问题。把操作系统作为警察,以覆盖独立进程所服从的一般规则。

9. 该进程请求的资源比系统所有的资源要多。没有什么方法可以获得这些资源,因此无法完成,即使其他进程不再请求资源。

10. 如果系统有两个或多个CPU,两个或多个进程可以平行,就可导致斜向的轨迹。

11. 是的。可以在三维中实现。Z轴用于表示第三个进程执行的指令。

12. 该方法只能在预先确知什么时候使用资源的情况下才能进行调度。在实践中,这是很少见的。

13. D的请求是不安全的,而C的请求是安全的。

14. 某些状态是既非死锁也不安全的,但是这些状态会导致死锁状态。例如,假设有4种资源:磁带,绘图仪,扫描仪和CD-ROM,以及竞争这些资源的3个进程。有下列的情形:已分配请求矩阵可用资源

A:2 0 0 0 1 0 2 0 0 1 2 1

B:1 0 0 0 0 1 3 1

C:0 1 2 1 1 0 1 0

该状态并未死锁,因为还可以执行很多行动,例如,A仍然可以得到2台打印机。然而,如果每个进程都请求其剩余需求,就会导致死锁。

15. 该系统是不会死锁的。假设每个进程都已占用1个资源,还有1个资源是空闲的。任一进程都可以请求该资源并且得到它,然后该进程能够完成并且释放2个资源。因此,死锁是不可能的。

16. 如果某个进程有m个资源,该进程就能完成,而不会造成死锁。因此,最坏的情况是所有进程都占又m – 1个资源,而且都再申请另一个。如果系统还剩余1个资源,其中一个进程就能完成,并且释放其所有资源,同时也可以让其余进程也完成。因此,避免死锁的条件就是r≥p(m - 1) + 1。

17. 不会。D仍然能完成。当它完成后,它将归还足够的资源使得E(或者A)完成,以此类推。

18. 如果是3个进程,每个都能有2个驱动器。如果有4个进程,驱动器分配为(2, 2, 1, 1),头两个进程可以完成。如果为5个进程,分配为(2, 1, 1, 1, 1),第一个进程仍然可以完成。如果有6个进程,每个都占用1个磁带驱动器,而且再申请另一个,就会死锁。因此,只要n < 6,系统就不会死锁。

19. 可用资源的向量与矩阵中一行的比较需要m次操作。该步骤必须重复n次以查找某个可以完成的进程,并且标记该进程。因此,标记进程需要mn级操作。对所有n个进程重复该算法意味着需要mn2次操作。

20. 需求矩阵如下:

0 1 0 0 2

0 2 1 0 0

1 0 3 0 0

0 0 1 1 1

如果x = 0,立即死锁。如果x = 1,进程D能完成。当它完成时,可用向量为11221。不幸的是,还是死锁。如果x = 2,在D运行之后,可用向量为11321,而C就能运行。C完成后,归还其资源,可用向量是22331,这样B也能运行并且完成,然后A运行且完成。因此,为了避免死锁,x的最小值为2。

21. 是。假设所有邮箱都是空的。此时,A发送到B并且等待应答,B发送到C并且等待应答,而C发送到A并且等待应答。这样,所有死锁的条件都满足了。

22. 假设进程A要求按a, b, c申请记录。如果进程B同样先请求a,其中某个进程将得到它,而另一个将被阻塞。这种情形总是不会造成死锁的,因为,获得记录a的进程现在没有干扰而运行结束。在其余4种组合中,某些可能导致死锁而某些不会死锁。6种情况如下:

a b c不会死锁

a c

b 不会死锁

b a c可能死锁

b c a可能死锁

c a b可能死锁

c b a可能死锁

因为6种组合中有4个可能导致死锁,因此,有1/3机会避免死锁,2/3机会可能死锁。

23. 两阶段加锁可以消除死锁,但是引入了潜在的饥饿。进程必须不断测试,而无法获取其所有记录。应该设置其尝试的上限。

24. 为了避免循环等待,按照账号号码对资源(也就是账号)进行编号。在读入输入数据行后,

该进程锁首先对低编号的账号加锁,锁定后,再锁另一个。由于没有进程会等候比锁定账号更低的账号,因此不会循环等待,因而也不会死锁。

25. 按照如下方法改变请求新资源的方案。如果某进程请求某个新资源而且该资源是可用的,它将得到该资源,并且保留其已有的。如果新资源不可用,释放其所有已占用资源。此时,死锁是不可能的,并且不会出现获得新资源而失去已有资源的危险。当然,进程只有在可能释放资源的情况下才行。

26. 我给的是F(不及格)。该进程做什么? 由于它明显需要资源,它只不过再次申请并且再次阻塞。并不比一直阻塞更好。事实上,它可能更糟,因为系统需要记录各竞争进程等待的时间,而把新近释放的资源分配给等待最久的进程。而周期性地计时和不断尝试,使得进程失去其资历。

27. 如果两个程序都是先申请得到Woofer,计算机将得到无尽序列的饥饿:请求Woofer,取消请求,要求Woofer,取消要求等等。如果其一要求得到狗屋,而另一个要求得到狗,就是死锁,这样双方发现和然后重来,但是在下一个周期再次重复。无论那种情况,如果两台计算机被编程首先请求狗或者狗屋,不是饥饿就是死锁。这里两者之间没什么区别。在大多数死锁问题中,饥饿似乎并不是严重问题,只需引入随机延迟就使得饥饿几乎不可能出现。不过,该方法在此没有作用。

SOLUTIONS TO CHAPTER 4 PROBLEM

1. 4个进程空闲的总量为1/16,因此,CPU的空闲时间也是1/16。

2. 如果每个作业都有50%的I/O等待,那么没有竞争的情况下,需要花费20分钟完成。如果顺序运行,第二个将在第40分钟完成。对于2个作业,CPU近似利用率为1 - 0.52。因此,每一分钟实际时间,每个作业获得0.375分钟CPU时间。为了获得10分钟CPU时间,每个作业必须运行10/0.375分钟,大约为26.67分钟。所以,顺序运行的作业需要40分钟完成,但是并行在26.67分钟之后完成。

3. 几乎整个内存都必须复制,也就是要求读出每个内存字,然后重写到不同的位置。读4个字节需10 nsec,因此读1个字节需2.5 nsec,而还要花费2.5 nsec用于重写,因此,对于每个字节的压缩需要5 nsec。其速率为200,000,000字节/sec。为了复制128 MB(227字节,也就是大约1.34×108字节),该计算机需要227/200,000,000 sec,也就是大约671 msec。该数字是稍微悲观的,因为如果内存底部的最初的空洞为k字节,那么该k字节无需复制。不过,如果有许多空洞和许多数据碎片,因此空洞将非常小,k也就非常小,而误差也非常小。

4. 位映像每个分配单元需要1位。对于227/n个分配单元,需要224/n字节。链表总共有227/216 = 211个节点,每个节点8字节,也就是总共214字节。对于小的n,链表较好。对于大的n,位映像较好。n为1 KB时,两者相等。

5. 首次适配分别为20 KB,10 KB,18 KB。最佳适配为12 KB,10 KB,和9 KB。最差适配为20 KB,18 KB和15 KB。下次适配为20 KB,18 KB和9 KB。

6. 实际内存使用物理地址。也就是内存芯片对之作出反应的总线数字。虚拟地址为对应于进程地址空间的逻辑地址。因此,16位字的机器可以生成的虚拟地址最高达64K,无论该机器的内存是多于还是少于64 KB。

7. 对于4-KB页尺寸(页号,偏移)对分别为(4, 3616),(8, 0)和(14, 2656)。对于8-KB页尺寸分别为(2, 3616),(4, 0)和(7, 2656)。

8. (a) 8212

(b) 4100

(c) 24684

9. 他们创建一个MMU并将其插入到8086和总线之间。因此,所有进入8086的物理地址都作为虚拟地址。然后,MMU将其映射到物理地址上,也就是发送到总线上的地址。

10. 所有进程的整个虚拟地址空间为nv,这就是页面存储所需的。不过,可以在RAM中存储量为r,因此需要的磁盘存储量仅为nv - r。该量比实际所需的要大得多,因为极少有n个进程实际运行,而且这些进程也极少需要其最大允许的虚拟内存。

11. 每k条指令一次缺页,需另加n/k nsec,因此平均的指令时间为10 + n/k nsec。

12. 该页表包含232/213项,也就是524,288项。装载该页表需52 msec。如果某进程得到100 msec,那么载入页表为52 msec,运行时间为48 msec。因此,52%的时间用于载入页表。

13. 20位被用于虚页号,因此偏移还剩12位。页面大小为212 = 4-KB。20位的虚页号也就意味着220页。

14. 页面数只依赖于a,b和c之和。至于它们是如何划分是无关的。

15. 对于一级页表,需要232/212 = 1M页。因此,该页表必需1M项。对于二级页表,主页表有1K项,每项都指向一个二级页格。仅使用了这两个。总共只需3个页格项,一个在顶级页表中,以及每个低级页表中一个。

16. 代码和引用串如下:

LOAD 6144, R0 1(I), 12(D)

PUSH R0 2(I), 15(D)

CALL 5120 2(I), 15(D)

JEQ 5152 10(I)

代码(I)表示指令引用,而(D)表示数据引用。

17. 有效的指令时间为1h + 5(1 - h),h为命中率。因此,要使时间小于2 nsec,h必须至少为0.75。

18. TLB中不需要R位。这里出现的页表明其已被引用;否则,就不会再次出现。因此,R 位完全是多余的。不过,当该项被写回内存时,需要设置内存页表的R位。

19. 相联存储器的本质是同时把多个寄存器的内容与关键字进行比较。对于每个寄存器,必须有一组比较器,将其每一位与搜索的关键字逐位比较。实现这样的设备所需的门(或者晶体管)的数目是寄存器数目的线形函数,因此扩展该设计的费用也是线形增长的。

20. 8-KB页和48-位虚拟地址空间,虚页数为248/213 = 235(大约340亿)个。

21. 内存有228/213 = 32,768页。32K的哈希表的平均链长为1。为了使之小于1,必须使用下一个尺寸65,536项。将32,768项放入65,536格中使得其平均链长为0.5,以保证快速的查询。

22. 这似乎不太可能,除非其程序在编译时是完全可预测其执行的,这并常见也没什么用处。如果编译程序收集关于例程的调用代码的位置信息,这些信息可以链接时被用来重整目标代码,使例程被定位于接近其调用代码。这很有可能做例程与调用代码处于同一页。当然,这对该程序中从许多其它地方的调用没有什么帮助。

23. FIFO的页框如下:

x0172333300

xx017222233

xxx01777722

xxxx0111177

LRU的页框如下:

x0172327103

xx017232710

xxx01773271

xxxx0111327

FIFO发生6次缺页;LRU为7次。

24. 第一个R位为0页将被选择,也就是D。

25. 计数器:

Page 0: 01101110

Page 1: 01001001

Page 2: 00110111

Page 3: 10001011

26. 第一个R = 0且age > τ将被选择。因此从头开始扫描,最前的一页(1620)被清除。

27. 该页的age为2204 – 1213 = 991。如果τ = 400,它肯定地不在工作集中,最近没有被引用,因此,将被清除。τ= 1000就不同了。该页位于工作集中,就不会被清除。

28. 寻道加上旋转延时为20 msec。对于2-KB页,传输时间为1.25 msec,总共为21.25 msec。载入32页需680 msec。对于4-KB页,传输时间为2.5 msec,总计22.50 msec。载入16页需360 msec。

29. NRU移去第2页。FIFO移去第3页。LRU移去第1页。第二次机会移去第2页。

30. PDP-1分页磁鼓的优点是无需旋转延时。每次内存读写都可以节约一半的旋转时间。

31. 正文为8页,数据为5页,而堆栈为4页。该程序无法放入,因为它需要17个4096-字节的页。而对于512-字节的页,就不一样了。正文正好64页,数据33页,而堆栈31页,总共128个512-字节的页,刚好。

32. 如果页面可以共享,就可以出现在两个工作集中。例如,如果某分时系统的2个用户运行同样的编辑程序,程序正文是共享的,而不是拷贝,其中某些页可以同时在每个用户的工作集中。

33. 这是可能的。假设段不在,其保护信息肯定在页表中。如果每个进程都有其自己的页表,那么每个都有其自己保护位。它们就可以是不同的。

34. 该程序有15,000次缺页,每次需额外花费2 msec的处理时间。缺页的总处理时间为30 sec。也就是意味着所使用的60 sec中,一半用于处理缺页,一半用于运行程序。如果两倍的内存运行该程序,却也将减少一半,而处理缺页的时间只需15 sec,因此整个运行时间为45 sec。

35. 如果不能修改程序,则该方法是有效的。如果数据不能被修改,对数据也是有效的。不过,程序通常是不能被修改的,而数据很少不能被修改。如果二进制文件中的数据区被更新的页重写,下次运行程序时,将不包含原来的数据。

36. 该指令可以跨越一页的边界,仅是读指令时就可导致两次缺页。读取内存字也可能跨越一页的边界,又产生2次缺页,总共4次。如果内存字必须挨着排列,该数据字还可能导致一次缺页。

37. 当最后的分配单元不满时,就产生了内部碎片。而外部碎片是指两个分配单元之间被浪费的空间。在分页系统中,最后一页丢失的空间为内部碎片。在纯分段系统中,段之间的某些空间是不可用的。这就是外部碎片。

38. 不用。查找关键字为段号加上虚页号,因此,一次匹配就可以找到该页。

SOLUTIONS TO CHAPTER 5 PROBLEM

1. 在此图中,一个控制器有两个设备。单个控制器可以有多个设备就无需每个设备都有一个控制器。如果控制器变得几乎是自由的,那么只需把控制器做入设备本身就行了。这种设计同样也可以并行多个传输,因而也获得较好的性能。

2. 太简单了。扫描仪最高速率为400 KB/sec。而总线程和磁盘都为16.7 MB/sec,因此磁盘和总线都无法饱和。

3. 这不是一个好主意。内存总线肯定比I/O总线快。一般的内存请求总是内存总线先完成,而I/O总线仍然忙碌。如果CPU要一直等待I/O总线完成,那就是将内存的性能降低为I/O 总线的水平。

4. 每次总线处理都有请求和响应,各需100 nsec,也就是每次200 nsec。这就表明其处理能力为500万/sec。如果每次都是4个字节,总线速率必须到达20 MB/sec。这些处理与4个I/O 设备的事实是不相干的。总线处理为200 nsec,不论是针对相同设备或者不同设备,因此DMA 控制器的通道数有没有关系。总线根本不知道或者也不关心。

5. 一次中断需要入栈34个字。而从中断返回需要把34个字从栈中取出。总耗时为680 nsec。因此,每秒最多处理147万次中断,假设每次中断什么也不做。

6. 在开始中断服务例程时就确认是可以的。而在最后才做的原因是因为中断服务例程的代码都非常短。通过先输出另一个字符和然后确认该中断,如果立即发生另一个中断,打印机将在此中断期间工作,将使得打印稍快。该方法的缺点是当其他中断禁用时,死机时间稍长。

7. 是的。入栈的PC指向第一条未读取的指令。之前的所有指令都已执行,而指向的指令及其后续指令均尚未执行。这就是精确中断的条件。精确中断在单管线的机器上不难实现。只有当指令不按序执行时才会有麻烦,该例不是。

8. 该打印机打印每分钟打印50 X 80 X 6 = 24000个字符,也就是400字符/sec。每个字符使用50 nsec的CPU时间用于中断,因此,每秒总共的中断时间是20 msec。使用中断驱动I/O,余下的980 msec可供其它使用。换句话说,中断耗时只占CPU时间的2%,这几乎不会影响运行的程序。

9. 设备无关性是指以相同的方法访问文件和设备,而与其物理特性无关。如果系统采用一组调用写文件,而使用另一组调用写控制台(终端),那么就不具有设备无关性。

10. (a) 设备驱动程序。

(b) 设备驱动程序。

(c) 设备无关的软件。

(d) 用户级软件。

11. 按照图5-17中的数据,对于软盘,每磁道为9 X 512 X 8 = 36864位。按照每旋转一周200 msec其位速率为184,320位/sec。硬盘平均每磁道281个扇区,因此平均每磁道有281 X 512 X 8 = 1,150,976位。对应于8.33 msec的旋转时间,每秒旋转120周(7200 rpm),因此每秒传输120 X 1,150,976位。也就是大约138M位/sec。软盘的数据率大概是56-Kbps调制解调器的3倍。而硬盘的数据率比快速以太网要快大约38%的。不过,这些计算高估了实际的最高数据速率,因为磁盘上每512字节的数据中包含一些字节的格式化信息,用于识别磁道和扇

区;以及扇区间隔使得速度稍有变化,以防扇区重叠。

13. 如果每次输出都立即分配打印机,某进程可以通过打印机1个字符来冻结打印机,然后休眠一个星期。

14. 该磁盘旋转速率为120 rps,因此每旋转一周需1000/120 msec。对于每次旋转200个扇区,则扇区时间为(1/200) X (1000/120) = 5/120 = 1/24 msec。在1 msec的寻道时间内,将越过24个扇区,因此柱面倾斜应该为24。

15. 如上题所述,扇区时间为1/24 msec。也就意味着该磁盘每秒读取24,000个扇区。而每个扇区为512个字节,其数据速率为12,288,000字节/sec。也就是11.7 MB/sec。

16. RAID level 2不仅可以从故障驱动器来恢复错误位,还可以从未被检测的的瞬时差错中恢复。如果某驱动器发送一个坏数据位,RAID level 2可以纠正,而RAID level 3不能。

17. 0次故障的概率P0为(1 - p)k。1次故障的概率P1为kp(1 - p)k-1。而整个RAID发生故障的概率为1 - P0 - P1。也就是1 - (1 - p)k - kp(1 - p)k-1。

18. 在两个磁极之间会产生磁场。不仅难于使磁场源变小,而且磁场传播迅速,这将导致此行媒体的表面接近磁源或者传感器的机械问题。而半导体激光可以在非常小的地方产生激光,而且激光可以从较远的地方感知这些极小的点。

19. 有可能。如果大多数文件被存储在逻辑上连续的扇区内,那么就可能使得程序有时间以交叉扇区的形式处理刚刚接收的数据,这样当下一请求发出时,磁盘正好在正确的地方。

20. 旋转时间为200 msec。顺序读取所有扇区需要旋转1/2周以到达扇区0,以及旋转2.75周以读取数据(扇区7读取之后,传输完成)。因此,需要旋转3.25周,也就是650 msec。650 msec读取4K,其速率为6302字节/sec。而对于非交叉方式磁盘,需要300 msec读取4K,也就是13,653字节/sec。

21. 也许要,也许不要。如果跨道时磁头移动少于2个扇区,就不需要柱面倾斜。如果大于2个扇区,则需要柱面倾斜。

22. 驱动器容量和传输速率是原来的2倍。寻道时间和平均旋转延时是相同的。

23. 一个相当明显的后果是没有哪个操作系统可以生效,因为这些操作系统都会在原来的分区表位置查找分区。改变分区表格式将使所有操作系统都失败。分区表的唯一方法是同时改变所有操作系统以使用新的格式。

24. (a) 10 + 12 + 2 + 18 + 38 + 34 + 32 = 146 柱面 = 876 msec.

(b) 0 + 2 + 12 + 4 + 4 + 36 +2 = 60 柱面= 360 msec.

(c) 0 + 2 + 16 + 2 + 30 + 4 + 4 = 58 柱面= 348 msec.

28. 一年的平均秒数为365.25 X 24 X 3600 = 31,557,600。计数器大约在232秒之后回绕。232/31,557,600 = 136.1年,也就是大约在2106年2月。当然,到那时所有计算机至少是64位的,因此该情形将不会发生。

29. 每条线需要3200 X 8 = 25,600次采样/sec。对于每次采样1 nsec,每秒钟内每条线都需耗时25.6 msec。如果为39条线程,处理器忙碌时间为39 X 25.6 = 998.4 msec/sec,也就是说该插卡容纳最多39条线。

30. 向RS232终端写入一个字符之后,在它被打印之前,需花费(比较)长的时间。如果只是

等待浪费时间,因此使用中断。而内存映射终端,字符即时被接受,因此中断没有意义。

31. 按照56 Kbps速率,每秒5600次中断,总共5600 X 100 nsec = 560 msec。也就是占用56%的CPU时间。

32. 滚动窗口需要复制59行X 80字符 = 4720字符。复制1个字符(16个字节)需800 nsec,因此整个窗口需要3.776 msec。向屏幕写80个字符需400 nsec,因此滚动和显示新的一行需4.176 msec。也就是大约239.5行/sec。

34. 它应该移动光标到第5行,第7列,然后删除6个字符。该序列为ESC [5; 7 H ESC [6 P。

35. 终端内部嵌入的处理器必须复制所有字符,使之上移。从内部看,终端是内存映射的。这是没办法的,除非使用特殊的硬件。

37. 鼠标的最大速率为200mm/sec,也就是2000 mickeys/sec。如果每次报告为3个字节,输出速率为6000字节/sec。

38. 对于24-位彩色系统,仅能够表示224种颜色。这不是颜色的全部。例如,假设某摄影师以300中纯蓝绘图,每种都有一点区别。那么,而(R, G, B)中的B只有8位,只能表示256种蓝色,而无法表示300种蓝色。

39. (a) 24位真彩RGB中每像素需3个字节,因此该表中的字符为16 X 24 X 3 = 1152字节。

(b) 如果每字节100 纳秒,那么每个字符需1152 X 100 nsec = 115.2 微秒。也就是大约每秒输出8681字符。

40. 重写文本屏幕需要复制2000个字节,也就是20 微秒。重写图形屏幕需要复制1024 x 768 x 3 = 2,359,296字节,大约为23.6毫秒。

41. 在Windows中,OS自己调用处理程序例程。在X Window中,不会发生类似的事情。X 只是获取消息,并在内部处理它。

42. 第一个参数是必需的。首先,坐标是对应于某个窗口的,因此需要hdc来指定窗口,也就是其坐标原点。第二,如果该矩形落在窗口外面,将被截除,因此还需要该窗口的坐标。第三,矩形颜色和其它属性必须由hdc指定。因此,hdc是十分重要的。

43. 显示大小为400 x 160 x 3 = 192,000字节。10 fps也就是1,920,000字节/sec = 15,360,000位/sec。占用100-Mbps快速以太网带宽的15%。

44. 网络带宽是共享的,因此100个用户同时请求不同的数据,1-Mbps的网络将使得每个用户的有效带宽为10-Kbps。对于一个共享网络,Tv节目是多点传送的,因此视频包只需发送一次,无论多少用户在观看都不影响其效果。而如果是100个用户浏览Web,每个用户的性能可能迅速降低。

SOLUTIONS TO CHAPTER 6 PROBLEM

1. 可以使用如下的表示:

/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

2. Windows的方法是使用文件扩展名。每种扩展名对应于一种文件类型,以及某些程序来处理这种类型的文件。另一个方法是记住由哪个程序创建了该文件,然后运行该程序。Macintosh就是用这种方法。

3. 这些系统直接把程序载入内存,并且从word 0(也就是幻数)开始执行。为了避免将header 作为代码执行,幻数是一条BRANCH指令,其目标地址正好在header之上。按这种方法,就可能把二进制文件直接读取到新的进程地址空间,并且从0运行,甚至无需知道header有多大。

4. 如果文件按照记录构造的,而且每个记录的具体位置为关键词,当按照关键词请求记录时,操作系统就会关心记录长度。在这种情况下,系统必须知道记录有多大,才能按照关键词搜索记录。

5. 如果没有open,每次read时都必须指定要打开的文件名。然后,系统必须读取该文件的i-节点,即使该节点已经在cache中。可能出现的问题就是来回从磁盘读入i-节点。这多少显得有点笨,不过还是可以运行的。

6. 不需要。如果想要再次读取文件,只需随机地访问字节0即可。

7. 是的。rename调用不会改变文件的创建时间和最后的修改时间,但是创建一个新的文件,其创建时间和最后的修改时间都会改为当前的系统时间。另外,如果磁盘满,复制可能会失败。

8. 被映射的文件部分必须从页边界开始,并且其长度是页长的整数倍。每个映射的页把文件本身作为后备存储。

9. 使用诸如/usr/ast/file之类的文件名。这样看起来就象多层目录的路径名,而只不过是文件名中包含斜线(/)而已。

10. 一种方法是在read系统调用中添加额外的参数,以告知从什么地址读取。实际上,每次read都会在文件中执行隐含的定位。不过该方法的缺点是:

(1) 每次read都需要额外的参数;

(2) 用户需要记录文件指针的位置。

11. “..”部分把搜索移动到/usr,因此../ast即为/usr/ast。因此,../ast/x就是/usr/ast/x。

12. 由于这些被浪费的空间在分配单元(文件)之间,而不是在它们内部,因此,这是外部碎片。这类似于交换系统或者纯分段系统中出现的外部碎片。

13. 需要9毫秒才开始传输。以223字节/秒的传输速率读取213字节需要大约2-10 = 977微秒,总共9.977毫秒。写回磁盘同样需要9.977毫秒。这样,复制一个文件需19.954毫秒。为了压缩8-GB的磁盘空间,也就是220个文件。每个文件19.954毫秒,总共需要20,923秒,也就是5.8个小时。显然,在每个文件删除后都压缩磁盘不是一个好办法。

15. 数码相机按顺序记录一系列照片,存储在某种非易失性存储媒介(例如,闪存)上。当照相机复位时,该媒介被清空。然后,按顺序依次记录一张照片,直到存储满,然后上载到硬

盘上。对于这种应用,相机内部的连续文件系统时最理想。

16. 它在目录项中找到文件第一块的地址。然后,顺着FAT中的块指针链,直到定位于它所需要的块。然后记下其块号码,用于下一次read系统调用。

17. 间接块可以保存256个磁盘地址。与10个直接的磁盘地址一道,最大文件有266块。由于每块为1 KB,最大的文件是266 KB。

19. Elinor是正确的。表格中同时有i-节点的2个备份是灾难性的,除非都是只读的。最坏的情况就是当两个都同时被更新时。当把i-节点写回磁盘时,后写入的会把先写入的删除,而磁盘块就丢失了。

20. 硬链接无需额外的磁盘空间,而只需在i-节点中记录有多少个链接。符号链接需要空间存储所指的文件的名称。符号链接可以指向其他机器上的文件,甚至是Internet上的文件。而硬链接只能指向其自己分区中的文件。

21. 位映像需要B位。而空闲列表需要DF位。

22. 位映像为:

a) 写入文件B后:1111 1111 1111 0000

b) 删除文件A后:1000 0001 1111 0000

c) 写入文件C后:1111 1111 1111 1100

d) 删除文件B后:1111 1110 0000 1100

29. 平均时间为h + 40(1 - h)。

31. 对于15000rpm,每旋转一周需4毫秒。那么,读取k字节的平均存取时间为

8(寻道时间) + 2(旋转半周的时间) + (k/262144) x 4(读取k字节的时间)毫秒。

对于1 KB,2 KB和4 KB的块,访问时间分别为10.015625毫秒,10.03125毫秒和10.0625毫秒(几乎没有什么不同)。其数据速率分别为102240 KB/sec,204162 KB/sec和407,056 KB/sec。

37. 需要下列的磁盘操作:

读根目录

读/usr的i-节点

读/usr的目录

读/usr/ast的i-节点

读/usr/ast的目录

读/usr/ast/courses的i-节点

读/usr/ast/courses的目录

读/usr/ast/courses/os的i-节点

读/usr/ast/courses/os的目录

读/usr/ast/courses/os/handout.t的i-节点

总共10个磁盘读操作。

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

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

第一章 作者:佚名来源:网络 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操作时间由图给出。

操作系统期末试卷(含答案)79149

操作系统复习题1 一、判断题 1.分时系统中,时间片设置得越小,则平均响应时间越短。() 2.多个进程可以对应于同一个程序,且一个进程也可能会执行多个程序。() 3.一个进程的状态发生变化总会引起其他一些进程的状态发生变化。() 4.在引入线程的OS中,线程是资源分配和调度的基本单位。() 5.信号量的初值不能为负数。() 6.最佳适应算法比首次适应算法具有更好的内存利用率。() 7.为提高对换空间的利用率,一般对其使用离散的分配方式。() 8.设备独立性是指系统具有使用不同设备的能力。() 9.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随即存取。() 10.访问控制矩阵比访问控制表更节约空间。() 二、选择题 1.在设计分时操作系统时,首先要考虑的是(A);在设计实时操作系统时,首先要考虑的是(B);在设计批处理系统时,首先要考虑的是(C)。 A,B,C :(1)灵活性和适应性;(2)交互性和响应时间;(3)周转时间和系统吞吐量;(4)实时性和可靠性。 2.对一个正在执行的进程:如果因时间片完而被暂停执行,此时它应从执行状态转变为(D)状态;如果由于终端用户的请求而暂停下来,则它的状态应转变为(E)状态;如果由于得不到所申请的资源而暂停时下来,则它的状态应转变为(F)状态。D,E,F:(1);静止阻塞(2);活动阻塞(3);静止就绪(4);活动就绪(5)执行。 3.我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用(G);为照顾紧急作业用户,应采用(H);为能实现人机交互,应采用(I);而能使短作业、长作业和交互作业用户满意时,应采用(J)。 G,H,I,J:(1);FCFS调度算法(2);短作业优先调度算法;(3)时间片轮转算法;(4)多级反馈队列调度算法;(5)基于优先权的剥夺调度算法。 4.由固定分区发展为分页存储管理方式的主要推动力是(K);由分页系统发展为分段系统,进而发展为段页式系统的主要动力分别是(L)和(M)。 K,L,M:(1)提高内存利用率;(2)提高系统吞吐量;(3)满足用户需要;(4)更好地满足多道程序进行的需要;(5)既满足用户需求,又提高内存利用率。 5.在存储管理中,不会产生内部碎片的存储管理方式是(N);支持虚拟存储器,但不能以自然的方式提供存储器的共享和存取保护机制的存储管理方式是(O)。 N:(1)分页式存储管理;(2)分段式存储管理;(3)固定分区式存储管理;(4)段页式存储管理。 O:(1)段页式存储管理;(2)请求分区页式存储管理;(3)请求分段式存储管理;(4)可变分区存储管理;(5)固定分区存储管理;(6)单一连续分区式存储管理。 6.磁盘调度主要是为了优化(P),下列算法中能避免磁盘粘着的现象的是(Q)。P:(1)寻道时间;(2)旋转延迟时间;(3)传输时间。 Q:(1)SSTF;(2)FCFS;(3)SCAN;(4)CSCAN;(5)FSCAN。 7.文件系统中,目录管理最基本的功能是(R),位示图的主要功能是(S),FAT 表的主要功能是(T)。 R,S,T:(1)实现按名存取;(2)提高文件存储空间利用率;(3)管理文件存储器的空闲空间;(4)指出分配给文件的盘块(首个盘块除外)的地址;(5)管理文件存储器的空闲空间,并指出分配给文件的盘块(首个盘块除外)的地址。 8.文件系统采用多级目录结构,可以(U)和(V)。 U,V:(1)缩短访问文件存储器时间;(2)节省主存空间;(3)解决不同用户文件的命名冲突;(4)方便用户读写文件;(5)提高检索目录的速度。9.计算机系统中信息资源的安全包括(W)、(X)和(Y)三个方面,其中程序被删除属于(W)方面的威胁,数据被非法截取属于(X)方面的威胁,消息被更改属于(Y)方面的威胁。 W,X,Y:(1)保密性;(2)完整性;(3)可用性;(4)方便性。 三、填空题 1.操作系统最基本的特征是(1)和(2),最主要的任务是(3)。 2.引入进程的主要目的是(4),进程存在的唯一标志是(5)。 3.(6)是指通过破坏死锁产生的必要条件来防止死锁的发生。引起死锁的四个必要条件中,(7)是不应该被破坏的,但对某些特殊的资源(如打印机),该条可通过(8)来破坏;而其他能被破坏的三个必要条件分别是(9)、(10)和(11)。 4.虚拟存储器管理的基础是(12)原理,在请求分页管理方式中,页表中的状态位用来只是对应页(13)修改位用来只是对应页(14),引用位则是供(15)使用;而在请求分段系统还增加了增补位,它用来指示(16)。 5.设备驱动程序是(17)与(18)之间的通信程序如果系统中有3台相同的单显和2台相同的彩显则必须为它们配置(19)种设备驱动程序 6.廉价磁盘冗余阵列可组成一个大容量磁盘系统,它利用(20)技术来提高磁盘系统的存取进度,而利用(21)技术来增加磁盘系统的可靠性 7.包过滤防火墙工作在(22)层,采用代理服务技术的防火墙则工作在(23)层 8.UNIX文件系统对文件存储空间采用(23)分配方式,它通过(24)来管理空闲的文件存储空间。 四、问答题 1.假设某多道程序设计系统中有供用户使用的内存100k,打印机1台。系统采用可变分区管理内存:对打印机采用静态分配,并假设输入输出操作的时间忽略不计:采用最短剩余时间优先的进程调度算法,进程剩余执行时间相同时采用先来先服务算法;进程调度时机在执行进程结束时或有新进程到达时。现有一进程序列如下: 假设系统优先分配内存的低地址区域,且不需移动已在主存中的进程,请:(1)给出进度调度算法选中进程的次序,并说明理由。 (2)全部进程执行结束所用的时间是多少? 2.请用信号量解决以下的过独木桥问题:同一方向的行人可连续过桥,当某一方向的行人必须等待:另一方向的行人必须等待:当某一方向无人过桥是,另一方向的行人可以过桥。 3.提高内存利用率的途径有哪些? 4.何谓脱机输入/输出技术? 5. 将目录文件当作一般数据文件来处理有什么优缺点? 操作系统复习题1答案 一、判断题 1、错 2、对 3、错 4、对 5、对 6、错 7、错 8、错 9、对10、错 二、选择题 1、A :(2);B:(4);C:(3)。 2、D:(4);E:(3);F:(2)。 3、G:(2);H:(5);I:(3);J:(4)。 4、K:(1);L:(3);M:(5)。 5、N:(2);O:(2)。 6、P:(1)寻道时间;Q:(5)。 7、R:(1);S:(3);T:(5)。 8、U:(3);V:(5)。 9、W:(3);X:(1);Y:(2)。

计算机操作系统习题及答案

1)选择题 (1)为多道程序提供的可共享资源不足时,可能出现死锁。但是,不适当的 _C__ 也可能产生死锁。 A. 进程优先权 B. 资源的线性分配 C. 进程推进顺序 D. 分配队列优先权 (2)采用资源剥夺法可以解除死锁,还可以采用 _B___ 方法解除死锁。 A. 执行并行操作 B. 撤消进程 C. 拒绝分配新资源 D. 修改信号量 (3)发生死锁的必要条件有四个,要防止死锁的发生,可以通过破坏这四个必要条件之一来实现,但破坏 _A__ 条件是不太实际的。 A. 互斥 B. 不可抢占 C. 部分分配 D. 循环等待 (4)为多道程序提供的资源分配不当时,可能会出现死锁。除此之外,采用不适当的_ D _ 也可能产生死锁。 A. 进程调度算法 B. 进程优先级 C. 资源分配方法 D. 进程推进次序 (5)资源的有序分配策略可以破坏 __D___ 条件。 A. 互斥使用资源 B. 占有且等待资源 C. 非抢夺资源 D. 循环等待资源 (6)在 __C_ 的情况下,系统出现死锁。 A. 计算机系统发生了重大故障 B. 有多个封锁的进程同时存在 C. 若干进程因竞争资源而无休止地相互等待他方释放已占有的资源 D. 资源数大大小于进程数或进程同时申请的资源数大大超过资源总数 (7)银行家算法在解决死锁问题中是用于 _B__ 的。 A. 预防死锁 B. 避免死锁 C. 检测死锁 D. 解除死锁 (8)某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是 _C__ 。 A. 12 B. 11 C. 10 D. 9 (9)死锁与安全状态的关系是 _A__ 。 A. 死锁状态一定是不安全状态 B. 安全状态有可能成为死锁状态 C. 不安全状态就是死锁状态 D. 死锁状态有可能是安全状态 (10)如果系统的资源有向图 _ D __ ,则系统处于死锁状态。 A. 出现了环路 B. 每个进程节点至少有一条请求边 C. 没有环路 D. 每种资源只有一个,并出现环路 (11)两个进程争夺同一个资源,则这两个进程 B 。

操作系统习题及答案二

习题二处理器管理 一、单项选择题 1、操作系统中的作业管理是一种()。 A.宏观的高级管理 B.宏观的低级管理 C.系统刚开始加电 D.初始化引导完成 2、进程和程序的本质区别是(). A.存储在内存和外存 B.顺序和非顺序执行机器指今 C.分时使用和独占使用计算机资源 D.动态和静态特征 3、处于后备状态的作业存放在()中。 A.外存 B.内存 C.A和B D.扩展内存 4、在操作系统中,作业处于()时,已处于进程的管理之下。 A.后备 B.阻塞 C.执行 D.完成 5、在操作系统中,JCB是指()。 A.作业控制块 B.进程控制块 C.文件控制块 D.程序控制块 6、作业调度的关键在于()。 A.选择恰当的进程管理程序 B.选择恰当的作业调度算法 C.用户作业准备充分 D.有一个较好的操作环境 7、下列作业调度算法中,最短的作业平均周转时间是()。 A.先来先服务法 B. 短作业优先法 C. 优先数法 D. 时间片轮转法 8、按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指() 调度算法。 A.先来先服务法 B. 短作业优先法 C.时间片轮转法 D. 优先级法 9、在批处理系统中,周转时间是()。 A.作业运行时间 B.作业等待时间和运行时间之和 C.作业的相对等待时间 D.作业被调度进入内存到运行完毕的时间 10、为了对紧急进程或重要进程进行调度,调度算法应采用()。 A.先来先服务法 B. 优先级法 C.短作业优先法 D. 时间片轮转法 11、操作系统中,()负责对进程进行调度。 A.处理机管理 B. 作业管理 C.高级调度管理 D. 存储和设备管理 12、一个进程被唤醒意味着()。 A.该进程重新占有了CPU B.进程状态变为就绪 C.它的优先权变为最大 D.其PCB移至就绪队列的队首 13、当作业进入完成状态,操作系统(). A.将删除该作业并收回其所占资源,同时输出结果 B.将该作业的控制块从当前作业队列中删除,收回其所占资源,并输出结果

操作系统课后习题答案

第一章 1.设计现代OS的主要目标是什么? 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 4.试说明推劢多道批处理系统形成和収展的主要劢力是什么? 答:主要动力来源于四个方面的社会需求与技术发展: (1)不断提高计算机资源的利用率; (2)方便用户; (3)器件的不断更新换代; (4)计算机体系结构的不断发展。 12.试从交互性、及时性以及可靠性方面,将分时系统不实时系统迚行比较。答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。 (2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。 (3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。 13.OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。 第二章 2. 画出下面四条诧句的前趋图: S1=a:=x+y; S2=b:=z+1; S3=c:=a –b;S4=w:=c+1; 8.试说明迚程在三个基本状态之间转换的典型原因。 答:(1)就绪状态→执行状态:进程分配到CPU资源 (2)执行状态→就绪状态:时间片用完 (3)执行状态→阻塞状态:I/O请求 (4)阻塞状态→就绪状态:I/O完成

1操作系统试题及答案

操作系统试题及答案 一、选择题 1、操作系统的主要功能是管理计算机系统中的()。 A.程序库 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.页式虚拟存储管理中的页面调度 7、下列算法中用于磁盘移臂调度的是( ) A.时间片轮转法 B. LRU算法 C.最短寻找时间优先算法 D.优先级高者优先算法 8、存放在磁盘上的文件,()。 A.即可随机访问,又可顺序访问 B。只能随机访问 C.只能顺序访问 D。只能读/写不能访问 9、一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是()A.2 B.1 C.3 D.0.5 10、进程和程序的本质区别是()。 A.内存和外存 B。动态和静态特征 C。共享和独占使用计算机资源D。顺序和非顺序执行机器指令 11、对于硬盘上存放的信息,物理上读写的最小单位是一个()。 A.二进位 B。字节 C。物理块 D。逻辑记录 12、多道程序设计是指() A.在实时系统中并发运行多个程序 B.在分布系统中同一时刻运行多个程序 C.在一台处理机上同一时刻运行多个程序 D.在一台处理机上并发运行多个程序 13、进程从运行状态进入就绪状态的原因可能是() A.被选中占有处理机 B.等待某一事件 C.等待的事件已发生 D.时间片用完 14、由于系统无法预先知道一个作业未来访问页面的情况,所以()在实际上是无法实现的。 A.先进先出淘汰算法 B。最近最少使用淘汰算法 C.最优淘汰算法 D。最不常用页面淘汰算法 15、文件系统为每个文件另建立一张指示逻辑记录和物理块之间的对应关系表,由此表和文件本身构成的文件是()。

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

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具

操作系统课后习题答案2知识分享

2. 进程和线程的管理 例题解析 例2.2.1 试说明进程和程序之间的区别和联系。 解进程和程序是既有区别又有联系的两个概念。 进程是动态的,程序是静态的。程序是一组有序的指令集合,是一个静态的概念;进程则是程序及其数据在计算机上的一次执行,是一个动态的集合。离开了程序,进程就失去了存在的意义,但同一程序在计算机上的每次运行将构成不同的进程。程序可看作是电影的胶片,进程可以看作电影院放电影的过程。 一个进程可以执行多个程序,如同一个电影院的一场电影可放映多部影片。 一个程序可被多个进程执行,如同多个影院同时利用一个电影的胶片放映同一部电影。 程序可以长期保存,进程只能存在于一段时间。程序是永久存在的,而进程有从被创建到消亡的生命周期。 例2.2.2 举例说明多道程序系统失去了封闭性和再现性。 解例如,有两个循环程序A和B,共享一个变量N。程序A每执行一次时,都要做N:=N+1操作;程序B则每执行一次时,都要执行print(N)操作,然后再将N的值置成“0”。程序A 和B在多道程序系统中同时运行。假定某时刻变量N的值为n,可能出现下述三种情况:N:=N+1 在print(N)和N:=0之前,此时得到N值变化过程为n+1、n+1、0; N:=N+1 在print(N)和N:=0之后,此时得到N值变化过程为n 、0 、1; N:=N+1 在print(N)之后和N:=0之前,此时得到N值变化过程为n、n+1、0。 所以,在A、B程序多次执行过程中,虽然其每次执行时的环境和初始条件都相同,但每次得到的结果却不一定相同。 例2.2.3 为什么将进程划分成执行、就绪和阻塞三个基本状态? 解根据多道程序执行的特点,进程的运行是走走停停的。因此进程的初级状态应该是执行和等待状态。处于执行状态的进程占用处理机执行程序,处于等待状态的进程正在等待处理机或者等待其它某种事件的发生。但是,当处理机空闲时,并不是所有处于等待状态的进程都能放到处理机上执行,有的进程即使分配给它处理机,它也不能执行,因为它的执行的条件没有得到满足。因此,将等待状态的进程分成两部分,一部分是放在处理机上就能立即执行,这就是就绪的进程;另一部分是仍需等某种事件发生的进程,即使放在处理机上也不能执行的进程,这就是阻塞进程。 例2.2.4 进程的挂起状态与进程的阻塞状态和就绪状态有何异同? 解相同点是它们都没有占用处理机。不同点是挂起状态的进程是处于一种静止状态,不会参与对资源的竞争,在解除挂起之前,进程不会有新的资源要求,也不会有占用处理机的机会;阻塞状态和就绪状态的进程均处于活动状态,它们都有获得处理机的机会,都可能有新的资源要求。 例2.2.5 两个并发进程P1和P2的程序代码在下面给出。其中,A、B、C、D和E均为原语。 P1: begin P2: begin A; D; B; E; C; end end 请给出P1、P2两个进程的所有可能执行的过程。

操作系统课后题答案

2.1 一类操作系统服务提供对用户很有用的函数,主要包括用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测等。 另一类操作系统函数不是帮助用户而是确保系统本身高效运行,包括资源分配、统计、保护和安全等。 这两类服务的区别在于服务的对象不同,一类是针对用户,另一类是针对系统本身。 2.6 优点:采用同样的系统调用界面,可以使用户的程序代码用相同的方式被写入设备和文件,利于用户程序的开发。还利于设备驱动程序代码,可以支持规范定义的API。 缺点:系统调用为所需要的服务提供最小的系统接口来实现所需要的功能,由于设备和文件读写速度不同,若是同一接口的话可能会处理不过来。 2.9 策略决定做什么,机制决定如何做。他们两个的区分对于灵活性来说很重要。策略可能会随时间或位置而有所改变。在最坏的情况下,每次策略改变都可能需要底层机制的改变。系统更需要通用机制,这样策略的改变只需要重定义一些系统参数,而不需要改变机制,提高了系统灵活性。 3.1、短期调度:从准备执行的进程中选择进程,并为之分配CPU; 中期调度:在分时系统中使用,进程能从内存中移出,之后,进程能被重新调入内存,并从中断处继续执行,采用了交换的方案。 长期调度:从缓冲池中选择进程,并装入内存以准备执行。 它们的主要区别是它们执行的频率。短期调度必须频繁地为CPU选择新进程,而长期调度程序执行地并不频繁,只有当进程离开系统后,才可能需要调度长期调度程序。 3.4、当控制返回到父进程时,value值不变,A行将输出:PARENT:value=5。 4.1、对于顺序结构的程序来说,单线程要比多线程的功能好,比如(1)输入三角形的三边长,求三角形面积;(2)从键盘输入一个大写字母,将它改为小写字母输出。

计算机操作系统习题及答案()

第3章处理机调度1)选择题 (1)在分时操作系统中,进程调度经常采用_D_ 算法。 A. 先来先服务 B. 最高优先权 C. 随机 D. 时间片轮转 (2)_B__ 优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。 A. 作业 B. 静态 C. 动态 D. 资源 (3)__A___ 是作业存在的惟一标志。 A. 作业控制块 B. 作业名 C. 进程控制块 D. 进程名 (4)设有四个作业同时到达,每个作业的执行时间均为2小时,它们在一台处理器上按单道方式运行,则平均周转时间为_ B_ 。 A. l小时 B. 5小时 C. 2.5小时 D. 8小时 (5)现有3个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2和T3,且T1<T2<T3。系统按单道方式运行且采用短作业优先算法,则平均周转时间是_C_ 。 A. T1+T2+T3 B. (T1+T2+T3)/3 C. (3T1+2T2+T3)/3 D. (T1+2T2+3T3)/3 (6)__D__ 是指从作业提交给系统到作业完成的时间间隔。 A. 运行时间 B. 响应时间 C. 等待时间 D. 周转时间 (7)下述作业调度算法中,_ C_调度算法与作业的估计运行时间有关。 A. 先来先服务 B. 多级队列 C. 短作业优先 D. 时间片轮转 2)填空题 (1)进程的调度方式有两种,一种是抢占(剥夺)式,另一种是非抢占(非剥夺)式。 (2)在_FCFS_ 调度算法中,按照进程进入就绪队列的先后次序来分配处理机。 (3)采用时间片轮转法时,时间片过大,就会使轮转法转化为FCFS_ 调度算法。 (4)一个作业可以分成若干顺序处理的加工步骤,每个加工步骤称为一个_作业步_ 。 (5)作业生存期共经历四个状态,它们是提交、后备、运行和完成。 (6)既考虑作业等待时间,又考虑作业执行时间的调度算法是_高响应比优先____ 。 3)解答题 (1)单道批处理系统中有4个作业,其有关情况如表3-9所示。在采用响应比高者优先调度算法时分别计算其平均周转时间T和平均带权周转时间W。(运行时间为小时,按十进制计算) 表3-9 作业的提交时间和运行时间

计算机操作系统习题及答案

第二章计算机操作系统 一、填空题 1. 在Windows XP中,进行系统软、硬件设置的文件夹称为______。 2. 在Windows XP系统中文标点方式下,键入符号“”对应的中文标点是______。 3. 在Windows XP默认环境中,要改变“屏幕保护程序”的设置,应首先双击“控制面板”窗口中的______图标。 4. 用Windows XP的“记事本”所创建文件的缺省扩展名是______。 5. 在Windows XP中,要添加Windows组件,必须打开______窗口。 6. 当选定文件或文件夹后,欲改变其属性设置,可以单击鼠标______键,然后在弹出的菜单中选择“属性”命令。 7. 在Windows XP中,当用鼠标左键在不同驱动器之间拖动对象时,系统默认情况下,该操作的作用是______。 8. 在Windows XP的“资源管理器”窗Vl中,将文件以列表方式显示,可按~、类型、大小、日期及自动排列五种规则排序。 9. 在WindoWS XP中,若要更改任务栏的属性,可以右键单击______空白处,再从弹出的菜单中选择“属性”命令来实现更改。 10. 在Windows XP环境中,选定多个不相邻文件的操作方法是:单击第一个文件,然后按住______键的同时,单击其它待选定的文件。 11. 在Windows xP中,利用“控制面板”窗口中的______向导工具,可以安装任何类型的新硬件。 12. 在Windows XP中,若要删除选定的文件,可直接按______键。 13. 按操作系统分类,UNIX操作系统是______。 14. 在Windows xP默认环境中,用于中英文输入方式切换的组合键是______。 15. 在Windows XP中,若系统长时间不响应用户的要求,为了结束该任务,使用______组合键。 二、单项选择题 1. Windows XP的“开始”菜单包括了Windows XP系统的()。 A. 主要功能 B. 全部功能 C. 部分功能 D. 初始化功能 2. 下列不可能出现在Windows XP中的“资源管理器”窗口左侧窗格中的选项是()。 A. 我的电脑 B. 桌面 C. use(登录的账户名)的文档 D. 资源管理器 3. 在Windows XP中,能更改文件名的操作是()。 A. 右键单击文件名,选择“重命名”命令,键入新文件名后按Enter键 B. 左键单击文件名,选择“重命名”命令,键入新文件名后按Enter键 C. 右键双击文件名,选择“重命名”命令,键入新文件名后按Enter键 D. 左键双击文件名,选择“重命名”命令,键人新文件名后按Enter键 4. 在Windows XP中,全角方式下输入的数字应占的字节数是()。 A. 1 B. 2 C. 3 D. 4 5. Windows XP中将信息传送到剪贴板不正确的方法是()。 A. 用“复制”命令把选定的对象送到剪贴板 B. 用“剪切”命令把选定的对象送到剪贴板 C. 用Ctrl+V组合键把选定的对象送到剪贴板 D. Alt+PrintScreen把当前窗口送到剪贴板 6. 在windows XP中,欲选定当前文件夹中的全部文件和文件夹对象,可使用的组合键是()。 A. Ctrl+V B. Ctrl+A C. Ctrl+X D. Ctrl+D 7. 下列文件名,()是非法的Windows XP文件名。 A. ThiS is my file B. 关于改进服务的报告

计算机操作系统课后题答案(高等教育出版社)

练习题(一) Ⅰ问答题 1. 操作系统的两个主要目标是什么? 答:方便性与有效性。 2. 试说明操作系统与硬件、其它系统软件以及用户之间的关系? 答: 与硬件的关系:操作系统是位于硬件层上的第一层软件,它直接管理着计算机的硬件,合理组织计算机工作流程,并提高了硬件的利用率。。 与其他系统软件的关系:操作系统是系统软件,但它不同于其它系统软件和应用软件,它为其它系统软件和应用软件提供接口。应用软件要使用操作系统所提供的服务方可方便使用计算机。 与用户之间的关系:操作系统是为改善人机界面、提供各种服务,为用户使用计算机提供良好运行环境的一种系统软件。 3. 试论述操作系统是建立在计算机硬件平台上的虚拟计算机系统。 答:没有任何软件支持的计算机称为裸机,即使其硬件功能再强,也必定是难于使用的。而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机位于最里层,它的外面是操作系统,经过操作系统提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器,通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机(Virtual Machine ),这样的计算机系统是概念上和逻辑上的计算机,不是物理上的真实计算机。 4. 什么是操作系统?它有哪些基本功能与基本特征? 答:操作系统是位于硬件层之上,所有其它软件层之下的一种系统软件,它控制和管理计算机系统资源、合理组织计算机工作流程、提供用户与计算机系统之间的接口。 操作系统的基本功能有:处理器管理、存储器管理、设备管理、文件管理和提供用户接口。 操作系统的基本特征有:并发性、共享性、虚拟性和不确定性。 5. 请叙述并发和并行两个概念的区别? 答:并发性是指两个或多个程序在同一时间段内同时执行,是宏观上的同时。而并行性是从硬件意义上考虑,是不同硬件部件(如CPU与I/O)在同一时刻的并行,即微观上,多个程序也是同时执行的。 6. 什么是多道程序设计? 在操作系统中使用这种技术有什么好处? 答:多道程序设计是指在计算机内存中同时存放若干道已开始运行尚未结束的程序,它们交替运行,共享系统中的各种硬、软件资源,从而使处理机得到充分利用。 好处: ①提高了CPU的利用率。各道程序是轮流占用一个CPU,交替地执行。 ②改进了系统的吞吐量(系统吞吐量是指计算机系统在单位时间内完成的总工作量)。 ③充分发挥了系统的并行性,使CPU与I/O并行工作。提高CPU、设备、内存等各种资源的利用率,从而提高系统效率。

操作系统课后习题答案

第一章操作系统引论 一、填空题 1~5 BCABA 6~8BCB 、填空题 处理机管理 计算机硬件 分时系统 单道批处理系统 、简答题 1. 什么叫多道程序?试述多道程序设计技术的基本思想 及特征。为什么对作业 进行多道批处理可以提高系统效率? 多道程序设计技术是指在计算机内存中同时存放几道相互独立的程序, 使它 们在管理程序控制下,相互穿插运行。 基本思想:在计算机的内存中同时存放多道相互独立的程序, 当某道程序因 某种原因不能继续运行下去时候,管理程序就将另一道程序投入运行,这样使几 道程序在系统内并行工作,可使中央处理机及外设尽量处于忙碌状态, 从而大大 提高计算机使用效率。 特征:多道性;无序性;调度性 在批处理系统中采用多道程序设计技术形成多道批处理系统, 多个作业成批送入 计算机,由作业调度程序自动选择作业运行,这样提高了系统效率。 2. 批处理系统、分时系统和实时系统各有什么特点?各适合应用于哪些方面? 批处 理系统得特征:资源利用率高;系统吞吐量大;平均周转时间长;无交 互能力。适用于那些需要较长时间才能完成的大作业。 分时系统的特征:多路性;独立性;及时性;交互性。适合进行各种事务处 理,并为进行软件开发提供了一个良好的环境。 实时系统的特征:多路性;独立性;实时性;可靠性;交互性。适合对随机发生 的外部事件能做出及时地响应和处理的系统, 如实时控制系统,实时信息处理系 统。1、 2、 存储器管理 设备管理 计算机软件 实时系统 批处理系统 多道批处理系统 文件管理

第二章进程管理 一、填空题 1~6 CBABBB 7 ① A ② C ③ B ④ D 8 ① D ② B 9 ~10 CA 11~15 CBBDB 16~18 DDC 20~21 BB 22 ① B ② D ③ F 25 B 26~30 BDACB 31~32 AD 二、填空题 1、动态性并发性 2、可用资源的数量等待使用资源的进程数 3、一次只允许一个进程使用的共享资源每个进程中访问临界资源的那段代码 4、执行态就绪态等待态 5、程序数据进程控制块进程控制块 &同步关系 7、等待 8、进程控制块 9、P V 11、同步互斥同步互斥 12、P V P V P V 13、封闭性 14、-(m-1)~1 15、② 16、动静 17、4 0 18、s-1<0 19、①③ 三、简答题 1.在操作系统中为什么要引入进程的概念?进程和程序的关系? 现代计算机系统中程序并发执行和资源共享的需要,使得系统的工作情况变得非常复杂,而程序作为机器指令集合,这一静态概念已经不能如实反映程序并发执行过程的动态性,因此,引入进程的概念来描述程序的动态执行过程。这对于我们理解、描述和设计操作系统具有重要意义。 进程和程序关系类似生活中的炒菜与菜谱。菜谱相同,而各人炒出来的菜的味道却差别很大。原因是菜谱基本上是一种静态描述,它不可能把所有执行的动态过程中,涉及的时空、环境等因素一一用指令描述清楚。 2.试从动态性、并发性和独立性上比较进程和程序。 动态性:进程的实质是进程实体的一次执行过程。动态性是进程的基本特征。而程序只是一组有序指令的集合,其本身不具有动态的含义,因而是静态的。 并发性:并发性是进程的重要特征,引入进程的目的也正是为了使其进程实体能和其他进程实体并发执行,而程序是不能并发执行的。 独立性:进程的独立性表现在进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。而程序不能做为一个独立的单位参与运行。 3.何谓进程,进程由哪些部分组成? 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位进程由程序段,数据段,进程控制块三部分组成。

最新操作系统试题及答案

一、单项选择题(每题2分,共20分) 1.以下著名的操作系统中,属于多用户、分时系统的是( )。 A.DOS系统B.UNIX系统 C.Windows NT系统D.OS/2系统 2.在操作系统中,进程的最基本的特征是( )。 A.动态性和并发性B.顺序性和可再现性 C.与程序的对应性D.执行过程的封闭性 3.操作系统中利用信号量和P、V操作,( )。 A.只能实现进程的互斥B.只能实现进程的同步 C.可实现进程的互斥和同步D.可完成进程调度 4.作业调度的关键在于( )。 A.选择恰当的进程管理程序B.用户作业准备充分 C.选择恰当的作业调度算法D.有一个较好的操作环境 5.系统抖动是指( )。 A.使用机器时,屏幕闪烁的现象 B.由于主存分配不当,偶然造成主存不够的现象 C.系统盘有问题,致使系统不稳定的现象 D.被调出的页面又立刻被调入所形成的频繁调入调出现象 6.在分页存储管理系统中,从页号到物理块号的地址映射是通过( )实现的。 A.段表B.页表 C. PCB D.JCB

7.在下述文件系统目录结构中,能够用多条路径访问同一文件(或目录)的目录结构是( ) A.单级目录B.二级目录 C.纯树型目录D.非循环图目录 8.SPOOLing技术可以实现设备的( )分配。 A.独占B.共享 C.虚拟D.物理 9.避免死锁的一个著名的算法是( )。 A.先人先出算法B.优先级算法 C.银行家算法D.资源按序分配法 10.下列关于进程和线程的叙述中,正确的是( )。 A.一个进程只可拥有一个线程 B.一个线程只可拥有一个进程 C.一个进程可拥有若干个线程 D.一个线程可拥有若干个进程 二、判断题(选择你认为正确的叙述划√,认为错误的划×并说明原因。每题2分,共10分) 1.简单地说,进程是程序的执行过程。因而,进程和程序是一一对应的。( ) 2.V操作是对信号量执行加1操作,意味着释放一个单位资源,加l后如果信号量的值小于等于零,则从等待队列中唤醒一个进程,使该进程变为阻塞状态,而现进程继续进行。( )

操作系统习题及答案二

三、简答题 1、什么是进程?为什么要引入进程的概念?进程与程序有何区别? 1.在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态过程中发生的。用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 进程和程序是既有联系又有区别的两个概念,它们的主要区别如下: (1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是下个动态概念。 (2)程序的存在是永久的。而进程则是有生命期的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤消而消亡。 (3)程序仅是指令的有序集合。而进程则由程序、数据和进程控制块组成。 (4)进程与程序之间不是一一对应的,即同一程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程;而一个进程可以执行多个程序。 2、简述进程的三种基本状态及其变化情况。 2.进程的三种基本状态为等待态、就绪态、运行态。运行态会变成等待态或就绪态,前者是由于等待外设等资源引起,后者是由时间片用完等原因引起;等待态变成就绪态,是由于等待的条件已得到满足;就绪态变成运行态,是按调度策略从就绪队列中选出一个进程占用处理器时,该进程就从就绪态变成运行态。 3、假设有一种低级调度算法是让“最近使用处理器较少的进程”运行,试解释这种 算法对“I/O繁重”型作业有利,但并不是永远不受理“处理器繁重”型作业。 3.因为1/O繁忙型作业忙于I/O,所以它CPU用得少,按调度策略能优先执行。同样 原因一个进程等待CPU足够久时,由于它是“最近使用处理器较少的进程”,就能被优 先调度,故不会饥饿。 4、作业调度和进程调度各自的主要功能是什么? 4.作业调度的主要功能是: 1)记录系统中各个作业的情况; 2)按照某种调度算法从后备作业队列中挑选作业; 3)为选中的作业分配内存和外设等资源; 4)为选中的作业建立相应的进程; 5)作业结束后进行善后处理工作。 进程调度的主要功能是: 1)保存当前运行进程的现场; 2)从就绪队列中挑选一个合适进程; 3)为选中的进程恢复现场。 5、线程与进程的根本区别是什么? 5.在采用线程技术的操作系统中,线程与进程的根本区别在于:进程是资源的分配单位,而线程是调度和执行单位。 6、产生死锁的四个必要条件是什么? 6.答:产生死锁的必要条件如下:

计算机操作系统课后习题答案第二章

第二章 1. 什么是前趋图?为什么要引入前趋图? 答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。 2. 画出下面四条诧句的前趋图: S1=a:=x+y; S2=b:=z+1; S3=c:=a-b; S4=w:=c+1; 答:其前趋图为: 3. 为什么程序并发执行会产生间断性特征? 程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。 4. 程序并发执行时为什么会失去封闭性和可再现性? 因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。而程序一旦失去了封闭性也会导致其再失去可再现性。 5. 在操作系统中为什么要引入进程概念?它会产生什么样的影响? 为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。影响: 使程序的并发执行得以实行。 6. 试从动态性,并发性和独立性上比较进程和程序? a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。 b. 并发性是进程的重要特征,同时也是OS的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。 c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。 7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标志? a. PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。 b. 在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。 11.试说明进程在三个基本状态之间转换的典型原因。 答:(1)就绪状态→执行状态:进程分配到CPU资源(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O完成 12.为什么要引入挂起状态?该状态有哪些性质? 答:引入挂起状态处于五种不同的需要: 终端用户需要,父进程需要,操作系统需要,对换需要和负荷调节需要。处于挂起状态的进程不能接收处理机调度。10.在进行进程切换时,所要保存的处理机状态信息有哪些?答:进行进程切换时,所要保存的处理机状态信息有:(1)进程当前暂存信息(2)下一指令地址信息(3)进程状态信息(4)过程和系统调用参数及调用地址信息。13.在进行进程切换时,所要保存的处理机状态信息有哪些? 答:进行进程切换时,所要保存的处理机状态信息有: (1)进程当前暂存信息 (2)下一指令地址信息 (3)进程状态信息 (4)过程和系统调用参数及调用地址信息。 14.试说明引起进程创建的主要事件。答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。 15.试说明引起进程被撤销的主要事件。答:引起进程被撤销的主要事件有:正常结束、异常结束(越界错误、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、I/O 故障)、外界干预(操作员或操作系统干预、父进程请求、父进程终止)。 16.在创建一个进程时所要完成的主要工作是什么? 答:(1)OS 发现请求创建新进程事件后,调用进程创建原语Creat();(2)申请空白PCB;(3)为新进程分配资源;(4)初始化进程控制块;(5)将新进程插入就绪队列. 17.在撤销一个进程时所要完成的主要工作是什么? 答:(1)根据被终止进程标识符,从PCB 集中检索出进程PCB,读出该进程状态。(2)若被终止进程处于执行状态,立即终止该进程的执行,臵调度标志真,指示该进程被终止后重新调度。(3)若该进程还有子进程,应将所有

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