结构
使用存储管理的原因
- 使用方便性
- 提供内存利用率
高速缓存起效的原因
- 绝不性原理
磁盘缓存位置
- 利用主存中的存储空间,来暂存从磁盘中读出(或写入)的信息
程序的装入和链接
编辑——编译——链接——转入——运行
- 编译:将用户源代码编译成若干个目标模块
- 链接:将一组目标模块和所需要的库函数链接在一起,形成以一个完整的装入模块
- 装入:由装入程序将装入模块装入内存
装入
- 绝对装入(绝对地址、物理地址)
- 装入前已产生了绝对地址(内存地址),装入时不再作地址重定位
- 绝对地址产生:编译器完成(编程时用符号地址) + 程序员编程完成
- 只能用于单道系统
- 可重定位装入(相对地址、逻辑地址)
- 装入时完成,对相对地址中的指令和数据地址的调整过程
- 因为地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位
动态重定位:运行时
- 动态运行时装入(相对地址)
- 装入内存时没有修改地址,运行时使用重定位寄存器与相对地址相加获得绝对地址
链接
目的:将多个模块组装成可装入模块
方式
- 静态链接(完整,产生的程序更大)
- 对相对地址的修改
- 变换外部调用符号
- 装入时动态链接(装入内存时,边装入边链接)
- 便于修改和更新
- 便于实现对目标模块的共享
- 运行时动态链接
- 避免装入和链接运行时并未使用的模块,节约内存,加快装入和链接速度(使用时链接)
哪些是可以支持内存模块共享
装入时和运行时动态链接