面试基础篇|操作系统复习(七)——内存的概述

162 阅读2分钟
1. 内存的概念
  • 内存可存放数据。程序执行前需要先放到内存中才能被CPU处理——缓和CPU和硬盘之间的速度矛盾
2. 程序运行的流程
  • 编译:由源代码文件生成目标模块(高级语言“翻译”为机器语言)
  • 链接:由目标模块生成装入模块,链接后形成完整的逻辑地址
  • 装入:将装入模块装入内存,装入后形成物理地址
3. 链接的三种方式
  • 静态链接:装入前链接成一个完整装入模块
  • 装入时动态链接:运行前边装入边链接
  • 运行时动态链接:运行时需要目标模块才装入并链接
4. 装入内存的三种方式
  • 绝对装入:在编译时,如果知道程序将放到内存中的哪个位置,编译程序将产生绝对地址的目标代码。装入程序按照装入模块中的地址,将程序和数据装入内存。只适用于单道程序环境
  • 静态重定位:又称可重定位装入。编译、链接后的装入模块的地址都是从0开始的,指令中使用的地址、数据存放的地址都是相对于起始地址而言的逻辑地址。可根据内存的当前情况,将装入模块装入到内存的适当位置。装入时对地址进行“重定位”,将逻辑地址变换为物理地址(地址变换是装入时一次完成的)。一个作业装入内存时,必须分配其要求的全部内存空间,在运行期间不能再移动
  • 动态重定位:又称动态运行时装入。编辑、链接后装入模块的地址都是0开始的。装入程序把装入模块装入内存后,并不会立即把逻辑地址转换为物理地址,而是把地址转换推迟到程序真正要执行时才进行。因此装入内存后所有的地址依然是逻辑地址。这种方式需要一个重定位寄存器的支持,允许程序在内存中发生移动
5. 内存管理的概念
  • 内存空间的分配与回收
  • 内存空间的扩展,对内存空间进行扩充
  • 提供地址转换功能,负责程序的逻辑地址与物理地址的转换
  • 内存存储保护,保证各进程在自己内存空间内运行,不会越界访问
6. 总结
  • 重点:内存的概念
  • 重点:内存管理的概念
  • 请各位大佬发现错误,能指导菜鸟小弟
  • 菜鸟也想努力进大厂,加油