-
常规存储器管理方式和局部性原理
- 特征:一次性 驻留性
- 局部性原理:较短的时间内程序的执行仅局限于某个部分
- 时间局限性:最近访问过的又被访问(循环操作)
- 空间局限性:程序顺序执行
- 虚拟存储器:进程运行时仅部分装入
- 虚拟内存 VM:允许进程的执行不必完全在内存中,程序可以比物理内存大
-
虚拟存储器
-
定义:具有调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储系统
-
覆盖技术:程序运行过程中,在不同时刻把同一存储区分配给不同程序段或数据段,实现存储区共享的一种内存分配技术。
-
交换技术:将内存中某进程暂时不用的程序和数据写入外存交换区中,腾出来的空间供其它进程使用。
-
应用:
1)交换整个作业–用于单道系统(单道模拟多道)
2)交换整个进程–用于连续分区存储管理(进程挂起、激活、中级调度)
3)交换页面/段面–用于分页、分段存储管理(虚拟存储技术)
-
-
虚拟存储器的特征
- 多次性
- 对换性
- 虚拟性
-
实现虚拟存储器
- 分页请求系统:增加请求调页功能和页面置换功能所形成的页式虚拟存储系统 (页面为单位)
- 请求分段系统:增加了请求调段功能和分段置换功能所形成的段式虚拟存储系统 (段为单位)
-
-
请求分页存储管理
-
硬件支持:请求页表机制 缺页中断机构 地址变换机构
- 缺页中断机构
- 在指令执行期间产生和处理中断信号,以便能及时将所缺之页面调入内存
- 保持多次中断时的状态,保持最后能返回中断前产生中断的指令处继续执行
- 缺页中断机构
-
数据结构:
- 分页存储管理的数据结构:位示图
- 请求分页存储管理的数据结构:页表
- 将用户地址空间中的逻辑地址映射为内存空间中的物理地址
- 记录哪些页面在内存,哪些不在内存
-
请求分页中的内存分配
- 最小物理块数:保证正常运行所需要的最小物理块数
- 请求分页系统中的页面分配应当以减少缺页率为目标
- 内存分配策略:
- 固定分配局部置换
- 可变分配全局置换
- 可变分配局部置换
- 页面置换:指在内存空间已被装满而又要装入新页时,必须按某种算法将内存中的某页置换为一个新页
-
物理块分配算法:
- 平均分配法
- 按比例分配法
- 考虑优先权的分配算法
-
页面调入策略:
- 随用随调策略/请求调页:发生缺页中断,缺哪页调入哪页
- 预调页策略:使用第一页,发生缺页中断,在调入第1页时连同第2、3、…页一起调入
-
缺页从哪调入?| 缺页调入时间
- 从磁盘对换区中调入缺页(数百us至数十ms)
- 从磁盘文件区中调入缺页(几十甚至几百ms)
- 从磁盘缓冲区中调入缺页(UNIX方式)(数百ns)
-
缺页率:f = F / A (F:访问页面失败的次数 S:访问页面成果的次数 A:A = F + S)
-
页面置换算法
- OPT 最佳置换算法:被淘汰的页面将是以后永不使用的,或许是在最长时间内不再被访问的页面
- FIFO 先进先出置换算法:淘汰最先进入内存的页面
- LRU 最近最久未使用置换算法:选择内存中上次使用距当前最远的页予以淘汰
- LFU 最少使用置换算法:选择再最近时期使用最少的页面最为淘汰页
- CLOCK
- 改进的CLOCK
-
页面缓冲算法PBA
-
抖动
发生“抖动”的根本原因是,同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存。这会使得在系统中排队等待页面调进/调出的进程数目增加。显然,对磁盘的有效访问时间也随之急剧增加,造成每个进程的大部分时间都用于页面的换进/换出,而几乎不能再去做任何有效的工作,从而导致发生处理机的利用率急剧下降并趋于0的情况。我们称此时的进程是处于“抖动”状态。
- 预防方法:
- 采取局部置换策略
- 把工作集算法融入到处理机调度中
- 利用”L = S“准则调节缺页率
- 选择暂停的进程
- 预防方法:
-
-
请求分段存储管理方式
- 硬件支持:段表机制、缺段中断机构、地址变换机构
- 数据结构:MAT表 段表
- 缺段中断机制:进程执行一条指令产生缺段中断时,压入堆栈的断点时当前指令的地址
-
请求段页式存储管理
- 硬件支持:段表控制寄存器
- 软件支持:缺页置换算法