为什么内存要分区?分区有哪些类型?
内存分区是为了方便地支持多程序运行。分区管理分为固定分区和可变分区,固定分区是系统先把内存划分成若干个大小的固定分区,一旦划分好就不再改变,可变分区是不预先划分固定分区,而是在装入程序时划分内存分区为可变分区。其中固定分区因为大小事先划分,并不总是等于程序实际大小,内存利用率低。
什么是碎片?为什么会产生碎片?怎么合并碎片?
碎片是内存中较小的休闲区;在可变分区时,由于系统动态给程序分配内存空间,当程序执行完后,其所占用的内存空间会变回收,这时这些空间就成了碎片。通过紧缩技术(压缩技术)把内存中工作区移到一起,休闲区移到一起,这样碎片就重新整合成一个大块的休闲区。
内存压缩(紧缩)技术有哪些需要注意?
1.压缩技术会增加系统的开销;2.有些程序不可移动,比如程序在与外部设备交接数据;3.移动时需要减少移动进程数和信息量。
空闲区的分配算法有哪些?
1.最先适应法(顺序分配算法);当程序申请内存时,查空间表第一个满足需求大小的休闲区;
2.最优适应算法;当程序申请内存时,查空闲区表找到满足需要的最小空间区,此方法容易产生很多很小的空间区域;
3.最坏适应法;当接到内存申请时,查到分区说明表,找到能满足申请要求的最大空间区;若申请较大的内存,可能无法满足。
怎么实现可变分区?
可变分区需要由硬件和软件配合实现。
1.硬件主要由基址寄存器和限长寄存器组成,基址寄存器记录存储程序所占分区的起始地址;限长寄存器保存存储程序所占分区的长度。硬件主要用途是将程序指令中的逻辑地址转化为物理内存地址。
2.软件方需要由已分配区表和空间区表组成。已分配区表有三个字段,起始地址、长度、标志(程序名);空闲区表包含三个字段,起始地址、长度、标志(分配状态:空表示不存在,未分配表示是休闲区)
分区管理的优缺点是什么?
分区管理可以简单地实现多道程序执行,缺点是程序申请的空间大小受到物理内存大小的限制,无法实现内存“扩容”。
覆盖技术是什么?为什么会有覆盖技术?
覆盖技术是指一个程序的若干个程序段,或几个程序的某些部分共享一个存储空间。覆盖技术主要是为了更进一步提高内存的利用率。
覆盖技术怎么实现?
覆盖技术的过程是这样:一个程序先划分为有若独立功能的程序段,不执行的存储在磁盘上,当有关程序段前一部分执行后,把后续程序段调入内存,覆盖之前的程序段。
覆盖技术不需要操作系统支持,由程序员实现,其要求程序员提供一个清楚的覆盖结构,这个结构就是程序划分成不同的程序段,并规定好它们的执行和覆盖顺序。
交换技术是什么?交换技术的原理是什么?
交换技术(对换技术)是把内存中的进程换到磁盘中,再从磁盘换回来的技术。交换技术可以让申请内存更少地受的物理内存空间的限制。交换技术让进程在内存与外存之间的动态调度,由操作系统控制。
交换的的原理主要有四方面:1.确定调出的进程;2.确定调出进程的时机;3.交换空间的分配;4.换入进程挽回内存位置的确定。
网友评论