当前位置:首页 > 《操作系统精髓与设计原理·第五版》复习题及答案
3.如果一个写进程正在往文件中写时,则禁止任何读进程读文件。
第6章 并发性:死锁和饥饿
6.1 给出可重用资源和可消费资源的例子。
可重用资源:处理器,I/O通道,主存和辅存,设备以及诸如文件,数据库和信号量之类的数据结构。
可消费资源:中断,信号,消息和I/O缓冲区中的信息。 6.2 可能发生死锁所必须的三个条件是什么? 互斥,占有且等待,非抢占。 6.3 产生死锁的第4个条件是什么? 循环等待。
6.4 如何防止占有且等待的条件?
可以要求进程一次性地请求所有需要的资源,并且阻塞这个资源直到所有请求都同时满足。
6.5 给出防止无抢占条件的两种方法。
第一种,如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占用的资源,如果有必要,可再次请求这些资源和另外的资源。
第二种,如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。 6.6 如何防止循环等待条件?
可以通过定义资源类型的线性顺序来预防。如果一个进程已经分配到了R类型的资源,那么它接下来请求的资源只能是那些排在R类型之后的资源类
13
型。
6.7 死锁避免,检测和预防之间的区别是什么?
死锁预防是通过间接地限制三种死锁必要条件的至少一个或是直接地限制循环等待的发生来避免死锁的出现。死锁避免允许可能出现的必要条件发生,但是采取措施确保不会出现死锁的情况。而死锁检测允许资源的自由分配,采取周期性的措施来发现并处理可能存在的死锁情况。
第7章 内存管理
7.1 内存管理需要满足哪些需求?
重定位、保护、共享、逻辑组织和物理组织。 7.2 为什么需要重定位进程的能力?
通常情况下,并不能事先知道在某个程序执行期间会有哪个程序驻留在主存中。此外还希望通过提供一个巨大的就绪进程池,能够把活动进程换入和换出主存,以便使处理器的利用率最大化。在这两种情况下,进程在主存中的确切位置是不可预知的。
7.3 为什么不可能在编译时实施内存保护?
由于程序在主存中的位置是不可预测的,因而在编译时不可能检查绝对地址来确保保护。并且,大多数程序设计语言允许在运行时进行地址的动态计算(例如,通过计算数组下标或数据结构中的指针)。因此,必须在运行时检查进程产生的所有存储器访问,以便确保它们只访问了分配给该进程的存储空间。
7.4 允许两个或多个进程访问进程的某一特定区域的原因是什么?
如果许多进程正在执行同一程序,则允许每个进程访问该程序的同一个副本
14
要比让每个进程有自己单独的副本更有优势。同样,合作完成同一任务的进程可能需要共享访问同一个数据结构。
7.5 在固定分区方案中,使用大小不等的分区有什么好处?
通过使用大小不等的固定分区:1.可以在提供很多分区的同时提供一到两个非常大的分区。大的分区允许将很大的进程全部载入主存中。2.由于小的进程可以被放入小的分区中,从而减少了内部碎片。 7.6 内部碎片和外部碎片有什么区别?
内部碎片是指由于被装入的数据块小于分区大小而导致的分区内部所浪费的空间。外部碎片是与动态分区相关的一种现象,它是指在所有分区外的存储空间会变成越来越多的碎片的。
7.7 逻辑地址、相对地址和物理地址间有什么区别?
逻辑地址是指与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须把它转化成物理地址。相对地址是逻辑地址的一个特例,是相对于某些已知点(通常是程序的开始处)的存储单元。物理地址或绝对地址是数据在主存中的实际位置。 7.8 页和帧之间有什么区别?
在分页系统中,进程和磁盘上存储的数据被分成大小固定相等的小块,叫做页。而主存被分成了同样大小的小块,叫做帧。一页恰好可以被装入一帧中。 7.9 页和段之间有什么区别?
分段是细分用户程序的另一种可选方案。采用分段技术,程序和相关的数据被划分成一组段。尽管有一个最大段长度,但并不需要所有的程序的所有段的长度都相等。
15
第8章 虚拟内存
8.1 简单分页与虚拟分页有什么区别?
简单分页:一个程序中的所有的页都必须在主存储器中程序才能正常运行,除非使用覆盖技术。
拟内存分页:不是程序的每一页都必须在主存储器的帧中来使程序运行,页在需要的时候进行读取。 8.2 解释什么是抖动。
虚拟内存结构的震动现象,在这个过程中处理器大部分的时间都用于交换块,而不是执行指令。
8.3 为什么在使用虚拟内存时,局部性原理是至关重要的?
可以根据局部性原理设计算法来避免抖动。总的来说,局部性原理允许算法预测哪一个当前页在最近的未来是最少可能被使用的,并由此就决定候选的替换出的页。
8.4 哪些元素是页表项中可以找到的元素?简单定义每个元素。 帧号:用来表示主存中的页来按顺序排列的号码。 存在位(P):表示这一页是否当前在主存中。 修改位(M):表示这一页在放进主存后是否被修改过。 8.5 转移后备缓冲器的目的是什么?
转移后备缓冲器(TLB)是一个包含最近经常被使用过的页表项的高速缓冲存储器。它的目的是为了减少从磁盘中恢复一个页表项所需的时间。 8.6 简单定义两种可供选择的页读取策略。
在请求式分页中,只有当访问到某页中的一个单元时才将该页取入主存。 在预约式分页中,读取的并不是页错误请求的页。
16
共分享92篇相关文档