C3.存储管理

        
存储管理的主要模式@
C3.存储管理
逻辑地址:又称相对地址,即用户编程所使用的编程地址
        从0开始编号
段氏程序设计:把一个程序设计成多个段
        用户可以应用段覆盖技术扩充内存空间使用量
物理地址
主存储器的复用
        1.按照分区复用(分区固定/可变)
        2.按照页架复用(页架固定)
存储管理的基本模式
C3.存储管理
        
存储管理的功能@
地址转换:又称重定位,将逻辑地址转换为绝对地址。
主存储器空间的扩充
1.对换技术;
2.虚拟技术;
虚拟存储器@
实现思路:
(辅存)虚拟地址空间:容纳进程装入
(主存)实际地址空间:承载进程执行

存储管理的硬件支撑@
C3.存储管理

单连续分区存储管理@
固定分区存储管理(会产生内存内零头
可变分区存储管理(最常用
        
可变分区存储管理@
按进程的内存需求 来动态划分分区
内存分配
最先适应分配算法
邻近适应分配算法
最优适应分配算法(最容易产生内存外零头问题)
最坏适应分配算法
地址转换与存储保护
        移动技术(程序浮动技术)
        1.解决内存外零头问题
        2.需要动态重定位支撑
        
页式存储管理@
逻辑地址:页号和单元号
物理地址:页架号和单元号
地址转换通过查阅页表
一张位示图来记录主存分配情况
数据共享:不同进程可以使用不同页号共享数据页
程序共享:不同进程可以使用相同页号共享数据页
地址转换
        页表放在主存中:每次地址转换必须访问两次主存
        1.按页号独处页表中的相应页架号
        2.按计算出来的绝对地址进行读写
        存在问题:降低了存取速度
        解决办法:利用Cache存放部分页表
        快表:页号,页架号。(联想存储器,按照内容寻址)
        基于快表的地址转换流程
C3.存储管理
C3.存储管理
页式虚拟存储管理
页面调度
        缺页中断率=不成功访问次数/总访问次数
        影响缺页中断率的因素:可用页架数越多,越低;页面越大,越低;用户编程方式。
        OPT页面调度算法(最佳算法):
        先进先出FIFO页面调度算法:总是淘汰最先调入主存的那一页。
        最近最少用LRU页面调度算法:淘汰最近一段时间较久未被访问的那一页。既考虑了循环性又兼顾了顺序性。
                模拟实现:每页件一个引用标志,供硬件使用;设置一个时间间隔中断;
        最不常用LFU页面调度算法:
        时钟CLOCK页面调度算法:
反置页表
原来的页表是以页号为索引,记录页架号;但是反置页表是以页架号为索引,记录进程号和页号
        针对内存中的每个页架建立一个页表
        表项包含:正在访问该页架的进程标识,页号及特征位,和哈希链指针。

段式存储管理@

分段存储器的逻辑地址由两部分组成:
        段号:单元号
存储管理需要增加设置一个段表,每个段占用一个段表项:段始址,段限长,以及存储保护,可移动,可扩充等标志位。
地址转换流程
C3.存储管理
段的共享
段式虚拟存储管理
        将进程的所有分段都存放在辅存中,需要时,动态调入主存。
        段表扩充:特征位,存取权限,扩充位,标志位C3.存储管理
段页式存储管理
    基本思想:
        段式存储管理可以基于页式存储管理实现
        每一段不必占据连续的存储空间,可存放在不连续的主存页架中
        能够扩充位段页式虚拟存储管理
        装入部分段,或者段内部分页面
C3.存储管理
C3.存储管理