第7章 内存管理
作者:互联网
复习题
7.1.内存管理需要满足哪些需求?
答:重定位、保护、共享、逻辑组织、物理组织。
7.2.为什么需要重定位进程的能力?
答:一旦程序从内存中被换出到磁盘,当下一次被换入时,如果必须放入被换出前相同的内存区域,那么将会是一个很大的限制。为了避免这种限制,我们必须把进程重定位到内存的不同的区域。举个例子:进程就是乘客,内存就是公交车,公交车到站后,某一个乘客因为有事下了公交车,然后他把事情处理完以后上车发现,之前的座位已经被另一个人霸占了,所以该乘客只能重定位寻找另外空闲的位子。
7.3.为什么不可能在编译时实施内存保护?
答:由于程序在内存中的位置是不可预测的,因而在编译时不可能检查绝对地址来进行保护。并且大多数程序设计语言允许在运行时进行地址的动态计算(例如,通过计算数组下标或数据结构中的指针)。因此,必须在运行时检查进程产生的所有内存访问,以确保它们只访问了分配给该进程的存储空间。
7.4.允许两个或多个进程访问内存某一特定区域的原因是什么?
答:任何保护机制都必须具有一定的灵活性,以允许多个进程访问内存的同一部分。例如,如果多个进程正在执行同一个程序,则允许每个进程访问该程序的同一个副本要比让每个进程有自己单独的副本更有优势。合作完成同一个任务的进程可能需要共享访问相同的数据结构。因此内存管理系统必须允许对内存共享区域进行受控访问,而不会损害基本的保护。
7.5.在固定分区方案中,使用大小不等的分区有什么好处?
答:可以解决大小相等的固定分区的两个难点:
- 程序太大而不能放入到一个分区中。此时需要使用覆盖技术。
- 内存利用率低,程序即使很小也需要占据一个完整的分区,产生较多的内部碎片。
因此,使用大小不等的分区的好处显而易见:可以放入较大的程序,以及提高内存的利用率,减少内部碎片。
7.6.内部碎片和外部碎片有什么区别?
答:内部碎片:进程装入分区后,由于进程小于分区大小,导致分区中还有多余的内存未使用,这多余的部分就叫内部碎片(顾名思义,分区的内部碎片)。
外部碎片:分区外没有利用到的多余空间,称为外部碎片。一般是由于那些空间太小了,使得没有任何一个进程能够进入那些分区,所以就浪费了。
7.7.逻辑地址、相对地址和物理地址有什么区别?
答:
- 物理地址:也称绝对地址,是数据在内存中的实际位置。
- 相对地址:是逻辑地址的一个特例,是相对某些已知点(通常是程序开始处)的存储单元。
- 逻辑地址:与当前数据在内存中的物理地址无关的访问地址,在执行对内存的访问前必须把它转换成物理地址。
7.8.页和页框之间有什么区别?
答:页是把进程分成固定大小的页,页的大小和页框一致。页框是把内存分成固定大小的块,并且页框很小。总之,页和进程相关,页框和内存相关。
7.9.页和段之间有什么区别?
答:页是固定大小的,段是大小不定的。段可以分成许多页。页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。 段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分。
关键术语
- 动态分区:分区长度和数目是可变的。当进程被装入内存时,系统会给它分配一块和它所需容量完全相等的内存空间,不多也不少。优点是没有内部碎片,缺点是需要压缩外部碎片,导致处理器利用率低。
- 固定分区:将内存划分为大小不再改变的静态分区。(注意,划分时分区大小可能全部相等,也可能不一样大,主要是划分后不再改变)小于或等于分区大小的进程可以装入分区中。优点是实现比较简单,开销小。缺点是产生较多的内部碎片,且活动进程的最大数目是固定的,也就是说,活动的进程数不可能多于分区数。目前几乎没有什么场合会使用固定分区的方法。
- 内存管理:在单道程序设计系统中,内存被分为两部分:一部分供操作系统使用(驻留监控程序、内核),一部分供当前正在执行的程序使用。在多道程序设计系统中,必须在内存中进一步细分出“用户”的部分,以满足多个进程的要求。细分的任务由操作系统动态完成,称为内存管理。
- 分页:内存被划分为大小相等固定的块,且块相对比较小,称为页框。每个进程也被划分成同样大小的小块,称为页。将进程的页放入内存可用的页框中,即为分页技术。采用分页技术的分区相当小,一个程序可以占据多个分区,并且这些分区不需要是连续的。使用分页技术在内存中为每个进程浪费的空间仅仅是进程最后一页的一小部分形成的内部碎片,没有任何外部碎片。(可能需要注意简单分页和虚拟分页,但是第七章还未讲到虚拟分页,此文不作赘述)
- 分段:进程被划分成许多段,段的大小不需要相等,当一个进程被调入时,它的所有段都被装入内存的可用区域。
- 保护:通常,用户进程不能访问操作系统的任何部分,不论是程序还是数据。并且,一个进程中的程序不能跳转到另一个进程中的指令。如果没有特别的许可,一个进程中的程序不能访问其他进程的数据区。处理器必须在执行时终止这样的指令。注意:内存保护的需求必须由处理器硬件来满足,而不是由操作系统软件来满足。因为操作系统不能预测程序可能产生的所有内存访问。即使真的可以预测,提前审查违法内存访问的过程也很费时。
- 物理组织:内存和外存。大容量的外存用于长期存储程序和数据,较小的内存则用于保存当前使用的程序和数据。
- 压缩:是克服外部碎片的一种技术,操作系统不时地移动进程,使得进程占用的空间连续,并且将所有的空闲空间连成一片。通常是用于动态分区。
标签:管理,分区,程序,碎片,访问,内存,进程 来源: https://blog.csdn.net/weixin_57748215/article/details/122834612