ch3 操作内存管理 - 连续内存分配

一 计算机体系结构及内存分层体系 1.计算机硬件体系结构大致分为 CPU,完成程序的执行控制 主存 (main memory),放置程序代码和数据 I/O(外)设备,配合程序工作。 2.内存分层体系(金字塔结构) 什么是内存结构:CPU所访问的指令和数据在什么地方。 第一类:位于CPU内部,操作操作系统无法直接进行管理的,寄存器,cache;特点,速度快,容量小 第二类:主存或物理内存,主要用来放置操作系统本身及要运行的代码;其特点是,容量比cache要大很多,单速度交于cache要慢一些。 第三类:磁盘,永久保存的数据及代码,当对于主存要慢,容量比主存大很多。 操作系统的作用可以将数据访问的速度(cache与内存)与存储的大小(硬盘)很好的融合在一起 3.OS管理内存时需要完成的目标 ① 抽象:逻辑地址空间(将物理内存,外设等抽象成逻辑地址空间,只需要访问对应地址空间) ② 保护(独立):操作系统完成隔离机制实现,独立地址空间(每段程序执行时,不受其他程序的影响) ③ 共享:进程间安全,可靠,有效,进行数据传递,访问相同的内存。 ④ 虚拟化:更多的地址空间(利用磁盘的空间) 4.需要完成在操作系统中管理内存的不同方法 操作系统层面 程序重定位 分段 分页 虚拟内存 按需分页虚拟内存 硬件层面 必须知道内存架构 MMU(内存管理单元):处理CPU的内存访问请求 二 地址空间&地址生成 地址空间的定义 地址生成器 地址安全检查 1.内存地址的定义 ① 物理内存地址:硬件支持的地址空间,如主存(内存)和硬盘,由硬件完成管理和控制 ② 逻辑内存地址:一个程序运行时所需要的内存范围。 两者间的关系:逻辑地址空间最终是一个存在的物理地址空间,两者间的映射关系是由操作系统来管理的 2.逻辑地址生成过程(把代码转化为计算机能理解语言) 一段代码运行→编译→汇编语言→机器语言→产生链接文件→将硬盘中程序载入到内存当中运行(完成逻辑地址的分配) 如C中变量的名字,函数的位置,为逻辑地址。 3.物理地址生成(逻辑地址对应的物理地址的过程) CPU方面 MMU表示映射关系 ① CPU ALU Arithmetic logic unit 发出请求,为逻辑地址 ② CPU MMU Memory management unit 查找逻辑地址映射表,不存在会去内存中找 ③ 控制器提出内存请求(需要的内容,内容即指令) 内存方面 ④ 内存通过bus发送物理内存地址的内容给CPU OS方面 建立逻辑地址和物理地址之间的映射关系(需在前四部前将映射管理建立好)...

 ·  ·