13.1:优先级规定的问题,设备优先级高于用户进程优先级;实时设备优先级高于其他普通设备优先级;控制设备中断比数据传输优先级高,低优先级的中断造成饥饿问题,一直被高优先级抢占 13.2:支持将内存映射 I/O 到设备控制寄存器的优点是,它消除了指令集中对特殊 I/O 指令的需求,因此也不需要强制实施阻止用户程序执行这些 I/O 指令的保护规则。缺点…
12.1:a:从理论上讲,对磁头当前所在的轨道的新请求可以在处理这些请求时尽快到达。根据磁道处理b:所有早于某个预定期限的请求都可以“强制”到队列的顶部,并且可以为每个请求设置一个关联的位,以指示在这些请求之前不能移动任何新请求。对于 SSTF,队列的其余部分必须相对于这些“旧”请求中的最后一个进行重新组织(可能存在饥饿问题)。c:请求页面比交换的…
11.1:如果所有扩展数据块的大小相同,并且大小是预先确定的,则简化了块分配方案。一个简单的位图或范围的空闲列表就足够了。如果扩展数据块可以是任意大小并且是动态分配的,则需要更复杂的分配方案。可能很难找到适当大小的范围,并且可能存在外部碎片。可以使用前面几章中讨论的 Buddy 系统分配器来设计适当的分配器。当范围可以是几个固定大小,并且这些大小是…
10.1:是导致原来的链接使用新创建的文件,可以通过当使用这些链接的时候给出文件不存在或者访问非法错误,维护指向某个文件的所有链接的列表,并在删除文件时删除其中每个链接,保留链接,在尝试访问已删除文件时将其删除,维护文件引用列表(或计数器),仅在删除对该文件的所有链接或引用后才删除该文件 10.2:仅仅一个列表,对于不同进程打开的文件,OS需要维护…
这篇文章没有摘要
9.1:a:可能发生,内存中有对应帧 b:TLB没有对应页,内存中也没有,发生缺页,从外存调入页面c:TLB命中说明TLB中有对应帧,没有缺页 d:不可能发生,既然TLB已经命中就不可缺页 9.2:a:运行到阻塞 b:如果再页表中有则继续运行,如果没有则阻塞 c:不改变 9.3:a:最初,由于需要的页面尚未加载到内存中,因此缺页率相当高。b:缺页率…
8.1:内部碎片:分配给进程的内存没有全部使用而产生的多余内存外部碎片:进程与进程之间存在未被分配的内存 8.2:链接编辑器必须将未解析的符号地址替换为与最终程序二进制文件中的变量关联的实际地址。为了执行此操作,模块应跟踪引用未解析符号的指令。在链接期间,每个模块在整个程序二进制文件中分配一系列地址,并且当执行此操作时,可以在其他模块中补充对该二进…
7.1:a:1:互斥 2:持有并等待 3:非抢占 4:循环等待b:解决方式:如果交通状况良好,车辆不会立即驶入十字路口,方式发生死锁。 7.2:是的,依旧满足上面的四个条件造成死锁,在多线程之间循环等待 7.3:CPU调度,如果在thread_two之前安排了thread_one,并且thread_one能够在计划thread_two之前获取两个互…
6.30:参考3.13,使用了互斥锁的机制来分配pid 6.31:a:竞争条件:available_resources变量 b:对全局变量进行操作的代码部分 c:代码如下 #define MAX_RESOURCES 5 int availbale_resources = MAX_RESOURCES; pthread_mutex_t mutex; i…
6.1:假设账户余额为250.00,丈夫叫 提款(50), 妻子叫 存款(100)。显然,正确的值应该是300.00 由于这两笔交易将被序列化(排序进行),丈夫的本地余额值变为200.00,但在他能够提交交易之前, 存款(100) 操作发生并将余额的共享值更新为300.00然后我们切换回丈夫,共享余额的值设置为200.00 ,显然是不正确的值。 6…