- 在这个图中,我们将控制器和设备作为独立的单元进行展示。原因是为了使一个控制器能够处理多个设备,从而消除了每个设备都需要一个控制器的需求。如果控制器几乎免费,那么将控制器内置到设备中会更简单。这种设计也可以实现并行多次传输,从而提供更好的性能。
- 扫描仪的最大输出速度为 400 KB/ 秒。无线网络的运行速度为 6.75 MB/ 秒,没有问题。
- 这个想法不好,因为内存总线比 I/O 总线更快,所以将控制器内置到设备中会更简单和高效。此外,内存请求的处理是先完成内存总线,然后再等待 I/O 总线,如果 CPU 等待直到 I/O 总线完成,那么会影响内存性能,变成了 I/O 总线的性能。如果尝试通过内存总线进行第二次引用,但这次是对 I/O 设备的引用,那么就会失败。因此,这种改进实际上是没有意义的。
- 精确中断的一个优点是操作系统中的代码简单,因为机器状态是明确定义的。另一方面,在不精确中断中,操作系统编写者必须找出哪些指令已经部分执行,以及执行到什么程度。然而,精确中断会增加芯片设计和芯片面积的复杂性,这可能导致 CPU 变慢。
- 每个总线事务需要50或100纳秒,每个事务可以处理4个字节,因此每秒可以处理1000万个总线事务,或者10GB数据。如果连续的请求是针对同一设备或不同设备,总线事务的响应时间仍然是100纳秒。DMA控制器的通道数量并不影响总线事务的响应时间。总线并不关心这些设备之间的轮换。
- (a) 按字方式: 其中第一项是用于获取总线并将命令发送到磁盘控制器,第二项是用于传输字,第三项是用于确认。总共需要 纳秒。
(b) 突发方式: ,其中第一项是获取总线并将命令发送到磁盘控制器,第二项是磁盘控制器获取总线,第三项是突发传输,第四项是获取总线并进行确认。总共需要 。
- 内存到内存的复制可以通过先从内存读取数据到 DMA 控制器,再将数据从 DMA 控制器写入内存来实现。这种方法的优点是可以让 CPU 进行其他任务,缺点是由于 DMA 控制器比 CPU 慢,而且数据传输通过系统总线进行,所以这种内存到内存的复制可能会很慢。
- 一个中断需要将 34 个字推送到堆栈上。从中断返回需要从堆栈中提取 34 个字。仅仅这个开销就需要 340 纳秒。因此,每秒最多处理的中断数量不超过大约 294 万个,假设每个中断都不需要执行任何工作。
- 现代 CPU 的执行速率取决于每秒完成的指令数量,而非指令执行时间。即使一条指令需要 30 纳秒,如果 CPU 每秒可以完成 10 亿条指令,那么它也是一个 1000 MIPS 的机器。因此,通常不需要太多地关注指令执行时间,而更应该关注每秒完成的指令数量。然而,保持指令执行的连续性可以显著增加中断延迟,而且需要一些管理工作来正确实现。
- 在初始阶段完成任务并选择在最后执行是一个可行的方案,因为中断服务程序的代码比较简短。通过在中断期间输出另一个字符并等待确认,在另一个中断发生时,打印机可以在中断期间工作,从而略微提高打印速度。然而,这种方法的劣势是在其他中断可能被禁用的情况下,存在较长的空闲时间,因为打印机只有在中断期间才能工作。
- 是的,堆栈中的程序计数器指向尚未获取的第一条指令。在此之前的所有指令都已执行,指向的指令及其后续指令尚未执行。这符合准确中断的条件。在拥有单个流水线的机器上实现准确中断并不难。问题出在指令的乱序执行,而这里并非如此。
- 打印机每分钟可以打印 个字符,即每秒 400 个字符。每个字符在中断处理中需要 50 微秒的 CPU 时间,因此在每秒钟中,中断开销为 20 毫秒。使用中断驱动的输入 / 输出,剩余的 980 毫秒可以用于其他工作。换句话说,中断开销仅占 CPU 的 2%,几乎不会对运行中的程序产生影响。
- UNIX 的做法如下,有一个由设备号索引的表格,其中每个表项都是一个 C 结构,包含指向设备的打开、关闭、读取和写入函数以及其他一些内容的指针。要安装一个新设备,需要在此表格中添加一个新表项,并填充指针,通常是指向新加载的设备驱动程序。
- (a) 设备驱动程序。
(b) 设备驱动程序。
(c) 与设备无关的软件。
(d) 用户级软件。
- 这个过程中需要复制数据包四次,耗时 4.1 毫秒,同时还存在两个中断,共计 2 毫秒。最后,传输时间为 0.83 毫秒,总共为每 1024 字节 6.93 毫秒。因此,最大数据传输速率为 147,763 字节 / 秒,约占名义的 10 兆位 / 秒网络容量的 12%。如果考虑协议开销,情况会更糟糕。
- 如果在输出出现时立即分配打印机,一个进程可能通过打印几个字符然后睡眠一周来占用打印机。
- 磁盘每秒旋转 120 次,因此旋转一周需要 毫秒。每圈有 200 个扇区,每个扇区的时间为该数字的 或 毫秒。在 1 毫秒的寻道时间内,磁头下方通过了 24 个扇区。因此,柱面错位应为 24。
- 在 7200 RPM 时,每秒有 120 次旋转,因此一次旋转大约需要 8.33 毫秒。将此除以 500,得到约 16.67 微秒的扇区时间。
- 每秒有 120 次旋转。在其中一次旋转中, 字节通过磁头。因此,磁盘每圈可以读取 256,000 字节,即每秒读取 30,720,000 字节。
- RAID 2 级别不仅可以从故障驱动器中恢复,还可以从未被检测到的瞬态错误中恢复。如果一个驱动器传递了一个错误的位,RAID 2 级别可以纠正,但 RAID 3 级别不能纠正。
- 发生 0 次故障的概率 是 。发生 1 次故障的概率 是 。RAID 故障的概率是 。即 。
- RAID 0、2、3、4 和 5 级别允许并行读取以服务读取请求,而 RAID 1 级别则允许两个读取请求同时进行。所有 RAID 级别提供类似的写入性能,但级别 0 没有空间开销,级别 1 的空间开销为 100%,级别 2 的空间开销约为 18.75%,级别 3 的空间开销约为 3.13%,假设在级别 4 和 5 中有 33 个驱动器,它们的空间开销为 3.13%。可靠性方面,级别 0 没有可靠性支持,而其他 RAID 级别可以经受住一次硬盘崩溃。在级别 3、4 和 5 中,一个字中的单个随机位错误可以被检测到,而在级别 2 中,一个字中的单个随机位错误可以被检测和纠正。
- 1 个斯比字节等于 字节;1 个皮比字节等于 字节。1 个斯比字节可以容纳 个皮比字节。
- 在两极之间会产生一个磁场,但制造出一个小的磁场源很困难,并且磁场的扩散速度很快,这导致了机械问题,因为需要将磁介质表面靠近磁源或传感器。相比之下,半导体激光器可以在很小的空间中产生光,并且可以使用光学手段将光聚焦到远离源的非常小的点上。
- 光盘的主要优势是其比磁盘具有更高的记录密度。磁盘的主要优势是其比光盘快一个数量级。
- 可能。如果大多数文件存储在逻辑连续的扇区中,对扇区进行交错以使程序有时间处理刚刚接收到的数据,这样当下一个请求发出时,硬盘就处于正确位置。是否值得这样做取决于运行的程序类型以及它们的行为是否一致。
- 可能是,也可能不是。双重交错实际上是两个扇区的柱面错位。如果磁头在两个扇区时间内可以进行一个柱面到另一个柱面的寻道,那么不需要额外的柱面错位。如果不能,那么需要额外的柱面错位以避免在寻道后错过一个扇区。
- (a) 一个区域的容量是 轨道数 \times 柱面数 \times 每柱面扇区数 \times 每扇区字节数。
区域 1 的容量为 字节。
区域 2 的容量为 字节。
区域 3 的容量为 字节。
区域 4 的容量为 字节。
总和 = 131072000 + 163840000 + 196608000 + 229376000 = 720896000。
(b) 7200 转 / 分钟意味着每秒有 120 转。在 1 毫秒的寻道时间内,有 0.120 的扇区被覆盖。在区域 1 内,磁头将在 1 毫秒内经过 个扇区,因此,区域 1 的最佳柱面错位为 19.2 个扇区。在区域 2 内,磁头将在 1 毫秒内经过 个扇区,因此,区域 2 的最佳柱面错位为 24 个扇区。在区域 3 内,磁头将在 1 毫秒内经过 个扇区,因此,区域 3 的最佳柱面错位为 28.8 个扇区。在区域 4 内,磁头将在 1 毫秒内经过 个扇区,因此,区域 4 的最佳柱面错位为 33.6 个扇区。
(c) 最大数据传输速率将在读取 / 写入最外圈(区域 4)的柱面时实现。在该区域,每秒读取 120 次,每次读取 280 个扇区。因此,数据传输速率为 字节 / 秒。
- 驱动器容量和传输速率加倍。搜索时间和平均旋转延迟保持不变。没有属性变差。
- 一个相当明显的结果是,没有现有操作系统可以工作,因为它们都会查看这里以确定磁盘分区的位置。更改分区表的格式将导致所有操作系统失效。更改分区表的唯一方法是同时更改所有操作系统以使用新的格式。
- (a) 10 + 12 + 2 + 18 + 38 + 34 + 32 = 146 柱面 = 876 毫秒。
(b) 0 + 2 + 12 + 4 + 4 + 36 + 2 = 60 柱面 = 360 毫秒。
(c) 0 + 2 + 16 + 2 + 30 + 4 + 4 = 58 柱面 = 348 毫秒。
- 在电梯算法中,最坏情况下,读 / 写请求的响应时间将几乎是两个完整的磁盘扫描,而在修改后的算法中,响应时间最多为一个完整的磁盘扫描。
- 单次模式的缺点是中断处理程序所消耗的时间未计算在内,因为在此期间减小计数器的过程会暂停。方波模式的缺点是高时钟频率可能导致多个中断在前一个中断完成之前引发。
- 不一定。一个读取 10,000 个块的 UNIX 程序会逐个发出请求,在每个请求发出后阻塞,直到完成。因此,磁盘驱动器只能看到一次请求;它无法做任何事情,只能按照到达的顺序处理它们。Harry 应该同时启动多个进程,看看电梯算法是否有效。
- 是有竞争,但这并不重要。由于稳定写本身已经完成,非易失性 RAM 未被更新仅意味着恢复程序将知道在写哪个块。它将读取两个副本。找到它们相同,它将不会更改任何一个,这是正确的操作。在非易失性 RAM 更新之前发生崩溃的影响只意味着恢复程序将比它应该的多进行两次磁盘读取。
- 即使 CPU 在恢复过程中崩溃,磁盘仍然保持一致。这是因为在恢复过程中,如果 CPU 在将来自驱动器 1 或 2 的块完全复制到另一个驱动器之前崩溃,恢复过程将检测到 ECC 错误并再次复制块。如果 CPU 在将来自驱动器 1 或 2 的块复制到另一个驱动器后崩溃,情况也类似。最后,如果 CPU 在图 (d) 中的恢复过程中崩溃,情况与以前相同;如果 CPU 在将来自驱动器 1 或 2 的块完全复制到驱动器 2 之前或后崩溃,情况与图 (e) 中的情况相同。
- 在图 5-27(b) 和 5-27(d) 所示的场景中会出现问题,因为如果损坏块的 ECC 正确,则可能与情景 5-27(c) 看起来相同。在这种情况下,无法检测到哪个磁盘包含有效的(旧的或新的)块,因此无法进行恢复。
- 每秒两毫秒,每秒 60 次等于 120 毫秒 / 秒,或者占 CPU 的 12%。
- 在这些参数下,
(a) 使用一个 500 MHz 的晶体,计数器可以每 2 纳秒递减一次。所以,为了每毫秒有一个计时信号,寄存器的值应为 = 500,000。
(b) 为了每 100 微秒有一个时钟信号,保持寄存器的值应该是 50,000。
- 在 5000 时刻:当前时间 = 5000;下一个信号 = 8;报头 → 8 → 4 → 3 → 14 → 8。
在 5005 时刻:当前时间 = 5005;下一个信号 = 3;报头 → 3 → 4 → 3 → 14 → 8。
在 5013 时刻:当前时间 = 5013;下一个信号 = 2;报头 → 2 → 14 → 8。
在 5023 时刻:当前时间 = 5023;下一个信号 = 6;报头 → 6 → 4 → 5。
- 一年的秒数是 。这个数字是 31,557,600。从 1970 年 1 月 1 日开始,计数器在经过 秒后会循环。 的值是 136.1 年,所以循环将发生在 2106.1 年初的二月。当然,到那时,所有的计算机都将至少是 64 位的,所以根本不会发生循环。
- 滚动窗口需要复制 79 行 80 个字符或 6320 个字符。复制 1 个字符(16 字节)需要 800 纳秒,所以整个窗口需要 5.056 毫秒。将 80 个字符写到屏幕上需要 400 纳秒,所以滚动并显示一个新行需要 5.456 毫秒。这样每秒可以达到大约 183.2 行。
- 假设用户不小心要求编辑器打印成千上万行的文本。然后他按下 DEL 键来停止打印。如果驱动程序不丢弃输出,输出可能会在按下 DEL 键后继续几秒钟,这会使用户一次又一次地按下 DEL 键,并因为没有发生任何动作而感到沮丧。
- 它应该将光标移动到第 5 行的第 7 个位置,然后删除 6 个字符。序列是 ESC [ 5 ; 7 H ESC [ 6 P。
- 鼠标最大移动速率为 200 毫米 / 秒,相当于 2000 个鼠标事件 / 秒。如果每个报告是 3 个字节,则输出速率为 6000 个字节 / 秒。
- 在 24 位颜色系统中,只能表示 种颜色。这还不是全部。例如,假设一位摄影师拍摄了 300 罐纯蓝色油漆,每罐油漆含有稍微不同的颜料量。第一罐可能由 (R, G, B) 值 (0, 0, 1) 表示。下一罐可能由 (0, 0, 2) 表示,依此类推。由于 B 坐标只有 8 位,无法表示 300 种纯蓝色的不同值。一些照片将以错误的颜色显示。另一个例子是颜色 (120.24, 150.47, 135.89)。它无法被表示,只能近似表示为 (120, 150, 136)。
- (a) 每个像素在 RGB 中占据 3 个字节,所以表格空间为 字节,即 1152 字节。
(b) 每个字符需要 100 纳秒,所以每个字符需要 115.2 微秒。这样输出速率约为 8681 个字符 / 秒。
- 重写文本屏幕需要复制 2000 字节,可以在 4 微秒内完成。重写图形屏幕需要复制 字节,大约需要 4.72 毫秒。
- 在 Windows 中,操作系统自己调用处理程序。在 X Windows 中,没有类似这样的情况发生。X 只接收消息并在内部处理它。
- 第一个参数是必要的。首先,坐标是相对于某个窗口的,所以需要 hdc 指定窗口,从而指定原点。其次,如果矩形落在窗口外部,它将被剪裁,所以需要窗口坐标。第三,矩形的颜色和其他属性取自由 hdc 指定的上下文,这是非常重要的。
- 显示尺寸为 字节,即 192,000 字节。以每秒 10 帧的速度计算,每秒传输 1,920,000 字节或 15,360,000 位。这占据了快速以太网的 15%。
- 网络段上的带宽是共享的,所以在 1Mbps 网络上同时请求不同数据的 100 个用户将会看到每个人的有效速度为 10Kbps。在共享网络上,可以进行多播电视节目,因此不管有多少用户,视频数据包仅广播一次,这在很大程度上是有效的。当有 100 个用户在浏览网页时,每个用户将获得 1/100 的带宽,因此性能可能会迅速下降。
- 薄客户机的优点包括低成本和不需要为客户端进行复杂管理。缺点包括(潜在的)由于网络延迟而导致的性能降低以及(潜在的)隐私丧失,因为客户端的数据 / 信息与服务器共享。
- 如果 n=10 ,CPU 仍然可以按时完成工作,但能耗显著减少。如果在全速运行 1 秒钟期间的能耗为 E ,那么全速运行 100 毫秒然后闲置 900 毫秒的能耗为 E /10。以 1/10 速度运行 1 秒钟的能耗为 E /100,节约了 9E /100。通过降低电压来节省的百分比为 90%。
- 窗口系统需要更多的内存来显示图形界面,因此会使用更多的虚拟内存,相比于文本模式需要更多的硬盘空间。由于窗口系统使用了更多的硬盘空间,它也不太可能导致硬盘自动关闭电源,因为硬盘在一段时间内没有活动时会自动关闭电源。
07-09
1万+
05-05
8419
10-03
8333