文章目录
- 前言
- 1.内存是什么
- 1.1 基本硬件
- 保护措施
- 碎片
- 1.2 分段机制
- 1.2.1 分段硬件
- 1.3 分页
前言
CPU的调度可以提高CPU的利用率和计算机的响应用户的速度。为了改进性能,应该将多个进程保存在内存中。也就是说必须共享内存。
本文讨论的是如管理内存。
1.内存是什么
内存是现代计算机运行的核心,由一个很大的字节数组来组成,每个字节都有各自的地址。
CPU根据程序计数器的值(PC指针的值)从内存中取指令。
与内存管理技术有关的问题:基本硬件/符号内存地址绑定到实际物理地址以及逻辑地址与物理地址的差别等。最后是动态链接与共享库。
1.1 基本硬件
CPU可以直接访问的通用储存只有内存和处理器内置的计算器。机器指令可以用内存地址作为参考。
CPU内置寄存器可以在一个CPU时钟周期内完成访问。大多数CPU可以在一个时钟周期内解释并执行一条或多条指令。而对于内存访问莫须有多个CPU时钟周期。CPU缺少数据,通常需要暂停stall。
弥补这一不对等的问题,增加高速缓存。
增加告诉缓存要考虑的问题:1,关心物理内存的 访问速度。 2.确保操作正确,不能再用户态执行 3.保护用户进程互相不受感召。
这种保护通常通过硬件来实现,因为操作系统通常不干预CPU对内存的访问。
保护措施
基地址寄存器 base Register: 含有最小的合法的物理内存地址。
界限地址寄存器Limit Register: 指定了范围大小。
内存空间保护是通过cpu硬件对用户模式下产生的地址与寄存器的地址进行比较来完成的。
指令和数据绑定到储存器地址可以发生在:
1.编译时 compile time
2.加载时 load time
3. 执行时 runtime time
从虚拟地址到物理地址的运行时映射时MMU,内存管理单元。
MMU中有一个重定位寄存器。
碎片
外部碎片和内部碎片
外部碎片的解决方法时紧缩,通过移动内存内容,将所有空闲空间合并成一整块。只有重定位时动态的,并且再运行时进行的,才能采用紧缩。
1.2 分段机制
分段:支持用户视图的内存管理方案,逻辑地址空间时由一组段构成。每个段都有名称和长度。地址制定了段名称和段内位移。
1.2.1 分段硬件
通过段表来实现,段表的每个row,都有端基地址和段界限。
1.3 分页
分段运训进程的物理地址空间是非连续的。分页paging是提供这种优势的另一种内存管理方案,并且避免了外部碎片和紧缩。二分段不可以。