复习题
7.1.内存管理需要满足哪些需求?
答:重定位、保护、共享、逻辑组织、物理组织。
7.2.为什么需要重定位进程的能力?
答:一旦程序从内存中被换出到磁盘,当下一次被换入时,如果必须放入被换出前相同的内存区域,那么将会是一个很大的限制。为了避免这种限制,我们必须把进程重定位到内存的不同的区域。举个例子:进程就是乘客,内存就是公交车,公交车到站后,某一个乘客因为有事下了公交车,然后他把事情处理完以后上车发现,之前的座位已经被另一个人霸占了,所以该乘客只能重定位寻找另外空闲的位子。
7.3.为什么不可能在编译时实施内存保护?
答:由于程序在内存中的位置是不可预测的,因而在编译时不可能检查绝对地址来进行保护。并且大多数程序设计语言允许在运行时进行地址的动态计算(例如,通过计算数组下标或数据结构中的指针)。因此,必须在运行时检查进程产生的所有内存访问,以确保它们只访问了分配给该进程的存储空间。
7.4.允许两个或多个进程访问内存某一特定区域的原因是什么?
答:任何保护机制都必须具有一定的灵活性,以允许多个进程访问内存的同一部分。例如,如果多个进程正在执行同一个程序,则允许每个进程访问该程序的同一个副本要比让每个进程有自己单独的副本更有优势。合作完成同一个任务的进程可能需要共享访问相同的数据