1067 字
5 分钟
--
储存器管理

储存器管理#

储存器层次#

储存器分为三层:CPU寄存器、主存、辅存。也可以根据功能分为寄存器、高速缓存、主储存器、磁盘缓存、固定磁盘、可移动储存介质等。

储存介质的访问速度越快,价格越高。寄存器、高速缓存、主储存器和磁盘缓存均属于操作系统存储管理的管辖范畴,一旦断电信息就中断了。

主储存器 = 内存

寄存器#

访问速度最快,一般的字节长度为32位或64位。

高速缓存#

备份主存储器的信息,减少处理机对主存储器的访问次数,提高执行速度。

程序的装入#

绝对装入方式#

只能用于单道程序环境

可重定位装入方式#

指定某一个地址为相对0号地址。

动态运行时的装入方式#

连续分配存储管理方式#

单一连续分配、固定分区分配、动态分区分配、动态可重定位分区分配四种算法。

单一连续分配#

只能适用于单道用户程序,一次把所有内存分配给程序独占。

固定分区分配#

把内存分片,每个分区只装入一道作业,可以实现多道用户程序,缺乏灵活性。

动态分区分配#

若要实现动态分区分配,需要配备对应的数据结构,用来描述空闲分区和已分配分区的情况。

分配算法:

  • 首次适应算法
  • 循环首次适应算法
  • 最佳适应算法
  • 最坏适应算法

对换#

是把内存中用不上的程序和数据转移到外存上,腾出足够的内存空间,再把已准备好运行条件的程序和数据换入内存。

对换的类型:

  • 整体对换
  • 分页对换

分页储存的管理方法#

页面#

把内存的物理地址分为若干块,由于进程最后一块一般装不满,称之为页面碎片。

地址结构#

符号含义
A逻辑地址空间中的地址
L页面大小
P页号
D页内地址

计算公式:

  • 页号 = 整除(地址 / 页面大小)
  • 页内地址 = 取余(地址,页面大小)

例题: 设页面大小为1KB,设A=2107B

计算得出 P=2P = 2d=122d = 122

页表#

分页系统允许把进程储存在内存的任意物理块中,因此必须要找到内存地址的物理块,系统就创建了页面映像表,称之为页表。

访问内存的有效时间#

从进程发出指定逻辑地址的访问请求,经过地址变换,在内存中找到对应的实际物理地址单元并取出数据,所需要花费的总时间,称之为有效访问时间EAT。

假设访问一次内存的时间为tt,有效访问时间分为:

  • 第一次访问内存时间(查找页表对应的页表项)
  • 第二次访问内存时间(把页表地址拼接成实际物理地址)
EAT=t+t=2tEAT = t + t = 2t

引入快表的分页储存管理方式中,通过快表查询,可以直接得到物理块号,减少了一次内存访问。但快表有容量限制,不能将一整个页表全部装入快表中,所以再快表中查询存在着命中率的问题,命中率就是成功查询到所需页面的表项的比率,在这种系统中,有效访问时间计算公式为:

EAT=a×λ+(t+λ)(1a)+t=2t+λt×aEAT = a \times \lambda + (t + \lambda)(1-a) + t = 2t + \lambda - t \times a

引入快表,CPU访问数据所耗费的时间明显减少。

分段储存管理方式#

特点#

  • 信息共享
  • 信息保护
  • 动态增长
  • 动态链接

基本原理#

分段地址具有如下结构:

段号 + 段内地址

分页和分段的区别#

方面分页分段
信息单位信息的物理单位信息的逻辑单位
大小固定且由系统决定不固定,由用户程序决定
地址空间一维地址空间二维地址空间
储存器管理
https://vilstia.org/posts/学习笔记/操作系统/储存器管理/
作者
琴泠 - Lumina Qin
发布于
2024-12-18
许可协议
CC BY-NC-SA 4.0