计算机四级 - 数据库原理(操作系统部分)- 第5章「内存管理」

  1. 为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射。

    • 地址映射一般是由硬件完成的
    • 如果没有采用分页管理或者直接访问快速定位块,则不用访问页目录和页表
    • 页表项的相关状态位由硬件确定
    • 根据页表项的有效位确定所需访问的页面是否已经在内存
  2. 链接是指把所有编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体的过程。

  3. 存储保护的目的在于为多个程序共享内存提供保障,使在内存中的各程序只能访问其自己的区域,避免各程序间相互干扰。存储保护的内容包括:

    1. 保护系统程序不被用户有意或无意的侵犯;
    2. 不允许用户程序读写不属于自己地址空间的数据,如系统区地址空间、其他用户程序的地址空间。
    3. 当发生地址越界或非法操作时,由硬件产生中断,进入操作系统处理。
  4. 最常用的存储保护机构有:界限寄存器和存储保护键。

  5. 覆盖技术是指一个程序的若干程序段或几个程序的某些部分共享某一个存储空间。
    交换技术是进程在内存和外存之间的动态调度,是由操作系统控制的。当系统内存不足时,操作系统可以采用内存覆盖技术,让一些程序共享某个内存空间,或者是采用交换技术将内存中装不下的进程移到磁盘上。

  6. 交换是指先将内存某部分的程序或数据写入外存交换区,再从外存交换区中调入指定的程序或数据到内存中来,并让其执行的一种内存扩充技术。

    • 在存储管理方案中,可进行进程部分交换的是:页式、段式、页段式三种;
    • 可将整个进程交换的是:固定分区、可变分区
  7. 存在碎片的方法:动态分区、段式存储管理方法

  8. 解决碎片的办法是进行碎片整理,通过移动内存中的程序,把所有空用碎片合并成一个连续的大空用区并日放在内存的一端,而把所有程序放在另一端,这技术称为"珍动技术"或"坚缩技术"。可变分区、动态分区、段式管理用移动技术来解决碎片问题的。

  9. 移动技术可以解决内存碎片问题,当一个程序在内存中移动时,需要读出该程序在内存中的所有代码和数据,进行内存重定位(静态或动态),将读出的代码和数据写入目标内存中,修改内存已分配区,修改空闲区表。

  10. 内存碎片分为内部碎片和外部碎片,内部碎片是指已经分配出去的内存中,没有得到利用的内存空间;而外部碎片是指内存空间大小无法满足分配要求的碎片(还未分配出去)。移动技术是将无法满足分配要求的碎片(外部碎片)集中起来,使得集中后的未分配空间增大,从而满足分配要求,进而可以分配的技术,所以不能采用移动技术解决的碎片问题通常都是内部碎片的问题。

    • 可能产生外部碎片的是:段式、可变分区
    • 可能产生内部碎片的是:虚拟页式、段页式、固定分区
  11. 存储管理的主要任务:

    1. 内存分配与回收
    2. 存储共享
    3. 存储保护
    4. "扩充"内存容量
  12. 固定分区和可变分区存储管理方案采用了连续分配策略,并且这两种方式都是以整个进程为单位一次性全部分配内存空间的。而页式、段式和段页式均采用了事先分割成多个相等大小块的,并分配多个不连续块的非连续的内存分配策略,是分配部分存储空间,一部分一部分地加载入内存的。

  13. 在可变分区存储管理中,某作业完成后要收回其主存空间,该空间要与相邻空闲区合并。当只有上邻空闲或者下邻空闲时,回收后,空闲区的个数是不会变化的,只会引起空闲区表中相应项的起始地址或者长度变化。但如果是即有上邻又有下邻,则合并后,空闲区块的数量就会减少一个。

  14. 实现可变分区存储管理方案需要具备的基本条件:

    1. 硬件地址转换机制作支持
    2. 基址寄存器
    3. 限长寄存器
    4. 地址加法器
    5. 地址比较器
  15. 重定位就是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程。
    重定位有两种,分别是动态重定位与静态重定位。

    1. 动态重定位是指在装入程序时,不进行地址转换,而是直接把程序装入内存中,程序在执行过程中,每当执行一条指令时都由硬件的地址转换机构将指令中的逻辑地址转换成绝对地址。
    2. 静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的地址
  16. 页式存储管理方案中,系统将程序的逻辑空间按照同样大小也划分成若干页面,称为逻辑页面也称为页。程序的各个逻辑页面从0开始依次编号,称作逻辑页号或相对页号。每个页面内从0开始编址,称为页内地址。页号是地址的高位部分,页内地址是地址的低位部分。

  17. 页式存储管理中的页面和页框大小可以采用不同的尺寸,为了提高内存利用率,根据需要采用多种不同大小的页面,用户进程在运行过程中不可以改变页面尺寸,只能由操作系统设需页面的大小。

  18. 页式存储管理中,快表存放在缓存(cache)中。

  19. 在分页系统中,虚拟地址结构由页号和页内偏移(页内地址)组成。

    • 相关的计算:
      • 页号位数=总地址位数−页内偏移位数
      • 页内偏移的位数决定了页面的大小,因此每个页面大小为:2^(页内偏移量位数)
      • 最大页面数:2^(页号位数)
      • 总虚拟地址空间 = 页面大小 × 页面数 →→(页数 = 进程地址空间大小 / 页面大小)
      • 【扩充:512MB = 2^29 ,1KB = 1024 = 2^10 ,2KB=2^11】
  20. 页式分配的优点:

    • 由于它不要求作业或进程的程序段和数据在内存中连续存放,从而有效地解决了碎片问题。
    • 动态页式管理提供了内存和外存统一管理的虚存实现方式,使用户可以利用的存储空间大大增加。这既提高了主存的利用率,又有利于组织多道程序执行。
  21. 若在页表中发现要访问的页面不在内存,则产生缺页中断。

    • 有效位又称驻留位、存在位或中断位,表示该页是在内存还是在外存中。
    • 修改位表示该页在内存中是否被修改过。
    • 保护位表示是否能有读/写/执行权限。
    • 禁止位表示采用内存映射I/0的机器中需要的位。
  22. 系统在设置一张空闲分区表,用于记录每个空闲分区的情况。每个空闲分区占一个表目,表目中包括分区序号、分区始址以及分区的大小等数据项。若该分区的起始地址加长度等于空闲区表中某个登记项所表示空闲区的起始地址,表明回收分区的下邻分区是空闲的。

  23. 简单页式存储管理方案中,若地址用m个二进制位表示,其中页内地址部分占n个二进制位,m-n位用于描述页面编号,所以最大允许进程有2^(m-n)
    *

    |-----------------------------------------------------------------------------|
    | 在虚拟页式存储管理中,某一时刻CPU的利用率为50%,磁盘的繁忙率为3%;意味着CPU利用率还可以通过增加进程数目,来提高CPU使用率。 |
    | 在虚拟页式存储管理中,某一时刻CPU的利用率为3%,磁盘的繁忙率为97%;意味着磁盘利用率过高,影响了CPU的执行效率,适当减少进程数量以提高系统效率 |

  24. 实现虚拟页式存储管理方式需要以下的硬件支持:

    1. 系统有容量足够大的外存
    2. 系统有一定容量的内存
    3. 最主要的是,硬件提供实现虚-实地址映射的机制
    4. 缺页中断处理机制
  25. 实现虚拟页式存储管理方式需要具备的软件条件:

    1. 缺页中断处理程序
    2. 页面调入策略和页面置换策略
    3. 程序分页机制和页表
  26. 虚拟页式存储管理:在进程开始运行之前,不是装入全部页面,而是装入一个或零个页面,之后根据进程运行的需要,动态装入其他页面,当内存空间已满,而又需要装入新的页面时,则根据某种算法置换出某个页面,以便装入新的页面。故虚拟页式是动态扩充内存容量。

  27. 虚拟存储空间的大小受计算机地址位宽的限制

  28. 在虚拟页式存储管理中,为实现地址变换所涉及到的数据结构是:空闲区表、页表、位图

  29. 分配算法:

    1. 最先适应算法是指当接到内存申请时,查找分区说明表,找到第一个大小足够的可用块(不用是最小的)
    2. 下次适配算法是指当接到内存申请时,查找分区说明表,从上一次分配的位置开始扫描内存,选择下一个大小足够的可用块。
    3. 最优适应算法是指当接到内存电请时,查找分区说明表,找到能满足电请长度的最小空闲区,将其分割并分配
    4. 最坏适应算法是指当接到内存申请时,查找分区说明表,找到能满足申请要求的最大空闲区。
  30. 页面置换算法:

    1. 先进先出页面需换算法(FIFO):该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最长的页面给予淘汰。
    2. 最近最少使用页面置换算法(LRU):首先置换最长时间未被使用过的页面
    3. 最近最不常用页面置换算法(LFU):一段确定的周期内,选择被使用次数最少的页面调出
    4. 最佳页面置换算法(OPT):又叫理想页面置换算法,置换以后不再需要的、或者在最长时间以后才会用到的页面
    5. 第二次机会页面置换算法:在FIFO算法的基础上为每个页面增加一个R位,每次选择页面进行置换时,检查进入内存时间最久页面的R位,如果是0,那么这个页面既老又没有被使用,可以立即置换掉;如果是1,则将R位清0,并把该页面放到当前内存中页面链表的尾部,修改其进入时间,然后继续搜索,在下一次置换之前,如果R位为0的页面再次被访问,则需R位为1。相对于FIFO算法,第二次机会页面置换算法给了每个页面第二次留下来的机会。
  31. 发生"抖动"现象的原因:页面置换算法不合理

  32. 能支持多道程序设计的存体管理方案:可变分区存储管理、页式存储管理、固定分区存体管理、段页式存储管理;单一分区存储器管理只充许一道程序独占内存空间。

  33. 用于管理空闲物理内存的方法:空闲块链表法、位示图法、空闲页面表(内存分配表的组织方式)

  34. 可"扩充"内存容量的方案是:虚拟页式、虚拟段式


其余章节进我主页进行查看

相关推荐
luckys.one6 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
言之。7 小时前
Django中的软删除
数据库·django·sqlite
汇能感知8 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun8 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao8 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾9 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
阿里嘎多哈基米9 小时前
SQL 层面行转列
数据库·sql·状态模式·mapper·行转列
抠脚学代码9 小时前
Ubuntu Qt x64平台搭建 arm64 编译套件
数据库·qt·ubuntu
jakeswang9 小时前
全解MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析
数据库·mysql
DKPT9 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习