导图社区 内存管理
这是一个关于内存管理的思维导图,详细的总结了内存的基础知识,内存管理的概念。框架清晰,内容丰富,帮助小伙伴更好的理解内存管理的内容要点!
编辑于2022-12-06 11:58:46 河南内存管理
内存的基础知识
🔺什么是内存,有什么作用? p 3
存储单元、内存地质的概念和联系
按字节编址vs按字编址
进程运行的基本原理
指令的工作原理p4
操作码+若干参数(可能包含地址参数)
🔺逻辑地址(相对地址 vs物理地址 (绝对地址 )
如何实现地址转换
从写程序到程序运行的过程 p8
编译源代码文件
编译
由源代码文件生成目标模块(高级语言翻译为机器语言)
链接
有目标模块生成装入模块,链接后形成完整的逻辑地址
三种链接方式
静态链接:装入前,连接成一个完整的装入模块
装入时动态链接:运行前边装入边链接
运行时动态链接:运行时需要目标模块才装入并链接
装入
将装入模块装入内存,装入后形成物理地址
三种装入方式 🔺
绝对装入:编译时产生绝对地址
编译器完成
单道程序阶段,此时还没有产生操作系统
可重定位装入:装入时将逻辑地址转换为物理地址
操作系统的装入程序完成
用于早期的多道批处理操作系统
🔺动态运行时装入:运行时将逻辑地址转换为物理地址,需设置重定位寄存器
现代操作系统
内存管理的概念 p12
内存空间的分配与回收
分配
连续分配管理P22
单一连续分配
只支持单道程序,内存分为系统区和用户区,用户程序放在用户区
无外部碎片,有内部碎片
固定分区分配
支持多道程序,内存用户空间分为若干个固定大小的分区,每个分区只能装一道作业
无外部碎片,有内部碎片
两种分区方式
分区大小相等
分区大小不相等
子主题
内存空间的扩充
覆盖技术
一个固定区
存放最活跃的程序段
固定区中的程序段在运行过程中不会调入调出
若干覆盖区
不可能同时被访问程序段可共用一个覆盖区
覆盖区的程序段在运行过程中会根据需要调入调出
必须由程序员声明覆盖结构,操作系统完成自动覆盖
缺点:对用户不透明,增加了用户编程负担
交换技术 P 19
中级调度(内存调度),将哪个处于挂起状态的进程重新调入内存
内存紧张时,幻出某些进程已腾出内存空间,在换入某些进程
磁盘分为文件区和对换区,换出的进程放在对换区
覆盖与交换的区别
覆盖是在同一个程序或进程中的
交换是在不同作业(进程)之间的
虚拟存储技术
地址转换
操作系统负责实现逻辑地址到物理地址的转换。
三种方式
绝对装入:编译器负责地址转换(单到程序阶段,无操作系统)
可重定位装入:装入程序负责地址转换(早期多道批处理阶段)
动态运行时装入:运行时才进行地质转换(现代操作系统)
存储保护
保证个进程在自己的内存空间的运行,不会越界访问
两种方式
设置上下限寄存器
利用重定位寄存器,界地址寄存器进行判断
主题
主题
注意别名:静态重定位、动态重定位
内存管理
内存的基础知识
🔺什么是内存,有什么作用? p 3
存储单元、内存地质的概念和联系
按字节编址vs按字编址
进程运行的基本原理
指令的工作原理p4
操作码+若干参数(可能包含地址参数)
🔺逻辑地址(相对地址 vs物理地址 (绝对地址 )
如何实现地址转换
从写程序到程序运行的过程 p8
编译源代码文件
编译
由源代码文件生成目标模块(高级语言翻译为机器语言)
链接
有目标模块生成装入模块,链接后形成完整的逻辑地址
三种链接方式
静态链接:装入前,连接成一个完整的装入模块
装入时动态链接:运行前边装入边链接
运行时动态链接:运行时需要目标模块才装入并链接
装入
将装入模块装入内存,装入后形成物理地址
三种装入方式 🔺
绝对装入:编译时产生绝对地址
编译器完成
单道程序阶段,此时还没有产生操作系统
可重定位装入:装入时将逻辑地址转换为物理地址
操作系统的装入程序完成
用于早期的多道批处理操作系统
🔺动态运行时装入:运行时将逻辑地址转换为物理地址,需设置重定位寄存器
现代操作系统
内存管理的概念 p12
内存空间的分配与回收
分配
连续分配管理P22
单一连续分配
只支持单道程序,内存分为系统区和用户区,用户程序放在用户区
无外部碎片,有内部碎片
固定分区分配
支持多道程序,内存用户空间分为若干个固定大小的分区,每个分区只能装一道作业
无外部碎片,有内部碎片
两种分区方式
分区大小相等
分区大小不相等
子主题
内存空间的扩充
覆盖技术
一个固定区
存放最活跃的程序段
固定区中的程序段在运行过程中不会调入调出
若干覆盖区
不可能同时被访问程序段可共用一个覆盖区
覆盖区的程序段在运行过程中会根据需要调入调出
必须由程序员声明覆盖结构,操作系统完成自动覆盖
缺点:对用户不透明,增加了用户编程负担
交换技术 P 19
中级调度(内存调度),将哪个处于挂起状态的进程重新调入内存
内存紧张时,幻出某些进程已腾出内存空间,在换入某些进程
磁盘分为文件区和对换区,换出的进程放在对换区
覆盖与交换的区别
覆盖是在同一个程序或进程中的
交换是在不同作业(进程)之间的
虚拟存储技术
地址转换
操作系统负责实现逻辑地址到物理地址的转换。
三种方式
绝对装入:编译器负责地址转换(单到程序阶段,无操作系统)
可重定位装入:装入程序负责地址转换(早期多道批处理阶段)
动态运行时装入:运行时才进行地质转换(现代操作系统)
存储保护
保证个进程在自己的内存空间的运行,不会越界访问
两种方式
设置上下限寄存器
利用重定位寄存器,界地址寄存器进行判断
主题
主题
注意别名:静态重定位、动态重定位