地址映射(地址重定位,地址变换)逻辑地址→地址映射寸一→物理地址(相对地址,虚地址)(绝对地址,实地址)源程序逻辑地址空间物理地址空间000地址映射Load A d1L0ad A 200100BA-1000·编译连接..·L0ad A 200d1 34561100345620034561200
地址映射(地址重定位, 地址变换) 逻辑地址 地址映射 物理地址 (相对地址, 虚地址) (绝对地址, 实地址) 地址映射 BA=1000 . . . . Load A 200 . 3456 . 1100 物理地址空间 . Load A d1 . . d1 3456 . 源程序 . Load A 200 . . 3456 . 000 100 200 编译连接 逻辑地址空间 1200
逻辑地址空间物理地址空间BR001000...VR1100100200Load A 200Load A 200+.2001200345634561300300
0 3456 . . . . . . Load A 200 . . . . . . 0 100 200 300 . . . . . . . . . Load A 200 3456 逻辑地址空间 1100 1200 1300 物理地址空间 200 VR ╋ 1000 BR
地址映射的原因当程序装入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。静态重定位当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。动态重定位在程序运行过程中要访问数据时再进行地址变换(在逐条指令执行时完成地址映射;为了提高效率此工作一般由硬件地址映射机制来完成;硬件支持软硬件结合完成),硬件上需要一对寄存器的支持
地址映射的原因 当程序装入内存时, 操作系统要为该程序分配一 个合适的内存空间, 由于程序的逻辑地址与分配到内 存物理地址不一致, 而CPU执行指令时, 是按物理地 址进行的, 所以要进行地址转换。 静态重定位 当用户程序被装入内存时,一次性实现逻辑地 址到物理地址的转换,以后不再转换(一般在装入 内存时由软件完成)。 动态重定位 在程序运行过程中要访问数据时再进行地址变 换(在逐条指令执行时完成地址映射; 为了提高效率, 此工作一般由硬件地址映射机制来完成; 硬件支持, 软硬件结合完成), 硬件上需要一对寄存器的支持
4.2各种存储管理方案单一用户(连续区)存储管理:单用户系统在一段时间内,只有一个进程在内存故内存分配管理十分简单,内存利用率低。内存分为两个区域,一个供操作系统使用,一个供用户使用。OxFFFRAM中的ROM中的设用户程序操作系统备驱动程序用户程序RAM中的RAM中的用户程序操作系统操作系统000
4.2 各种存储管理方案 单一用户(连续区)存储管理: 单用户系统在一段时间内, 只有一个进程在内存, 故内存分配管理十分简单, 内存利用率低。内存分为 两个区域, 一个供操作系统使用, 一个供用户使用。 用户程序 RAM中的 操作系统 0xFFF 0 RAM中的 操作系统 用户程序 0 ROM中的设 备驱动程序 用户程序 RAM中的 操作系统 0
4.2.1分区存储管理方案系统把内存用户区划分为若干分区,分区大小可以相等,也可以不等。一个进程占据一个分区。固定分区:预先把可分配的主存储器空间分割成若干个连续区域,称为一个分区;每个分区的大小可以相同也可以不同,但固定不变,每个分区装一个进程存储分配:如果有一个空闲区,则分配给进程。内存管理:设置内存分配表分区号起始地址长度状态进程名内存分配:查找分配表,找到合适的分区;回收:简单缺点:内存利用率不高
4.2.1 分区存储管理方案 系统把内存用户区划分为若干分区, 分区大小 可以相等, 也可以不等。一个进程占据一个分区。 固定分区: 预先把可分配的主存储器空间分割成若干个连 续区域, 称为一个分区; 每个分区的大小可以相同也 可以不同, 但固定不变, 每个分区装一个进程。 存储分配:如果有一个空闲区, 则分配给进程。 内存管理:设置内存分配表 内存分配: 查找分配表, 找到合适的分区; 回收:简单 缺点:内存利用率不高 分区号 起始地址 长度 状态 进程名