操作系统第六章存储(1).ppt

精选ppt ... ? 逻辑页号 页架号 ... ... ... ... f p l b b l ... ... PCB 页架号 逻辑页号 ... f ... p ... f d p d + cp p f 物理地址 逻辑地址 b: ... 有效访问时间 (Effective Access Time) EAT=快表命中率?(快表访问时间+内存访问时间)+快表不中率?(快表访问时间+2 ?内存访问时间) ns 98%?(20+100)+2% ?(20+200)ns =122ns 6.3.2.2 多级页表 提出背景 内存空间成倍增长, 进程虚拟空间成倍增加 单级页表需要很大连续内存空间 例如 32位进程地址空间,页长占12位(4k),页号20位,页表最多可达220个入口! 多线程设计导致进程虚拟空间不连续(空洞hole) 栈的预留空间(没有页架相对应) 页表所占内存空间浪费 解决策略 二级或多级页表 Two-Level Table Scheme 外页表对应hole的表项没有对应的内页表 访问hole表项动态建立内页表 Two-Level Paging Example A logical address (on 32-bit machine with 4K page size) is divided into: a page number consisting of 20 bits. a page offset consisting of 12 bits. Since the page table is paged, the page number is further divided into: a 10-bit page number. a 10-bit page offset. Thus, a logical address is as follows: where pi is an index into the outer page table, and pj is the displacement within the page table. page number page offset pi pj d 10 10 12 Address-Translation Scheme Address-translation scheme for a two-level 32-bit paging architecture Even though time needed for one memory access is quintupled, caching permits performance to remain reasonable   4级页表有效访问时间 EAT=快表命中率?(快表访问时间+内存访问时间)+快表不中率?(快表访问时间+5 ?内存访问时间) ns 98%?(20+100)+2% ?(20+500)ns =128ns 6.3.2.3 反置页表(inverted page table) 传统页表面向进程空间 每个进程逻辑页面有一表项 当进程空间很大时,页表很大 反置页表面向内存空间 每个内存页架一个表项 大小固定 反置页表--工作原理 程序 物理 内存 … … pid p … … f d pid p d f 逻辑地址 物理地址 反置页表 6.3.2 页式存储管理(Cont.) 采用散列技术的反置页表地址映射 逻辑地址 pid p d 进程 逻辑页号 冲突计数 空闲 ... … … … pid p 2 1 … … … … 进 程 散列函数 f f d 物理地址 采用散列技术的反置页表 物理内存 速度问题 反置页表查找 由表头起始,平均为表长度的一半 速度慢 解决方案 在反置页表前增加一级杂凑表 查找杂凑表与反置页表至少需要两次访问内存 为进一步提高速度,快表缓冲 1. 内存空间划分:动态异长,每区一段。 段首址+段内地址 物理地址= b’: l’ b’+d 6.3.3 分段式存储管理(segmentation) 2. 进程空间划分:若干段,每段一个程序单位。 调用x段e f: 访问d段a e: 调用y段f main(段号0) X(段号1) Y(段号2) D(段号3) a: 0 … 80k-1 0 ... 40k-1 0 … 20k-1 0 … 60k-1 逻辑地址= 段号 段内地址 (二维地址) main x y d 3. 对应关系 40k 60k 80k 20k ... ... ... ... 进程空间 内存空间 100k: 200k: 300k: 320k: 第六章 存储管理 存储管理功能

文档评论(0)

1亿VIP精品文档

相关文档