计算机组成原理 RV$5.7虚拟存储器 llxx@ustc.edu.cn
计算机组成原理 RV $5.7 虚拟存储器 llxx@ustc.edu.cn
本章内容 2》 √C0D5:第5.7节 网 √实地址方式Vs虚地址方式 √虚存技术动机 √页式虚存管理原理 √页式虚存管理设计 √TLB √/MMU √层次化:Cache-TLB-Memory-Disk √缺页异常处理 u
本章内容 ✓COD5:第5.7节 ✓实地址方式 vs 虚地址方式 ✓虚存技术动机 ✓页式虚存管理原理 ✓页式虚存管理设计 ✓TLB ✓MMU ✓层次化:Cache-TLB-Memory-Disk ✓缺页异常处理
实地址访存:存储器物理地址 USTC Physical Memory Au Stack s SP MREQ Au A A Heap .. 2Kx8位 1Kx4位 IKx4位 Data Segment ROM RAM RAM . D D. D2 D D D PC Text Segment D D WR Operating System 不利于多任务(须预先划分每个程序占用的内存范围) 段式
实地址访存:存储器物理地址 不利于多任务(须预先划分每个程序占用的内存范围) 段式
虚拟存储器(Virtual memory) 1961年曼彻斯特大学提出 一内存容量:程序要求的存储器空间越来越大 ·模式一(少用):虚存=主存+辅存 ·Overlay技术:程序分段,段长<内存大小;程序员负责换入换出 多道程序:代码和数据保护与共享存储 ·模式二:主存作为辅存(虚存)的Cache CPU 现代虚拟存储系统:模式二 主存 一 多用户多进程 辅助硬件和软件 一虚存:一种将主存作为辅存缓存的技术 辅存 ·虚存驻留于辅存,局部性原理 - 由MMU和OS存储管理器共同管理:对普通程序员透明 ·虚方式访存:重定位(relocation) 技术 ·页式(定长),段式(可变长),段页式
虚拟存储器(Virtual memory) • 1961年曼彻斯特大学提出 – 内存容量:程序要求的存储器空间越来越大 • 模式一(少用):虚存= 主存 + 辅存 • Overlay技术:程序分段,段长 < 内存大小;程序员负责换入换出 – 多道程序:代码和数据保护与共享存储 • 模式二:主存作为辅存(虚存)的Cache • 现代虚拟存储系统:模式二 – 多用户多进程 – 虚存:一种将主存作为辅存缓存的技术 • 虚存驻留于辅存,局部性原理 – 由MMU和OS存储管理器共同管理:对普通程序员透明 • 虚方式访存:重定位(relocation)技术 • 页式(定长),段式(可变长),段页式
主存作为虚存的Cache:换入换 Virtual address space Physical address space 0x00000000 0x00010000 swap out 0□1☐2☐3☐ text 0x00000000 456古7己 program A 8☐9☐10☐11☐ 0x10000000 12☐13☐14☐15☐ data swap in 16☐171819 program 20☐21☐22☐23■ B 磁盘交换区(swap space) MainMemory 换入/换出时机? Ox00ffffff Demand Paging策略 stack Bring a page into memory page belonging to process only when it is needed Ox 71fff page not belonging to process 1.Less 1/O needed 2.Less memory needed 3.Faster response 4.More users
主存作为虚存的Cache:换入换出 磁盘交换区(swap space) 换入/换出时机? Demand Paging策略 Bring a page into memory only when it is needed 1. Less I/O needed 2. Less memory needed 3. Faster response 4. More users
主存作为虚存的Cache:页表 USTC 0 1 2 虚存:在辅存中 valid-invalie3 磁盘交换区 0 A frame bit swap space 分页:虚实页大小相等。 4 A B 全相联:虚页可在内存的任意 0 4 5 位置 6 虚实映射:按页表查找 2 6 页表:在内存中。大小? 3 E 4 8 写操作:写回。一致性? 5 8 F OS在创建进程时,为其建立 6 G 10 7 页表和磁盘上的VA空间。 H 11 由OS+MMU管理,对程序员 12 logical memory 和编译器透明! 13 14 15 PhysicalMemory *Valid--Invalid(PRESENT,pagefault),reference(替换),dirty
主存作为虚存的Cache:页表 虚存:在辅存中 分页:虚实页大小相等。 全相联:虚页可在内存的任意 位置 虚实映射:按页表查找 页表:在内存中。大小? 写操作:写回。一致性? OS在创建进程时,为其建立 页表和磁盘上的VA空间。 由OS+MMU管理,对程序员 和编译器透明! *Valid-Invalid(PRESENT,pagefault),reference(替换),dirty 磁盘交换区 swap space
虚实地址转换 内 Virtual address 3130292827 …15141312111098…3210 Virtual page number Page offset 虚页大小=内存页卡磁盘块(n扇区) Block/frame/page/sector Translation 292827 15141312111098… 3210 Physical page number Page offset Physical address 图5-26
虚实地址转换 虚页大小= 内存页= 磁盘块(n 扇区) Block/frame/page/sector 图5-26
页表:虚实映射,权限控制 VIrtual page 由OS为进程创建和维护 number RV FIGURE 5.28 Page table -存储于内存中OS地址空间 Physical page or Physlcal memory ·普通用户无法访问 Valid disk address 一页表基址寄存器PTBR PTE格式:page table entry -控制位VCD: ● ● ·Valid:装入,缺页异常 DIsk storage -未装入页:disk地址 ·Ref/used/Count ·Dirty -Access Rights:非法异常 M盘机号 柱面号 磁头号扇区号 read/write/modify/exe 。 页共享保护(限制其他进程权限) 一} 物理页地址 page frame number(PFN) ·Disk address 外页表(disk map) VPN(虚页号)is the index of PT M:装入位(mount),指示是否已从第二级辅 存(离线)中装入
页表:虚实映射,权限控制 • 由OS为进程创建和维护 – 存储于内存中OS地址空间 • 普通用户无法访问 – 页表基址寄存器PTBR • PTE格式:page table entry – 控制位VCD: • Valid:装入,缺页异常 – 未装入页:disk地址 • Ref/used/Count • Dirty – Access Rights:非法异常 • read/write/modify/exe • 页共享保护(限制其他进程权限) – 物理页地址 • page frame number (PFN) • Disk address • VPN(虚页号)is the index of PT 外页表(disk map) M:装入位(mount),指示是否已从第二级辅 存(离线)中装入 RV FIGURE 5.28
多进程 》 A大 A virtual address ·进程状态 page number offset PC+GPRs+SP+PTBR 1 0 0 0 1 1 进程切换 2 3 3 3 -更新PTBR Address Space Page Table of User-1 of User-1 2 User 1 VA1 os pages Page Table User 2 VA1 Page Table User 3 VA1 Page Table free
多进程 • 进程状态 – PC+GPRs+SP+PTBR • 进程切换 – 更新PTBR
多进程:隔离,保护 》 A大 0 1516 31 Virtual Address Page Index Offset Multiple Virtual Address Process Virtual Address Virtual Address Virtual Virtual Address 0 1516 31 Address Physical Page Offset Referenced Data Ranges Physical Address 3 Virtual Address Page Virtual Address Index Virtual Address Physical 大6055 Virtual Address Page Permissions One Virtual Physical Memory Address Range Per Process 隔离:基于页表的虚实地址映射机制(PTBR) 保护: Page Table 1)CPU运行模式:用户态,系统态; 2)页表位于OS地址空间,防止用户进程修改: 3) 页访问权限(Access rights):页共享。只能OS更改。非法访问异常
多进程:隔离,保护 隔离:基于页表的虚实地址映射机制( PTBR ) 保护: 1)CPU运行模式:用户态,系统态; 2)页表位于OS地址空间,防止用户进程修改; 3)页访问权限(Access rights):页共享。只能OS更改。非法访问异常