内存管理的需求
重定位
重定位是指的,在多道程序设计系统中,可用的内存空间往往被多个进程共用,在内存不够用的情况下,一部分进程会被置换到硬盘进行临时存储,一旦进程被置换到磁盘,当下一次被放入处理器执行的时候,就需要放在和被置换出前相同的内存区域,那么这将是一个非常大的限制,为了避免这种限制,我们需要把进程重定位到不同的内存空间。
进程被载入的时候采用的是地址重定位,意思是会把逻辑地址转换的内存上实实在在存在的物理地址,通过硬件来转换的,分别是一个基础寄存器,和界限寄存器,基址寄存器的内容是程序在内存中的起始地址,还有一个界限寄存器指明程序终止位置,当程序被装入内存的时候,必须设置这2个寄存器,在进程的执行过程中会遇到相对地址,包括指令寄存器内容,调整,调用指令,以及加载和存储指令中的数据地址,每个这样的相对地址都经过则2步操作,先,基址寄存器的值加上相对地址产生一个绝对地址,然后,得到的结果和界限寄存器做比较,如果在范围内则执行,否则报错。
保护
意思就是指的,用户程序不能访问系统内存,且进程和进程之间可以做到内存隔离,彼此不能访问。
共享
任何保护机制都必须具有一定灵活性,可以允许多个进程协作访问同一块内存区间。
逻辑组织
在CPU的眼里,所用的内存空间就是就是一条一维结构的地址空间,就是逻辑组织。
物理结构
就是可以让内存和外存(硬盘)的地址相互转换