操作系统4_存储器管理

本文详细介绍了操作系统中存储器的管理,包括地址映射、主存分配与回收、存储保护、主存扩充(虚拟内存)等内容。讲解了静态与动态地址映射的优缺点,固定与可变分区分配策略,以及分页存储管理的基本思想和地址变换。还讨论了存储器的层次结构、程序接入与链接的方法,以及不同类型的存储管理特点。
摘要由CSDN通过智能技术生成

操作系统4_存储器管理

1. 存储器的管理功能

1.1 地址映射/地址重定位

  • 基本概念
    • 内存地址:内存的每个存储单元都有一个编号,这种编号称为内存地址/物理地址/绝对地址
    • 内存空间:内存地址的集合称为内存空间/物理地址空间
    • 逻辑地址
      • 要求用户用内存地址编程是非常困难的,尤其是在多道程序设计的环境中
      • 用户编程所用的地址称为逻辑地址/程序地址/虚地址
      • 由逻辑地址组成的空间称为逻辑地址空间/程序地址空间
    • 地址映射:把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射/地址重定位
  • 地址映射的方式
    • 静态地址映射:程序被装入内存时由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换
      • 映射方法:假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:MR=BR+VR
        例如,程序装入内存的首地址为1000,则装配程序就按MR=1000+VR对程序中所有地址部分进行修改,修改后指令Load A,200就变为Load A,1200
      • 优点:不需要硬件的支持
      • 缺点:程序必须占用连续的内存空间;一旦程序装入后不能移动
    • 动态地址映射
      • 映射时刻:动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序转换为内存地址
      • 映射实施:一般来说这种转换是由专门的硬件机构来完成的
      • 映射方法:最简单的硬件机构是重定位寄存器;在地址重定位机构(一个基地址寄存器BR、一个程序地址寄存器VR、一个内存地址寄存器MR);计算方法MR = BR + VR
      • 具体过程:
        • 程序装入内存后,它所占用的内存区的首地址由系统送入基地址寄存器BR中
        • 在程序执行的过程中,若要访问内存,将访问的逻辑地址送入VR中
        • 地址转换机构把VR和BR中的内容相加,并将结果送入MR中,作为实际访问的地址
      • 优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可;一个程序不一定要求占用一个连续的内存空间;可以部分地装入程序运行;便于多个进程共享同一个程序的代码
      • 缺点:需要硬件的支持;实现存储管理的软件算法较为复杂

1.2 主存分配与回收

主要完成内存的分配和回收工作,要求设计者选择和确定以下几种策略和结构:

  • 调入策略
  • 放置策略
  • 置换策略
  • 分配结构
  • 引起内存分配和回收的原因

1.3 存储保护

  • 存储保护:保证内存中的多道程序只能在给定的存储区域内活动并不产生干扰(防止地址越界、防止越权(对共享区有访问权))

  • 硬件支持:界地址寄存器/界限寄存器

    界地址寄存器是被广泛使用的一种存储保护技术

    机制比较简单,易于实现

  • 实现方法

    • 在CPU中设置一对下限寄存器和上限寄存器,存放用户作业在主存中的下限和上限地址
    • 也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)
    • 每当CPU要访问主存,硬件自动将被访问的主存地址与界限寄存器的内容进行比较,以判断是否越界
    • 如果未越界,则按此地址访问主存,否则将产生程序中断/越界中断(存储保护中断)
  • 图示

    image-20240526114621124

1.4 主存扩充/虚拟内存

  • 主存扩充/虚拟内存:为了满足程序员在编程时不受内存结构和容量限制的需求,操作系统为用户提供了一种可以与内存结构不同的存储器,这种存储器被称为虚拟存储器;虚拟存储器是由虚拟内存构成的,这些内存空间被称为虚存空间;虚存空间可以扩展到实际内存之外,因此被形象地称为“虚拟”空间
  • 基本原理
    • 将程序正在使用的部分内容放在内存,而暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存
    • 由于程序在执行时,在一段时间内一般仅使用它的程序的一部分(或一小部分),所以程序仅有部分装入内存完全能够正确执行
    • 要由操作系统结合相关硬件来完成上述工作,这样计算机好像为用户提供了一个容量远大于内存的存储器,这个存储器称为虚拟存储器

2. 存储器的层次结构

  • (从上到下,容量增大,速度减慢)
  • CPU
    • 寄存器
  • 主存
    • 高速缓存SRAM
  • 主存
    • 主存储器SDRAM
  • 主存
    • 磁盘缓存
  • 辅存
    • 固定磁盘
  • 辅存
    • 可移动
    • 存储介质

3. 程序的接入与链接

image-20240526115810004

3.1 程序的链接

  • 静态链接方式
    • 概念:程序运行前将各个目标模块及其所需的库函数链接成一个完整的装入模块,以后不在拆开
    • 具体工作:对相关地址进行修改、变换外部调用符号
    • 图示:image-20240526120551663
  • 装入时动态链接
    • 特点:装入内存时,一边装入,一边链接
    • 优点:便于修改和更新、便于实现对目标模块的共享
  • 运行时动态链接
    • 是装入时链接方式的一种改进
    • 在程序执行时进行链接

3.2 程序的装入

  • 绝对装入方式
    • 特点

      • 只适用于单道程序环境

      • 用户程序编译后,产生绝对地址的目标代码

      • 程序中的逻辑地址与物理地址完全相同

      • 程序和数据的地址勿需转换或修改

      • 程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予

    • 不足

      • 在由程序员直接给出绝对地址时,不仅要求程序员熟悉内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址
      • 通常在程序中采用符号地址,然后在编译或汇编时,再将这些符号,地址转换为绝对地址
  • 可重定位装入方式
    • 适用于多道程序环境
    • 可将程序装入到内存任何可用的空闲区域
    • 程序的逻辑地址与实际装入的内存地址不同
    • 在装入时完成地址转换工作(即静态重定位)
    • 程序装入内存后位置不允许改变,即不能移动
    • image-20240526121747833
  • 动态运行时装入方式
    • 适用于多道程序环境
    • 程序可装入内存任何可用位置
    • 程序装入时仍使用相对地址
    • 地址转换工作在程序真正要执行时才进行(即动态重定位)
    • 程序装入到内存后充许改变位置

4. 分区存储管理

4.1 单一连续分配

只能装入一道用户程序;无需确定大小,程序独占内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值