第啤享 存储器管理
第四章 存储器管理
4.1程序的装入和链接 令编辑编译链接装入运行 ◆图4.1 内存 库 编译程 序产生 的目标 链接 装入 装入 程序 模块 模块 程序 存储器管理
存储器管理 4.1 程序的装入和链接 ❖ 编辑―――编译―――链接―――装入―――运行 ❖ 图4.1 库 编译程 序产生 的目标 模块 链接 程序 装入 模块 装入 程序 内存
411程序的装入 令1、绝对装入: 编译后,装入前已产生了绝对地址(内存地址),装 入时不再作地址重定位。 绝对地址的产生:(1)由编译器完成,(2)由程序 员编程完成。 对(1)而言,编程用符号地址 令2、可重定位装入; 静态重定位:装入时完成,主要工作是对相对地址中 的指令和数据地址的调整过程,例:图4-2 问题: 如何知道哪些位置需调整? 链接时产生可装入模块的具体功能? 存储器管理
存储器管理 4.1.1 程序的装入 ❖ 1、绝对装入: ٭ 编译后,装入前已产生了绝对地址(内存地址),装 入时不再作地址重定位。 ٭ 绝对地址的产生:(1)由编译器完成,(2)由程序 员编程完成。 ٭ 对(1)而言,编程用符号地址。 ❖ 2、可重定位装入; ٭ 静态重定位:装入时完成,主要工作是对相对地址中 的指令和数据地址的调整过程,例:图4-2 :问题 ٭ ?如何知道哪些位置需调整 ٭ ?链接时产生可装入模块的具体功能 ٭
0 10000 1000 OAD1,2500 1100 OAD1,250 2500 365 12500 365 1500 5000 作业地址空间 内存空间 图4-2
0 1000 2500 5000 LOAD 1, 2500 LOAD 1, 2500 365 365 10000 11000 12500 15000 作业地址空间 内存空间 图4-2
411程序的装入 令3.动态运行时装入 在装入后不能移动, 该情况一般在执行时才完成相对绝对地址的转换 且有硬件的支持能保证进程的可移动性。 存储器管理
存储器管理 4.1.1 程序的装入 ❖ 3.动态运行时装入 ,在装入后不能移动 ٭ ٭ 该情况一般在执行时才完成相对——绝对地址的转换 且有硬件的支持,能保证进程的可移动性
4.12程序的链接 令1、静态链接 a.对相对地址的修改 b.变换外部调用符号 令2、装入时动态链接 a便于修改和更新 b便于实现对目标模块的共享 令3、运行时动态链接 存储器管理
存储器管理 4.1.2 程序的链接 ❖ 1、静态链接 ٭ a.对相对地址的修改 ٭ b.变换外部调用符号 ❖ 2、装入时动态链接 ٭ a.便于修改和更新 ٭ b.便于实现对目标模块的共享 ❖ 3、运行时动态链接
模块A 模块A CALL B: USR LE RETURN RETUR N 模块B CALL C 模块B RETURN JSR M-1 L+M L+M-f RETUR L+M 模块C 模块C RETURN N-1 [+M+NI1RETURN (a)目标模块 (b)装入模块
模块A CALL B; RETURN 模块B CALL C; RETURN 模块C RETURN 0 L-1 0 M-1 0 N-1 (a)目标模块 模块A JSR L; RETUR N 模块B JSR L+M; RETUR N模块C RETURN 0 L-1 L L+M-1 L+M L+M+N-1 (b)装入模块
4.2连续分配方式 令单一连续分配 用于单用户,单任务中 令分区式分配 固定式 可变式 可重定位分区分配 存储器管理
存储器管理 4.2连续分配方式 ❖ 单一连续分配 ٭ 用于单用户,单任务中 ❖ 分区式分配 固定式 ٭ 可变式 ٭ 可重定位分区分配 ٭
421单一连续分区 ◆系统区 ◆用户区 令存贮保护 一般不设置保护也可,因单任务。 存储器管理
存储器管理 4.2.1 单一连续分区 ❖ 系统区 ❖ 用户区 ❖ 存贮保护 ٭ 一般不设置保护也可,因单任务
422固定分区 令特点:有n个分区,则可同时装入n个作业/任务。 ◇一、分区大小: 相等 不相等:不相等利用率更高。 令二、内存分配 数据结构 将分区按大小排序,并将其地址、分配标识作记录 例:dos的MCB 令三、特点: 简单,有碎片(内零头) 存储器管理
存储器管理 4.2.2 固定分区 ❖ 特点:有n个分区,则可同时装入n个作业/任务。 ❖ 一、分区大小: :相等 ٭ ٭ 不相等:不相等利用率更高。 ❖ 二、内存分配: 数据结构 ٭ ▪ 将分区按大小排序,并将其地址、分配标识作记录 ٭ 例:dos的MCB ❖ 三、特点: ٭ 简单,有碎片(内零头)