美文网首页
存储管理(一)

存储管理(一)

作者: 菜根小友 | 来源:发表于2019-04-03 10:29 被阅读0次

    目录

    4.1 存储器的工作原理

    • 存储器层次
    • 地址转换与存储保护

    4.2 连续存储管理

    • 固定分区存储管理
    • 可变分区存储管理
    • 内存不足的存储管理技术

    存储管理是操作系统的重要组成部分,负责管理计算机系统的重要资源——内存。

    内存空间一般分为两部分

    • 系统区 用于存放操作系统内核程序和数据结构等。
    • 用户区 用于存放应用程序和数据。

    操作系统的主要任务之一是尽可能方便用户使用和提高内存利用率。此外,有效的存储管理也是多道程序设计的关键支撑。具体地说,存储管理包含以下功能:

    • 存储分配 为进程分配内存空间以便运行,完成内存区的分配和去配工作。在虚存管理系统中,由于运行程序部分处于内存,部分位于外存,故不仅涉及内存也涉及外存空间的申请与释放工作

    • 地址映射

    • 程序保护

    • 存储共享

    • 存储扩充

    4.1 存储器工作原理

    • 4.1.1 存储器层次

      image.png
    • 4.1.2 地址转换与存储保护

      • 程序的编译、链接、装载和执行


        image.png
    • 编译程序负责记录引用发生的位置,编译或汇编的结果产生相应的多个目标代码模块,每个都附有供引用使用的内部符号表和外部符号表。符号表中依次给出每个符号名及在本目标代码模块中的名字地址,在模块被链接时进行转换。

    • 链接需要解析内部和外部符号表,把对符号名字引用转换为数值引用,要转换每个涉及名字地址的程序入口点和数据引用点成为数值地址。

    • 装入时根据指定的内存块首地址,再次修改和调整被装载模块中的每个逻辑地址,将逻辑地址绑定到物理地址。

    链接程序(linker)的作用是根据目标模块之间的调用和依赖关系,将主调模块、被调模块、以及所用到的库函数装配和链接成一个完整的可装载执行模块。
    根据程序链接发生的时刻和链接方式,可分成三种:
    (1)静态链接
    (2)动态链接
    (3)运行时链接

    装载程序(loader)把可执行程序装入内存方式有三种:

    (1)绝对装载。装载模块中的指令地址始终与其内存中的地址相同,即在模块中出现的所有地址都是内存绝对地址。

    (2)可重定位装载。根据内存当时使用情况,决定将装载代码模块放入内存的物理位置。模块内使用的地址都是相对地址。

    (3)动态运行时装载。为提高内存利用率,装入内存的程序可换出到磁盘上,适当时候再换入到内存中,对换前后程序在内存中的位置可能不同,即允许进程的内存映像在不同时候处于不同位置,此时模块内使用的地址必为相对地址。

    可执行程序逻辑地址转换 (绑定)为物理地址的过程称地址重定位 、地址映射或地址转换,基于上述程序装载方式,可区分三种地址重定位。
    (1) 静态地址重定位
    (2) 动态地址重定位
    ( 3 ) 运行时链接地址重定位

    存储保护
    涉及:防止地址越界和控制正确存取。
    各道程序只能访问自己的内存区而不能互相干扰,必须对内存中的程序和数据进行保护,以免受到其他程序有意或无意的破坏。可对进程执行时所产生的所有内存访问地址进行检查,确保进程仅访问它自己的内存区,这就是地址越界保护,越界保护依赖于硬件设施,常用的有:界地址和存储键。
    进程访问分配给自己的内存区时,要对访问权限进行检查,如允许读、写、执行等,从而确保数据的安全性和完整性,防止有意或无意的误操作而破坏内存信息,这就是信息存取保护。


    4.2 连续存储空间管理

    4.2.1 固定分区存储管理

    • 固定分区存储管理的基本思想
    • 固定分区存储管理的数据结构
    • 作业进入固定分区排队策略

    4.2.2 可变分区存储管理

    可变分区存储管理是按作业的实际大小来划分分区,且分区个数也是随机的,实现多个作业对内存的共享,进一步提高内存资源利用率。

    image.png

    可变分区存储管理数据结构

    可变分区内存分配表可由两张表格组成:

    • 已分配区表
    • 未分配区表


      image.png

    链表空闲区管理方法

    • 空闲区开头单元存放本空闲区长度及下个空闲区起始地址,把所有空闲区都链接起来,设置第一块空闲区地址指针,让它指向第一块空闲区地址。
    • 申请空闲区。
    • 归还空闲区。

    可变分区管理分配算法

    • 最先适应分配算法
    • 下次适应分配算法
    • 最优适应分配算法
    • 最坏适应分配算法
    • 快速适应分配算法
    image.png image.png

    4.2.3 内存不足的存储管理技术
    1.移动技术

    image.png

    有关移动问题讨论

    • 移动条件
    • 移动时机
    • 移动算法

    2. 对换技术

    • 对换的作用
      为平衡系统负载,通过选择一个进程,把其暂时移出到磁盘,腾出空间给其他进程使用,同时把磁盘中的某个进程再换进内存,让其投入运行,这种互换称对换。

    • 对换进程选择
      把时间片耗尽或优先级较低的进程换出,因为短时间内它们不会被投入运行;
      数据区和堆栈是进程运行时创建和修改的,可通过文件系统把这些可变信息作为特殊文件移出。
      批处理系统中,当有进程要求动态扩充内存且得不到满足时可触发对换;分时系统中,对换可与调度结合在一起,每个时间片结束或执行I/O操作时实施。

    • Unix对换器

    3. 覆盖技术

    • 覆盖技术
    • 覆盖的实现技术
    • 覆盖技术的不足

    相关文章

      网友评论

          本文标题:存储管理(一)

          本文链接:https://www.haomeiwen.com/subject/apnfvqtx.html