《操作系统--精髓与设计原理》第七章复习题

第七章    内存管理

一、内存管理需要满足哪些需求?

重定位保护共享逻辑组织物理组织

二、为何需要重定位进程的能力?

在多道程序设计系统中,可用的内存空间通常被多个进程共享。通常情况下,程序员事先并不知道在某个程序执行期间会有其他哪些程序驻留在内存中。此外,我们还希望提供一个巨大的就绪进程池,以便把活动进程换入或换出内存,进而使处理器的利用率最大化。程序换出到磁盘后,下次换入时要放到与换出前相同的内存区域中会很难。相反,我们需要把进程重定位(relocate)到内存的不同区域。

三、为何不可能在编译时实施内存保护?

由于程序在内存中的位置不可预测,因而在编译时不可能检查到绝对地址来确保保护。

此外,大多数程序设计语言允许在运行时进行地址的动态计算(如通过计算数组下标或数据结构中的指针)。因此,必须在运行时检查进程产生的所有内存访问,以确保它们只访问分配给该进程的内存空间。(所幸的是,既支持重定位也支持保护需求的机制已经存在)

四、允许两个或多个进程访问内存某一特定区域的原因是什么?

任何保护机制都必须具有一定的灵活性,以允许多个进程访问内存的同一部分。例如,多个进程正在执行同一个程序时,允许每个进程访问该程序的一个副本,要比让每个进程有自己的副本更有优势。合作完成同一个任务的进程可能需要共享访问相同的数据结构。因此,内存管理系统在不损害基本保护的前提下,必须允许对内存共享区域进行受控访问。

五、在固定分区方案中,使用大小不等的分区有何好处?

  1. 可以提供很多分区的同时提供一到两个非常大的分区。大的分区允许将很大的进程全部载入主存中。
  2. 由于小的进程可以被放入小的分区中,从而减少了内部碎片。

六、内部碎片和外部碎片有何区别?

内部碎片是指由于被装入的数据块小于分区大小而导致的分区内部所浪费的空间。

外部碎片是与动态分区相关的一种现象,它是指在所有分区外部的存储空间会变成越来越多的碎片。

七、逻辑地址、相对地址和物理地址有何区别?

逻辑地址(logical address)是指与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须把它转换为物理地址。

相对地址(relative address)是逻辑地址的一个特例,它是相对于某些已知点(通常是程序的开始处)的存储单元。

物理地址(physical address)或绝对地址是数据在内存中的实际位置。

八、页和页框有何区别?

在分页系统中,进程和磁盘上存储的数据被分为大小固定相等的小块,叫做页(page)。而主存中被分成了同样大小的小块,叫做帧(frame)。一页恰好可以装入一帧中。如果内存被划分成大小固定、相等的块,且块相对比较少,每个进程也被分成同样大小的块,那么进程中称为页的块可以分配到内存中称为页框的可用块。

九、页和段有何区别?

分段是细分用户程序的另一种可选方案。采用分段技术,程序和相关的数据被划分成一组段。尽管有一个最大段长度,但并不需要所有的程序的所有段的长度都相等。和分页一样,采用分段计数时的逻辑地址也由两部分组成:段号和偏移量。(分页是页号和偏移量)

猜你喜欢

转载自blog.csdn.net/qq_36414798/article/details/80624043