程序的地址空间:虚地址空间 USTC Virtual address space Physical address space 0x00000000 swap out 0☐1☐ 2☐3☐ 0x00010000 4白5白6白7白 text 0x00000000 program A 8☐9☐10☐11☐ 0x10000000 12☐13☐14☐15☐ data swap in 16☐17日1819日 program 20☐21☐22☐23■ B 虚存:磁盘交换区(swap space) MainMemory 换入/换出时机? Oxooffffff Demand Paging策略 stack Bring a page into memory only page belonging to process when it is needed 0x游 page not belonging to process 1.Less I/O needed 2.Less memory needed 3.Faster response 4.More users
程序的地址空间:虚地址空间 虚存:磁盘交换区(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:PWR USTC 0 1 磁盘交换区 虚存:在辅存中 2 swap space valid-invalie3 A frame bit 分页:虚实页大小相等。 4 A B 全相联:虚页可在内存任意位置 0 4 5 虚实映射:按页表查找 1 6 C 页表:在内存中。大小? D 2 6 7 写操作:写回 3 E 8 4 When?一致性? D F 5 8 9 替换 G 6 10 7 11 OS在创建进程时,为每个进程建 H 12 立其页表和磁盘上的VA空间。 logical memory 13 由OS+MMU管理,对程序员和编译 器透明! 14 15 PhysicalMemory *Valid--Invalid(PRESENT,pagefault),reference(替换),dirty
主存作为虚存的Cache:PWR 虚存:在辅存中 分页:虚实页大小相等。 全相联:虚页可在内存任意位置 虚实映射:按页表查找 页表:在内存中。大小? 写操作:写回 When?一致性? 替换 OS在创建进程时,为每个进程建 立其页表和磁盘上的VA空间。 由OS+MMU管理,对程序员和编译 器透明! *Valid-Invalid(PRESENT,pagefault),reference(替换),dirty 磁盘交换区 swap space
虚实地址转换:虚实映射,页表 STC Virtual address 3130292827 15141312111098…3210 Virtual page number Page offset ·VPN(虚页号)is the index of PT 虚页大小=内存页=磁盘块(n扇段》 Frame Valid Count Dirty Block/frame/page/sector 0 0 0 0 0 0 0 Translation 0 00 0 0 0 0 292827 15141312111098·3210 Physical page number Page offset Physical address COD图5-26
虚实地址转换:虚实映射,页表 虚页大小= 内存页= 磁盘块(n 扇段) Block/frame/page/sector COD图5-26 • VPN(虚页号)is the index of PT
页表:虚实映射,权限控制 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:$5.7.2 ·Dirty -Access Rights:非法异常$5.7.8 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: $5.7.2 • Dirty – Access Rights:非法异常$5.7.8 • read/write/modify/exe • 页共享保护(限制其他进程权限) – 物理页号(地址) • page frame number (PFN) • Disk address • VPN(虚页号)is the index of PT 外页表(disk map) M:装入位(mount),指示是否已从第二级辅 存(离线)中装入 RV FIGURE 5.28
Frame Valid Count Dirty 1 0 0 0 ● 每页size=4K。 (a)为页表 0 虚空间16页(64k) 3 0 0 0 (b)为对应的物理内存 系统物理内存4页(16K) A 5 0 0 0 0 页表 6 0 0 0 每项对应逻辑 地班罗間的每贸 7 0 0 0 Frame:域:物理页框号 8 0 0 A 0 0 0 0 装入的虚存页号 B 0 0 0 0 物理页框 3FFFH 0 0 0 3000H Page 4 0 0 本例,虚存的第0页: D •2 2FFFH 逻辑地址0000H~0FFFH 0 0 0 0 0 0 2000H Unused 雍谫森的翦群中, 物理地 1FFFH E 0 0 0 0 0 0 1 000H Page 0 0 0 OFFFH 0000H Page F 例:虚拟地址=0xxxH (a) (b) 个个 页内偏移 如果访问虚存page“A”? 执行一条访存指令需访问几次存储器? 虚页号
(a)为页表 (b)为对应的物理内存 ⚫ 每页size=4K。 ⚫ 虚空间16页(64k) ⚫ 系统物理内存4页(16K) ⚫ 页表 ⚫ 16个entry,每项对应逻辑 地址空间的一个页 ⚫ Frame域:物理页框号 虚页号 页内偏移 例:虚拟地址=0xxxH 装入的虚存页号 物理页框 •如果访问虚存page “A”? •执行一条访存指令需访问几次存储器? •0 •1 •2 •3 本例,虚存的第0页: 逻辑地址0000H~0FFFH 存储在内存的1号页框中,物理地 址为1000H~1FFFH