1、Chapter 55.10 OS 如何帮助安装新的驱动程序而无须重新编译 OS ?OS 中有一张关于设备编号的检索表,每个表项是一个结构体,结构体中有指向各种功能函数的指针,若安装新的驱动程序,只须将新的表项添加到检索表中,并且把各类指针加到相应的表项中。5.13 为什么输出文件在打印前通常都假脱机输出到磁盘上?有的进程只需要打印几个字符,却可能长期占用打印机,所以使用假脱机可以避免某些进程不必要地长期空占打印机问题。5.19 若磁盘控制器没有内部缓冲,交错编号还有用吗?有可能有用,如果大多是文件被存储在逻辑上连续的扇区内,那么就可能使得程序有时间以交叉扇区的形式处理刚刚接受的数据,这样当下一
2、请求发出时,磁盘正好在正确的位置。5.24 求不同算法的寻道时间?a) 先来先服务:(10+12+2+18+34+32)*6 ms = 876 msb)最近柱面优先:(0+2+12+4+4+36+2)*6ms = 360 msc)电梯算法:(0+2+16+2+30+4+4)*6ms = 348 ms5.25 沿相同方向扫描对电梯算法的改进有何优点?在最坏的情况下,电梯算法可能需要扫描两个全磁道,而改进算法只需要扫描一个全磁道。5.27 关于稳定存储器的讨论。 。可借助图 5-31 进行分析,若写操作未发生,恢复时不用修改任何值 若写第一个驱动器时崩溃,只需将 2 copy 到 1 就行 若写完
3、驱动器 1 后崩溃,只需将 1 copy 到 2 就可完成写操作 在成功写完驱动器 1,写驱动器 2 时崩溃,只需将 1 copy 到 2 就可完成写操作 在成功写完驱动器 1 和 2 时崩溃,则不需要恢复。如果在 CPU 恢复过程中再次崩溃,这一特性还能保持,因为这类似于以上列举的五种情况。5.28 时钟滴答 2ms,频率 60Hz,求 CPU 用于时钟处理的时间比例?2ms / (1/60 * 10 3 ms) =0.125.30 求不同时刻时间头,当前时间和下一个信号?在时刻 5000 时:时钟头843148 当前时间:5000 下一个信号:8在时刻 5005 时:时钟头343148 当
4、前时间:5005 下一个信号:3在时刻 5013 时:时钟头2148 当前时间:5013 下一个信号: 2在时刻 5023 时:时钟头68 当前时间: 5023 下一个信号: 6Chapter 66.11 图 6-8 是否可用来说明三个进程和资源的死锁问题?可以,把它看成一个三维坐标系,并且用 z 轴坐标作为第三个进程已经完成的指令。6.13 一个系统是否可以处于既非死锁也不安全的状态?可以,但是这将导致死锁,举例:在该状态中有个别进程可以继续运行,当所有进程同时要求运行时就导致死锁。6.16 关于图 6-11b 的讨论若 D 再多请求 1 个单位,会导致不安全状态,但是 C 请求时安全的。6
5、.18 p 个进程最多需 m 个资源,有 r 个可用,不会发生死锁的条件?最坏的情况是每个进程有 m-1 个资源,还需剩下的 1 个就不会死锁,所以不会发生死锁的条件是 r = p*(m-1) + 16.22 已知各类参数和 x,求保持该状态时安全状态的 x 的最小值?用列举法,从 0 开始试验,可得 x=2 时可保持安全状态。6.23 说明消除环路等待的规则的缺陷?比如说,若需将一个很大的文件从磁带复制到打印机,若一次只能得到一个资源,那么需要将它分成好几次循环才能完成,加长了进程的运行时间而且打印也可能不连贯。6.29 解释死锁、活锁和饥饿的区别?死锁:一组进程中的每一个进程,均无限期地等待此组进程中某个其他进程占有的,因而永远无法得到的资源,这种现象称为进程死锁。 饥饿:,当多个进程同时申请某类资源时,由分配策略确定资源分配给进程的次序。当策略不公平时,即使系统没有发生死锁,某些进程也可能会长时间等待当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。活锁:在忙等待情况下发生的饥饿称为活锁。