操作系统-存储管理所有知识点整理复习

个人博客

页式存储组织

页式存储:将程序与内存划分为同样大小的块,以页为单位将程序调入内存

如上图:页式存储管理将程序和内存都划分成了同样大小的块之后,就需要页表来记录他们的对应关系了
操作系统-存储管理所有知识点整理复习

逻辑地址 = 页号 + 页内地址
物理地址 = 页帧号 + 页内地址

  • 优点:利用率搞,碎片小,分配及管理简单
  • 缺点:增加了系统开销(因为有额外的查表操作);可能产生抖动现象

如何通过逻辑地址求物理地址

页号和页帧号是可以相等和不相等,

操作系统-存储管理所有知识点整理复习

先找到逻辑地址的页内地址,直接就是物理地址的页内地址,然后查找页表,找到页号对应的页帧号。页帧号+页内地址就是物理地址

例题
操作系统-存储管理所有知识点整理复习
解题过程:

  1. 由页面大小为4K,4k = 2^12 得页内地址为12位
  2. 逻辑地址高于12位的就是页号,所以页号是5,页内地址为A29
  3. 页号为5对应的页帧号是6,所以物理地址6A29H
  4. 页面的淘汰必然只能淘汰在内存里的,所以3,4不能被淘汰(没有页帧号),面因为刚刚被访问过的访问位是1,不能淘汰,所以只能选1

段式存储

段式存储是按照逻辑结构来划分,一个程序中我们会把main函数划分为一个段,它的第一个子函数可划分为一个端,第二个子函数也可划分为一个段,段的大小不要求 一致。

操作系统-存储管理所有知识点整理复习

  1. 优点:多道程序共享内存,各程序修改互不影响
  2. 缺点:内存利用率低,内存碎片浪费大

段页式存储

段页式顾明思议,结合前两者的有点,先分段再分页存储
操作系统-存储管理所有知识点整理复习

  1. 优点:空间浪费小,存储共享和保护容易
  2. 缺点:由于管理软件的增加,复杂度和开销也随之增加,需要硬件以及占用的内容也增加,速度下降

快表

快表是一块小容量的相连存储器(按内容存储),由高速缓冲器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的活动页面的页号

页面置换算法

cache的内存块有限,当其所有块都被占用的时候,有新的进程是就要考虑到页面置换的问题

最优算法(opt)

理论上的淘汰算法,是在事情发生后,知道那个程序块访问最多,那个最少。算出了什么时间点要淘汰什么样的页面。

随机算法(RAND)

随机的淘汰一个;性能不稳定

先进先出算法(FIFO)

淘汰页面的时候,看这几个页面那个页面最先进入内存,淘汰最先进入的

先进先出有可能产生抖动(分配更多的资源,结果上看来还较差)
操作系统-存储管理所有知识点整理复习

  • 最上面一行代表我们要访问的页面的序列
  • 第一列代表的是内存的页面,首先这三个页面都是空的

先看第一张图,先进入的4号页,内存没有,缺页,接下来访问3号页面,内存里面是空的。也缺页,接下来2号页面同理缺页。接下来1号页面尤为前面访问的4,3,2也缺页,顶替最先进来的4…这样缺页9次。增加一个页面后下面那张缺页了10次,说明FIFO抖动

最近最少使用算法(LRU)

刚刚被访问过的是不会被淘汰(置换)的,不会产生抖动

例题:看出LRU与FIFO的区别

操作系统-存储管理所有知识点整理复习

当6个页面进来的时候FIFO算法淘汰的是(0 1 2)3个页面中最先进来的0,而LRU则不会淘汰刚刚被访问的0,淘汰的是最远被访问的1

经典例题

操作系统-存储管理所有知识点整理复习
解题过程:

  1. 没有使用快表,说明每访问一次内存需要查一下表,才能读取响应的块,所以每一个块需要两次内存的访问。6个人页面,访问12次内存
  2. 约定俗成:操作数产生一次缺页中断,指令产生1次缺页中断,所以5次 (这里 看视频时我也是强行记忆,还没搞懂,搞懂后会详细解释)

磁盘管理

操作系统-存储管理所有知识点整理复习
磁盘是有磁头的,没画出来。磁道和扇区。匀速旋转。每一个磁道上面存放的内容。

存取时间 = 寻到时间 + 等待时间

  • 寻到时间是指磁头移动到扇区所需要的时间
  • 等待时间为等待读写的扇区转到磁头下方所用的时间

磁盘的调度算法

先来先服务(FCFS)

那个作业先来先执行那个作业

最短寻道时间优先(SSTF)

找距离磁头最近的一个道

扫描算法(SCAN)

又称为电梯算法,磁盘一直转,碰到就处理,不管他什么时候来

循环扫描算法(CSCAN)

在扫描算法的基础上只扫描一边

例题

操作系统-存储管理所有知识点整理复习

读取磁盘数据的时间包括

  1. 找磁道的时间
  2. 找块(扇区)的时间,即旋转延迟的时间
  3. 传输时间