考研操作系统知识点——内存管理1

内存是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理。
内存中每个单位就是:存储单元。
每个地址对应一个存储单元
按字节编址 每个存储单元大小为1字节
按字编址 每个存储单元大小为1个字:每个字大小为16个二进制位

物理地址(绝对地址)
逻辑地址(相对地址)

起始地址(基址)+相对地址=物理地址

逻辑地址到物理地址的转换:
1.绝对装入:只适用于单道程序环境
2.(可重定位装入)静态重定位:必须分配其要求的全部内存空间 ,在运行期间就不能再移动
3.(动态运行时装入)动态重定位:需要一个重定位寄存器(存放装入起始地址)+目标逻辑地址 允许程序在内存中发生移动。

链接的三种方式

  1. 静态链接
  2. 装入时动态链接
  3. 运行时动态链接

从写程序到程序运行:编辑源代码文件,编译,链接,装入

操作系统的虚拟性
内存管理:

  1. 操作系统负责内存空间的分配与回收
  2. 操作系统需要提供某种技术从逻辑对内存空间进行扩充
  3. 操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换
  4. 操作系统需要提供内存保护功能,保证各进程在各自存储空间内运行,互不干扰。

内存保护:

  1. 设置一对上、下限寄存器
  2. 采用重定位寄存器(又称基址寄存器)界地址寄存器(限长寄存器)进行判断

覆盖与交换
覆盖技术:将程序分为多个段(内存中分为一个固定区 和 若干个覆盖区)
必须由程序员声明覆盖结构,操作系统完成自动覆盖,缺点对用户不透明。
覆盖技术只适用于早期的操作系统,现在已经成为历史。

交换技术:换出,换入
暂时换出外存等待的进程状态为挂起状态(挂起态又可以细分就绪挂起、阻塞挂起两种状态)

对换区:采用连续分配的方式
文件区:采用离散分配方式,可以提高存储空间的利用率

PCB会常驻内存,不会被换出外存。
覆盖与交换的区别:覆盖是在同一个程序或进程中的,交换是在不同进程(或作业)之间的。

你可能感兴趣的:(操作系统,操作系统)