操作系统中的存储管理
1.首先搞明白内存的概念!
内存是一个大型的一维数组。操作系统位于其低地址部分,剩下的空间给程序使用。
2.操作系统中的最基本的管理方法:
分区技术
分页技术
分段技术
3.分区技术:
直接将内存连续的分为若干个分区。
<1>固定分区法
等分方法:
不等分方法:建立分区说明表,表示分区的起始地址、大小、使用状态。
<2>动态分区法
step1:设置一个内存登记表。表示分区的起始地址、大小、使用状态。
step2:将空闲分区分配给进程
step3:假如分配的空闲分区大于进程需要的空间,假设空闲分区50k,进程需要30k,会分割该分区,即剩下的20k会重新建立一个表项,登记在内存登记表中。
step4:进程终止后,释放空间,相应表项会被标记“空闲”状态,若相邻的分区恰好空闲,还会合并两个分区。
4.分页技术:
解决了分区技术中,一个进程的程序必须连续存储的问题,可以将程序分散的存储在各个空闲的物理块中。
重要的基本概念!!!!
<1>页: 把进程的逻辑地址空间划分成若干大小相等的部分,每个部分称作页或页面。每个页都一个编号:0,1,2,3……而页的大小是由硬件系统规定的。
<2>内存块:把内存等分成和页面大小相等的若干存储空间,称作内存块或者页框。同样依次编号。
页是相对于进程的概念,而内存块是相对于内存的概念,并根据页的大小划分的。
<3>页表:将进程的页号和内存块号一一对应的表。
分配原则:操作系统以内存块为单位,把内存分给各个进程,进程中的每一个页面对应一个内存块。一个进程的若干也可以分别装入物理上不连续的内存块。
5.分段技术:
分段技术是站在用户(程序员)的角度进行划分的一种概念。
段:是一组逻辑信息的集合。比如一个函数,一个数组等。
一个进程的程序,会按照逻辑结构划分成若干段,每一段都是从0开始编址,是一段连续的空间,大小不一样。
即段内是连续存储,对于整个进程的所有分段,各个段又是允许分散存储在内存中。
采用分段技术,可以很好的将程序和数据分开,独立存储,有利于共享。