内容系听课复习所做笔记,图例多来自课程截图

单级页表存在的问题

某计算机系统按字节寻址,支持32位的逻辑地址,采用分页存储管理、页面大小为4KB,页表项长度为4B。

可推知:

  • 页面大小 4 K B = 2 12 B 4KB=2^{12}B 4KB=212B,故页内地址12位
  • 页号有32-12=20位,即最多 2 20 2^{20} 220页,对应 2 20 2^{20} 220个页表项
  • 2 20 2^{20} 220个页表项需要 2 22 2^{22} 222B存储(页表项长度4B)
  • 2 20 2^{20} 220个页表项需要 2 10 2^{10} 210个页框( 2 22 / 2 12 2^{22}/2^{12} 222/212)

需要连续的 2 10 2^{10} 210大小的空间来存储页表,这样的“连续分配”与离散分配的思想相悖

根据局部性原理可知,很多时候,进程在一段时间内只需要访问某几个页面就可以正常运行了。因此没有必要让整个页表都常驻内存。

解决方案

可将长长的页表进行分组,使每个内存块刚好可以放入一个分组(比如上面的例子中,页面大小4KB,每个页表项4B,每个页面可存放1K个页表项,因此每1K个连续的页表项为一组,每组刚好占一个内存块,再讲各组离散地放到各个内存块中)

然后再以离散分配的每组页表为单位,建立一张页表,称为页目录表,或称外层页表,或称顶层页表

查询过程

  1. 按照地址结构将逻辑地址拆分成三部分
  2. 从PCB中读出页目录表始址,再根据一级页号查页目录表,找到下一级页表在内存中的存放位置
  3. 根据二级页号查表,找到最终想访问的内存块号4结合页内偏移量得到物理地址
  4. 结合页内偏移量得到物理地址

页面未必非得全在内存中(用到再调入也不是不行),给页表加一项,记录是否在页面中就可以了。若想访问的页面不在内存中,则产生缺页中断(内中断),然后将目标页面从外存调入内存

题目

各级页表大小均不得超过一个页面

没有快表的情况下,n级页表访问内存次数为n+1次

[操作系统笔记]两级页表相关推荐

  1. 操作系统 :两级页表

    单级页表存在的问题 某计算机系统按字节寻址,支持32位的逻辑地址,采用分页存储管理,页面大小为4KB,页表项长度为4B. 4KB = B,因此页内地址要用12位标识,剩余12位表示页号. 因此,该系统 ...

  2. 操作系统-内存管理(快表的地址变换机构,两级页表,虚拟内存的基本概念,基本页式管理下的页表和页面置换算法)

    文章目录 1.快表地址变换机构 2. 两级页表 3. 虚拟内存的基本概念 基本分页存储管理 1.快表地址变换机构 快表,又称联想寄存器(TLB,translation lookaside buffer ...

  3. 【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)

    文章目录 一. 分页存储概念 二. 地址转换 1)为什么页面大小为2的次幂? 三. 页表 1)页表项长度.页号"隐含" 四. 局部性原理与快表 五. 二级页表 1)单级页表存在的问 ...

  4. (王道408考研操作系统)第三章内存管理-第一节6-4:非连续分配管理方式之基本分页存储管理之两级页表

    文章目录 一:单级页表存在的问题 二:两级页表原理 (1)基本原理 (2)逻辑地址结构 三:多级页表 一:单级页表存在的问题 问题一:页表必须连续存放,当页表很大时,就需要占用很多个连续的页框 在32 ...

  5. 操作系统(day11)--快表,两级页表

    具有快表的地址变换机构 时间局限性:会有大量连续的指令需要访问同一个内存块的数据的情况(程序中的循环) 空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很有可能被访问.(因为很多 ...

  6. 两级页表如何实现地址转换

    (1) 按照地址结构将逻辑地址拆成三个部分. (2) 从PCB中读取页目录起始地址,再根据一级页号查页目录表,找到下一级页表在内存中存放位置. (3) 根据二级页号查表,找到最终想要访问的内存块号. ...

  7. 操作系统笔记(II:从进程同步到文件管理)

    操作系统笔记(II:从进程同步到文件管理) 4.5.2 读者-写者问题 [问题描述] 若干读者.写者,共享文件/数据: 读者:可以同时读数据,不可修改数据. 写者:修改数据,不能同时修改同一份数据,进 ...

  8. arm的2级页表在Linux内核创建过程解析

    系统DDR的基地址为0x0,内存为1GB,所以TTB的基地址为0x4000.下面要创建虚拟地址0xfe700000到物理地址0xffff0000之间的映射,映射大小为64KB,即16页.由于物理地址不 ...

  9. 【笔记:模拟CMOS集成电路】两级运算放大器设计与仿真(带版图)

    [笔记:模拟CMOS集成电路]两级运算放大器设计与仿真(带版图) 前言 1.电路分析 1.1电路结构 电路描述: 1.2小信号分析 1.3公式 2指标设计 2.1预期设计指标参数 2.2参数分析 (1 ...

最新文章

  1. 常用前端框架Angular和React的一些认识
  2. MAC显示隐藏文件和文件夹
  3. spring aop 必须的包 及里面用到的东西_Spring 原理初探——IoC、AOP
  4. 生信分析和美图资源推荐!!!
  5. C语言-查找顺序表中的最大值
  6. Spring的@bean注解
  7. ubuntu16.04 安装完显卡驱动后分辨率固定640x480 解决
  8. MYSQL 查看表定义的 4 种方法
  9. ACER微型计算机支持MSATA,宏基S7超级本惊现双主控mSATA SSD 速度近900MB/s
  10. 【算法设计与分析】专栏目录
  11. Windows脚本 同网段ip检测与持续ping包测试
  12. 欠债还钱,天经地义(一)
  13. 判断一个数为奇偶数的三种方法
  14. 干货!如何在SCI论文中转述和总结别人的论文和成果
  15. 拼多多Q3GMV同比增长386%,超同行平均增速15倍
  16. python版openvino使用
  17. 【惊】Spring源码的秘密|一起看看Spring启动时究竟做了什么惊天动地的事情?
  18. PostgreSQL中的查询:1.查询执行阶段
  19. 图片轮播(现在手机app上常见的)
  20. 读懂select函数

热门文章

  1. vue中请求方式总结
  2. CentOS更换系统软件源(yum软件仓库)
  3. c语言莫尔斯编码互译,翻译莫尔斯电码
  4. Windows VS Linux 那个好?
  5. 如何用万用表测量device管脚和电源的开短路
  6. 【Tools】GitBook简明教程
  7. 社会万象]从全球夜间卫星地图看世界和国内各地发达程度(转载)
  8. python 矩阵运算 for循环_如何用Python科学计算中的矩阵替代循环?
  9. Aspose.Words Move方法使用详解
  10. DC-6靶机通关详解