3.1 内存管理:内存管理的基本概念
内存管理的基本概念思维导图:
内存
内存由一系列大小相同的存储单元组成
程序运行的基本原理思维导图:
程序运行的基本原理
指令:操作码+若干参数
逻辑地址空间与物理地址空间
- 逻辑地址又称相对地址
- 物理地址是数据在内存中实际存放的地址,又称绝对地址
从写程序到程序运行
- 编辑
- 编译:生成若干目标模块,将高级语言翻译为机器语言
- 链接:若干目标模块形成一个完整的装入模块,即可执行文件,链接后形成完整的逻辑地址
- 装入(内存):运行时装入内存,装入后形成完整的物理地址
进程的内存映像
- 指系统在内存中存放可执行文件的方式
- 主要包括代码段、数据段、堆、栈
三种链接方式
- 静态链接:装入前形成完整的装入模块
- 装入时动态链接:一边装入一边链接,装入前未链接为一个整体,便于对模块重用
- 运行时动态链接:在运行过程中需要时才将目标模块调入内存
三种装入方式
- 绝对装入方式:编译时产生物理地址,只使用早期单道程序系统
- 可重定位装入(静态重定位):装入时将逻辑地址转换为物理地址,不允许程序在运行时移动位置,只有固定分区可以采用静态重定位
- 动态运行时装入(动态重定位):装入后所有地址仍是逻辑地址,运行时将逻辑地址转换为物理地址,需要重定位寄存器(基址寄存器)支持
内存管理的功能思维导图:
内存管理的功能
内存分配与回收
内存空间的逻辑扩充(虚拟)
- 覆盖技术:由一个固定区和若干覆盖区组成。固定区存放最常用的程序段,在运行过程中不会调入调出;覆盖区中的程序段会根据需要调入调出,必须由程序员声明覆盖结构,不能被同时访问的程序段共享一个覆盖区
- 交换技术:内存紧张时换出某些进程腾出内存空间(中级调度),磁盘分为文件区和对换区 这些文件放在对换区
- 覆盖与交换的区别:覆盖是在同一个进程中,交换是在进程或作业之间
地址转换:
实现逻辑地址转换为物理地址的过程
装入的三种方式
- 绝对装入:单道程序阶段,编译器负责地址转换
- 可重定位装入:早期多道批处理系统,装入程序负责地址转换
- 动态运行时装入:现代OS,运行时才地址转换
内存共享
内存保护
- 保证各进程在自己的内存空间运行,不会越界访问
- 内存保护的目的是防止进程间的相互干扰
- 两种方式:上、下限寄存器;重定位寄存器(基址寄存器)+界地址寄存器(限长寄存器)