操作系统 - 存储管理

存储器工作原理

程序链接

链接库

静态链接

程序装载到内存和运行前链接

动态链接

内存一边装载程序一边链接,生成可执行程序

运行时连接

程序执行时链接

地址重定位

可执行程序逻辑地址转换成物理地址的过程

  • 静态地址重定位
  • 动态地址重定位
    程序执行过程中,当 CPU 引用内存地址时,由硬件截取逻辑地址,并在它被发送到内存之前加上重定位寄存器的值,以便实现地址转换
  • 运行时链接地址重定位
    运行前不必装载全部运行代码

连续存储管理

MMU

支撑存储系统的底层硬件

分页存储管理

image.png

翻译快表(TLB)

页表可以放在内存,访问数据要访问内存两次,一次访问页表,一次访问数据
翻译快表,放在相联存储器(一种硬件,比内存快),用来存放进程最近访问的部分页表项

反置页表用哈希

分段存储管理

程序分段结构

二维地址结构,为什么?http://blog.csdn.net/top_along/article/details/37875267
因为段之间的地址不一定连续,段内地址连续
页表为一维地址,一维页表地址可以拆分成页框号和页内位移

目的

满足用户(程序员)编程和使用上的习惯


image.png

分段和分页的比较

  • 分段是信息的逻辑单位,是用户可见的,段长由用户根据需求设定,源程序(段号、段内位移)经链接装配后仍保持二维地址结构,引入目的是满足用户模块化程序设计的需要
  • 分页是信息的物理单位,用户不可见,页长由系统决定,源程序(页号,页内位移)经链接装配后变成一维地址,引入的目的是实现离散分配,并提高内存利用率

虚拟存储管理

在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换的功能,能从逻辑上为用户提供一个比物理内存容量大得多的、可寻址的内存储器

image.png

虚存对用户隐蔽可用物理内存的容量和操作细节,虚存容量与物理内存无关,而受限于计算机地址结构磁盘容量
用户只需要在逻辑地址中间编程,大大方便了编写程序工作,系统负责内存分配和地址映射,把逻辑地址最终转换为物理地址

请求分页虚存管理的硬件支撑

支撑存储系统的底层硬件为MMU,存储管理部件(转换地址,是CPU一部分),它提供地址转换和存储保护功能,并支持虚存管理和多任务管理

  • 管理硬件页表基址寄存器
  • 分解逻辑地址
  • 管理快表
  • 访问页表


    image.png

请求分页虚存地址转换过程

image.png

缺页中断率

不在内存中的概率
f = F / A
f——缺页中断率
F——不成功访问次数
A——总次数

看清楚题目问却缺页数还是缺页率

全局页面替换策略

  • 最佳页面替换算法(OPTimal)
    淘汰以后不再访问的页,或距现在最长时间后才访问的页
  • 先进先出页面替换算法(FIFO)
  • 最近最少使用页面替换算法(LRU)
    淘汰最近一段时间未被访问的页

你可能感兴趣的:(操作系统 - 存储管理)