操作系统复习——内存管理

内存管理知识点

  1. 存储器管理的功能:
  • 内存分配
  • 地址重定位(地址转换):把程序空间里的逻辑地址转换成内存空间里的物理地址
    • 静态重定位:
    • 动态重定位:在程序运行的时候完成的
  • 内存空间的共享和保护
  • 内存扩充(虚拟内存)
  1. 多种存储管理方式
    • 单一连续分配:在单用户、单任务操作系统中,把内存分成系统区和用户区。系统区只给操作系统使用。
    • 固定分区:除了分配给操作系统的系统区,将用户区划分成固定数量、固定大小的分区。每个分区只可装入一个作业。
    • 可变分区:各个分区是在进程进入内存时才创建,大小刚好与进程大小适应。
      操作系统复习——内存管理
  2. 可变分区有几种分法?
    • 适应FF:空闲表按位置排列,找到第一个满足要求的空闲块分配它,并修改空闲表
    • 适应BF:空闲表从小到大排空闲区,找到第一个满足要求的空闲块,改表
    • 循环适应CFF:最先适应的变种,从上次找的位置开始找(不从头开始找)
    • 最差适应WF:找最大的分区分配

4. 分页存储

  • 把内存分成一页一页的固定大小,一个进程需要多少页就分配多少页,没有外部碎片的产生,也让比较大的程序可以在比它小的内存上运行了。
  • 虚拟地址转换:将地址转换成二进制,前n位是页号(根据页面数计算,如32页就有5位),后面是页内偏移量,不变。将页号转换成对应的实际页号,接上页内偏移量就是物理地址了。
    操作系统复习——内存管理

5. 分段存储:

  • 按照用户程序的逻辑来分配内存,用户程序分几个函数、数据区、栈,那就分几段。
  • 段的地址变换:
    • 1 在系统中设置段表寄存器,存放段的起始位置和段长度
    • 2系统将逻辑地址中的段号进行查表,如果没有则说明段号越界,产生越界中断
    • 3如果没有产生越界中断,则看长度是否超出段的长度。
  • 存取一条指令或者数据需要访问主存两次,一次访问段表,一次访问需要的指令或数据
  1. 页式虚拟内存管理(请求分页管理):
  • 程序在运行时将部分页面调入内存即可,不全部调入。
  1. 段页式存储管理:
  • 先分段,在段内分页。

习题

操作系统复习——内存管理