分页存储管理的地址转换和缺页中断_(存储管理)请求页式存储
时间: 2023-06-20 09:03:40 浏览: 155
在页式存储中,一个进程的逻辑地址空间被划分为固定大小的页面。每个页面都有一个唯一的页面号,页表将每个页面号映射到物理内存中的一个帧号。当进程访问一个页面时,地址转换硬件将逻辑地址中的页面号转换为物理地址中的帧号。如果页表中不存在页面号对应的帧号,就会发生缺页中断,此时操作系统会将所需页面从磁盘读入内存,并更新页表。
分页存储管理的地址转换主要包括两个步骤:
1. 从逻辑地址中提取页面号和页面内偏移量。
2. 将页面号映射到物理内存中的帧号,并加上页面内偏移量,得到物理地址。
例如,假设页面大小为4KB,进程访问的逻辑地址为0x12345678,页表项大小为4字节,页表在物理内存中从地址0x1000开始存储,页表项格式为:[有效位|帧号],其中有效位用于表示该页是否在内存中。
1. 从逻辑地址中提取页面号和页面内偏移量。
页面号 = 0x12345
页面内偏移量 = 0x678
2. 将页面号映射到物理内存中的帧号,并加上页面内偏移量,得到物理地址。
1) 计算页表项在页表中的地址:
页表项地址 = 0x1000 + 页表项大小 × 页面号 = 0x1000 + 4 × 0x12345 = 0x48D580
2) 从页表项中获取帧号:
页表项内容 = [1|0x5432]
帧号 = 0x5432
3) 计算物理地址:
物理地址 = 帧号 × 页面大小 + 页面内偏移量 = 0x5432 × 4KB + 0x678 = 0x1589F678
如果页表项中的有效位为0,说明该页面不在内存中,将触发缺页中断,操作系统将把该页面从磁盘读入内存,并更新页表项。
阅读全文