《现代操作系统》第一章习题答案

  1. 提供扩展的机器,管理 I/O 设备和其他系统资源,为用户提供更好的服务

  2. 大型机操作系统:保险公司的索赔处理。
    服务器操作系统:Siri 的语音转文本服务。
    多处理器操作系统:视频编辑和渲染。
    个人电脑操作系统:文字处理应用程序。
    手持电脑操作系统:上下文感知推荐系统。
    嵌入式操作系统:编程 DVD 录像机记录电视。
    传感器节点操作系统:监测野外地区的温度。
    实时操作系统:空中交通管制系统。智能卡操作系统:电子支付。

  3.  分时系统允许多个用户通过自己的终端同时访问和执行计算系统上的程序,而多道程序设计系统则允许用户同时运行多个程序。虽然所有分时系统都是多道程序设计系统,但并非所有多道程序设计系统都是分时系统,因为它们可以在只有一个用户的个人电脑上运行。 


  4.  内存访问具有引用局部性原理,即如果访问某个位置,则很可能会访问附近的位置,尤其是下一个内存位置。因此,缓存整个缓存行可以增加下一个缓存命中的概率。此外,现代硬件可以将 32 或 64 字节的数据块传送到缓存行中,比逐个字读取同样的数据要快得多。 

  5.  多道程序设计的主要原因是为了在等待 I/O 完成时给 CPU 一些工作做。如果没有 DMA,CPU 在执行 I/O 时将被充分占用,无法从多道程序设计中获益。如果 I/O 变慢,CPU 可以完成其他工作。主要的延迟假设是等待数据复制。 

  6.  对 I/O 设备(如打印机)的访问通常需要进行限制,以确保不同用户的访问权限不同。这些限制是由系统管理员根据某些策略设置的,以确保用户级程序不会干扰策略的执行。需要执行这些策略,以确保访问权限的一致性和系统的安全性。 

  7. 英特尔生产了具有各种不同属性(包括速度和功耗)的 Core i3、i5 和 i7 中央处理器。所有这些机器在体系结构上都是兼容的,它们的区别只在于价格和性能,这就是系列计算机的思想。

  8. 一个 25\times 80 字符的单色文本屏幕需要一个 2000 字节的缓冲区。一个 1200\times 900 像素的 24 位彩色位图需要 3240000 字节的空间。1980 年,分别需要 10 美元和 15820 美元。

  9.  考虑公平性和实时性,公平性要求每个进程以公平的方式分配其资源,没有进程能获取超过其公平份额的资源,而实时性要求根据不同进程必须完成执行的时间来分配资源,因此实时进程可能会获取不成比例的资源份额。 

  10.  大多数现代中央处理器提供了内核模式和用户模式两种执行模式。在内核模式下,CPU 可以执行指令集中的每个指令并利用硬件的每个功能,而在用户模式下,只能执行指令集的子集,且只能使用硬件的子集。这样的设计可以让设计者在用户模式下运行用户程序,限制它们对关键指令的访问,从而增强系统的安全性。 

  11. 磁盘的磁头数目 = \frac{255GB}{65536\times255\times512} = 16 磁盘的盘片数目 = \frac{16}{2} = 8 读操作完成所需的时间 = 寻道时间 + 旋转延迟 + 传输时间。寻道时间为 11 ms,旋转延迟为 7 ms,传输时间为 4 ms,平均传输时间为 22 毫秒。

  12.  (a), (c), 和 (d) 应限制在内核模式。

  13. 这些程序的执行时间可能为 20 毫秒、25 毫秒或 30 毫秒,这取决于操作系统如何进行调度。如果 P0 和 P1 被调度到同一个 CPU,而 P2 被调度到另一个 CPU,那么执行时间为 20 毫秒。如果 P0 和 P2 被调度到同一个 CPU,而 P1 被调度到另一个 CPU,那么执行时间为 25 毫秒。如果 P1 和 P2 被调度到同一个 CPU,而 P0 被调度到另一个 CPU,那么执行时间为 30 毫秒。如果所有三个进程都在同一个 CPU 上,那么执行时间为 35 毫秒。

  14. 每纳秒,有一条指令从流水线中出来。这意味着机器每秒执行 10 亿条指令。流水线的级数并不重要。具有 10 级流水线且每级需要 1 纳秒的机器也能每秒执行 10 亿条指令。唯一重要的是一个完成的指令多久能从流水线末端弹出。

  15. 平均访问时间 = 0.95\times 1 纳秒(字在缓存中) + 0.05\times 0.99\times 10 纳秒(字在 RAM 中,但不在缓存中) + 0.05\times 0.01\times 10,000,000  纳秒(字仅在磁盘中) = 5001.445 纳秒 = 5.001445 \mu

  16. 可能。如果调用者在返回之后立即覆盖数据,当写操作最终发生时,错误的数据将被写入。但是,如果驱动程序在返回之前先将数据复制到私有缓冲区中,那么调用者可以立即继续执行。另一种可能性是允许调用者继续执行,并在缓冲区可被重用时给予信号,但这样做很困难且容易出错。

  17. 陷阱指令将 CPU 的执行模式从用户模式切换到内核模式。该指令允许用户程序调用操作系统内核中的函数。

  18. 进程表用于存储当前被挂起的进程(就绪或阻塞)的状态。即使用户什么都不做,也不打开任何程序,现代个人计算机系统也有数十个进程在运行。它们会检查更新、加载电子邮件等等。在 UNIX 系统上,可以使用 ps -a 命令查看它们。在 Windows 系统上,可以使用任务管理器。

  19. 挂载文件系统会导致挂载点目录中的任何文件无法访问,因此挂载点通常为空。然而,系统管理员可能会希望将通常位于挂载目录中的一些最重要的文件复制到挂载点,以便在挂载设备进行修复时在紧急情况下能够按照正常路径找到它们。

  20. 如果进程表中没有剩余的空闲槽位(或者可能没有内存或交换空间剩余),fork 可能会失败。如果给定的文件名不存在或不是有效的可执行文件,exec 可能会失败。如果要取消链接的文件不存在或调用进程没有取消链接的权限,则 unlink 可能会失败。

  21. 时间复用:CPU,网络卡,打印机,键盘。空间复用:内存,磁盘。两者:显示器。

  22. 如果调用失败,例如因为 fd 不正确,它可以返回 -1 。它也可能因为磁盘已满而无法写入所请求的字节数而失败。在正确终止时,它总是返回 nbytes

  23. 包含的字节为:1、5、9、2。

  24. 检索文件的时间 = 1 \times 50 毫秒(将磁臂移动到第 50 道扇区所需的时间)+ 5 毫秒(第一个扇区在磁头下旋转的时间)+ \frac{10}{200}\times 1000 毫秒(读取 10 MB 的时间)= 105 毫秒。

  25. 块特殊文件由编号的块组成,每个块可以独立地进行读取或写入。可以定位到任何块并开始读取或写入。这对于字符特殊文件是不可能的。

  26. 系统调用实际上没有名称,除了在文档上的意义上有一个名称。当库函数 read 陷入内核时,它将系统调用的编号放入寄存器或堆栈中。此编号用于索引到表中。实际上没有任何使用的名称。另一方面,库函数的名称非常重要,因为它出现在程序中。

  27. 这允许可执行程序在机器的不同部分的内存中在不同的运行中加载。此外,它使得程序的大小能够超过机器的内存大小。

  28. 就程序逻辑而言,调用库函数是否导致系统调用并不重要。但是如果性能是一个问题,如果一个任务可以在没有系统调用的情况下完成,程序将运行得更快。每个系统调用都会涉及在用户上下文与内核上下文之间切换的额外时间开销。此外,在多用户系统上,当系统调用完成时,操作系统可能会调度另一个进程运行,进一步减慢调用进程在实时中的进展速度。

  29. 几个 UNIX 调用在 Win32 API 中没有对应项:Link:Win32 程序不能通过替代名称引用文件或在多个目录中看到该文件。而且,尝试创建链接是测试文件并创建文件锁的方便方法。Mount 和 umount:Windows 程序不能假设标准路径名,因为在具有多个磁盘驱动器的系统上,路径的驱动器名称部分可能不同。Chmod:Windows 使用访问控制列表。Kill:Windows 程序员无法终止不合作的恶意程序。

  30.  每个系统架构都有其特定的指令集,因此Pentium无法执行SPARC程序,而SPARC也无法执行Pentium程序。此外,不同的架构在使用的总线架构(如VME、ISA、PCI、MCA、SBus等)以及CPU的字大小(通常为32位或64位)上也存在差异。由于硬件上的这些差异,构建一个完全可移植的操作系统是不可行的。为了实现高度可移植,必须将操作系统分解为两个高级层次:机器相关层和机器无关层。机器相关层处理硬件的具体细节,并必须为每种架构单独实现。这一层提供了一个统一的接口,用于构建机器无关层。机器无关层只需实现一次,为了实现高度可移植,必须尽量减小机器相关层的大小。 

  31. 策略和机制的分离允许操作系统设计者在内核中实现一小组基本原语。这些原语简化了,因为它们不依赖于任何特定的策略。然后可以使用这些原语在用户级别实现更复杂的机制和策略。

  32. 虚拟化层引入了增加的内存使用量和处理器开销,以及增加的性能开销。

(a) 一个纳秒年是 10^{-9}\times 365\times 24\times 3600 = 31.536 毫秒。

(b) 1 米

(c) 有 2^{50} 字节,即 1,099,511,627,776 字节。

(d) 它是 6\times 10^{24} 千克或 6\times 10^{27} 克。

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值