3.连续式内存分配

3.1计算机体系结构及内存分层体系

计算机基本硬件结构:
程序执行在CPU
执行时程序和数据在内存
设备(I/O)

微处理器:
CPU寄存器
贮存
磁盘(虚拟内存)
由上到下:容量增大,运行速度降低

操作系统的目标:
抽象:逻辑地址空间
保护:独立地址空间
共享:访问相同内存
虚拟化:更多的地址空间

在操作系统中管理内存的不同方法:
程序重定位
分段
分页
虚拟内存
按需分页虚拟内存

操作系统目标的实现:
实现高度依赖于硬件
必须知道内存架构
MMU(内存管理单元):硬件组件负责CPU的内存访问请求

3.2地址空间与地址生成

地址空间定义:
物理地址空间:硬件支持的地址空间
逻辑地址空间:一个运行程序所拥有的内存范围
最终映射到物理地址空间

操作系统:
建立映射关系(由逻辑地址到物理地址)
确保每一个应用程序访问的地址空间是合法的

逻辑地址的生成:
编译
汇编
链接
载入(程序重定位)
编译器:执行程序的地址会有一点的偏移

大型程序:
linker:将多个.o程序变为单一的执行程序
所有程序都依照偏移量来进行数据访问

流程:
一个程序需要某条指令,该程序的ALU(计算逻辑单元)发送请求(所带的参数为逻辑地址);
CPU中的MMU(内存管理单元)查找逻辑地址的映射表中是否存在对应的物理地址;
若MMU中不存在,就会到内存中去找;
若在内存中找到,CPU控制器发送请求到主存(内容就是指令的内容);
主存把内存内容通过主线传给CPU,CPU对内容进行执行。

地址安全检查:
检查起始地址与地址长度(基址和界限)
界限寄存器
基址寄存器

3.3连续内存分配:内存碎片与分区的动态分配

3.4连续内存分配:压缩式与交换式碎片整理

未完待续

猜你喜欢

转载自blog.csdn.net/weixin_51864831/article/details/111823520