可以恢复到一个一致的状态(写操作或者已完成,或者完全没有发生) 。如果在
恢复的过程中 CPU 再次崩溃,这一特性是否还保持?请解释你的答案。
答:是的,即使在恢复程序运行的过程中
CPU 再次崩溃,磁盘依然能恢复一致
状态。考虑图 5-31 ,( a)或( e)中没有恢复。假设 CPU 在( b)恢复期间崩溃,
如果 CPU 在驱动器 2 的块被完全复制到驱动器
1 之前崩溃,情况仍然和以前一
2 复制
样。随后的恢复过程将检测驱动器 1 中的 ECC 错误,然后再次从驱动器
块到驱动器 1。如果 CPU 在驱动器 2 的块被复制到驱动器 1 后崩溃,情况和(e)
是一样的情况。假设 CPU 在( c)恢复期间崩溃。如果 CPU 崩溃之前,从驱动
器 1 块已完全复制到驱动器 2,情况和( d )是一样的。随后的恢复过程将检测驱
动器 2 中的 ECC 错误,并将该块从驱动器 1 复制到驱动器 2。如果 CPU 从 驱动器 1 的块被复制到驱动器 2 后崩溃,情况和( e)是一样的。最后,假设 CPU 在( d)恢复期间崩溃。如果 CPU 在驱动器 1 之前的块被完全复制到驱动
器 2 后崩溃,情况仍然和以前一样。随后的恢复过程将检测驱动器
2 中的 ECC
错误,然后再次从驱动器 1 复制块到驱动器 2。如果 CPU 从驱动器 1 的块被复
制到驱动器 2 后崩溃,情况和( e)是一样的。
28. 某计算机上的时钟中断处理程序每一时钟滴答需要 2ms (包括进程切换的开
销),时钟以 60Hz 的频率运行,那么 CPU 用于时钟处理的时间比例是多少?
答:时钟频率 60HZ ,故时钟周期 T = 1000ms/60 = 50/3ms ;CPU 用于时间处
理的比例为: 2 / (50/3)
× 100%。= 12%
29. —台计算机以方波模式使用一个可编程时钟。如果使用 500MHz 的晶体,为了达到如下时钟分辨率,存储寄存器的值应该是多少?
a) 1ms (每毫秒一个时钟滴答) 。
b) 100us 。
答:( a)使用一个 500 MHz 的晶体,计数器可以每 2 纳秒的递减。所以,每毫
秒一次,寄存器应该是 1000000 / 2 = 500000 。
( b)每 100 秒获得一个时钟刻度,持有寄存器值应为
50000 。
30. —个系统通过将所有未决的时钟请求链接在一起而模拟多个时钟,如图 5-34
所示。假设当前时刻是
5000 ,并且存在针对时刻 5008 、5012 、5015 、5029 和
5000 、5005 和 5013 时时钟头、当前 5023 时时钟头、当前时刻以及下一信号
5037 的未决的时钟请求。请指出在时刻
时刻以及下一信号的值。请指出在时刻
的值。
答:
时间 5000 :
当前时间 = 5000 ;下一个信号时间 5005 :
当前时间 = 5005 ;下一个信号时间 5013 :
当前时间 = 5013 ;下一个信号时间 5023 :
= 8;头 → 8→ 4→ 3→ 14。 = 3;头 → 3→ 4→ 3→ 14。 = 2 ;头 2 → 14 →8。
→8
→8
当前时间 = 5023 ;下一个信号 = 6 ;头 → 6 → 4 →5
31. 许多 UNIX 版本使用一个 32 位无符号整数作为从时间原点计算的秒数来跟踪时间。这些系统什么时候会溢出(年与月) ? 你盼望这样的事情实际发生吗?
答:一年的平均秒数为
365.25 × 24 × 3600 = 31,557,600。计数器大约在 2^32 秒
= 136.1 年,也就是大约在 2106 年 2 月。如果到
之后回绕。 2^32/31,557,600
那时所有计算机至少是
64 位的,因此该情形将不会发生。
32. —个位图模式的终端包含 1280× 960 个像素。为了滚动一个窗口, CPU (或者控制器)必须向上移动所有的文本行, 这是通过将文本行的所有位从视频 RAM
的一部分复制到另一部分实现的。 如果一个特殊的窗口高
60 行宽 80 个字符(总
共 4800 个字符),每个字符框宽 8 个像素高 16 像素,那么以每个字节 50ns 的
复制速率滚动整个窗口需要多长时间?如果所有的行都是
80 个字符长,那么终
5 μs,每秒能够显示多少
端的等价波特率是多少?将一个字符显示在屏幕上需要
行?
答:滚动窗口需要复制
59 行× 80字符 = 4720 字符。复制 1 个字符 (16 个字节 )
需 800 ns ,因此整个窗口需要 3.776 ms 。向屏幕写 80 个字符需 400ns ,因此滚动和显示新的行需 4.176 ms 。大约 239.5 行/sec 。
33. 接收到一个 DEL(SIGINT) 字符之后,显示驱动程序将丟弃当前排队等候显示的所有输出。为什么?
答:假设用户无意中要求编辑器打印数千条线,然后他点
DEL 停止它。如果驱
动程序没有放弃输出, 则输出可能会持续几秒钟后, 当没有发生的事情时, 这将
使用户一次又一次地击中 DEL 并且刷新。
34. 在最初 IBM PC 的彩色显示器上, 在除了 CRT 电子束垂直回扫期间以外的任何时间向视频 RAM 中写数据都会导致屏幕上出现难看的斑点。一个屏幕映像为
25× 80个字符,每个字符占据 8×8像素的方框。每行 640 像素在电子束的一次
水平扫描中绘出,需要花费
63.6 μs,包括水平回扫。屏幕每秒钟刷新 60 次,每
次刷新均需要一个垂直回扫期以便使电子束回到屏幕顶端。 在这一过程中可供写
视频 RAM 的时间比例是多少?