文章目录

  • 1. 基本地址变换机构
  • 2. 具有快表的地址变换机构
    • 局部性原理
    • 快表
    • 引入快表后,地址变换过程

1. 基本地址变换机构

定义:用于实现逻辑地址到物理地址转换的一组硬件机构

基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。

通常会在系统中设置一个页表寄存器(PTR),存放页表在内存中的起始地址F和页表长度M(就相当于一个数组),进程未执行时,F和M放在进程控制块(PCB)中,当进程被调度时,操作系统内核会把他们放到页表寄存器(PTR)中。

过程描述:
进程被调度后,操作系统从PCB中取得页表始址F和页表长度M,放入到页表寄存器PTR中。当程序想访问一个逻辑地址A的时候,根据页表大小,就可以自动算出页号P和页内偏移量W。

首先检查页号P是否合法,如果不合法,就产生一个越界中断。如果合法,就去页表中查询对应的帧号b,再根据偏移量,计算出物理地址(直接把b和W按二进制拼起来就是物理地址)。

  • 页表长度:页表内有多少表项。
  • 页表项长度:每个页表项占多大的内存空间。
  • 页面大小:一个页面占多大的存储空间,页面大小是2的整数次幂。这也确定了一个逻辑地址中,偏移量最多有多少位。
  • 页表项:页表中的一个元素,PTR。

页表在内存中的存储,与数组类似,但不完全一样 ,可能出现跨页存储的情况。

所以,最好用一个Byte把一个页表项补齐成4Byte。这样,一般情况下都不会产生碎片。
结论:理论上,页表项长度为3Byte即可表示页帧号的范围了,但是,为了方便页表的查询,尝尝会让一个页表项占更多的Byte,使得每个页面恰好可以装得下整数个页表项。

2. 具有快表的地址变换机构

局部性原理

  • 时间局部性

    执行了程序中的某条指令,那么不久后这条指令很可能再次执行。如果某个数据刚刚访问过,那么不久后,该数据很可能再次被访问。(因为程序中存在大量的循环)

  • 空间局部性

    程序访问了某个内存单元,在不久之后,该内存单元附近的存储单元也很有可能被访问。(因为很多数据在内存中都是连续存放的)

快表

在基本地址变换机构中,每次想访问一个物理地址,都需要到内存中去先查一下页表,再去访问物理地址。由于局部性的原理,这个页表项可能很快就被再次访问到,既然如此,能否利用局部性的原理减少页表查询的次数呢?

  • 快表TLB,是一种访问速度比内存快很多的高速缓冲存储器,用来存放当前访问的若干页表项,以加速地址变换的过程。与此对应,内存中的页表常被称为慢表

引入快表后,地址变换过程

每次访问逻辑地址时,先到快表中看一下有没有对应的帧号,如果有的话,就直接用,如果没有,再去慢表中查询。查询到(命中)以后,回头更新一下快表。再去访问物理地址。因为快表的访问速度比慢表的速度要快得多。所以这样一来,效率得以提高。
(页表寄存器PTR是个寄存器,速度也很快)

  • 如果快表命中的话,则访问某个逻辑地址仅需一次访存即可(原来需要两次,第一次是访问页表,页表在内存中;第二次是访问目标物理地址去读数据。)。
  • 如果快表未命中的话,仍然按照原来的方式,需要两次访存。
  • 若快表已满,则需要按照一定的算法对旧的页表项进行替换。

    要注意的是,有的系统支持快表和慢表同时查找。

操作系统学习 - 逻辑地址转物理地址相关推荐

  1. 操作系统中逻辑地址和物理地址的区别

    击上方"嵌入式应用研究院",选择"置顶/星标公众号" 干货福利,第一时间送达! 本文是关于操作系统中逻辑地址和物理地址之间的区别.计算机操作系统中的内存使用两种 ...

  2. 操作系统_逻辑地址转换为物理地址

    在存储管理中分为连续存储和非连续存储,非连续存储又分为分页存储.分段存储和段页式存储. 分页存储逻辑地址转物理地址: 例如: 已知某个分页系统,页面大小为1K(即1024字节),某一个作业有4个页面, ...

  3. 2.3.1操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则

    2.3.1操作系统-存储管理:页式存储.逻辑地址.物理地址.物理地址逻辑地址之间的地址关系.页面大小与页内地址长度的关系.缺页中断.内存淘汰规则 页式存储 逻辑地址.物理地址 如何判断物理地址和逻辑地 ...

  4. 操作系统-逻辑地址转换为物理地址Java实现

    输入一个16进制的逻辑地址 转换为物理地址 页表大小可选: 1K 2K 4K 8K 16K 页号 页块 0 5 1 2 2 10 3 11 4 8 程序逻辑: 绝对地址 = 页块×页表大小+偏移量(页 ...

  5. 《操作系统》——分页存储管理方式逻辑地址到物理地址的转换

    一.连续分配方式缺点 连续分配方式的主要缺点是会形成许多碎片,尽管我们可以通过紧凑的方法将碎片拼接成可用的大块空间,但这样须付出很大的代价. 二.离散分配方式 离散分配方式思想:将进程直接分散地装入到 ...

  6. 逻辑地址转物理地址(操作系统)

    1.前提明确(16进制): 逻辑地址=页号+页内地址 物理地址=块号+页内地址 可以较为明显的观察出:逻辑地址和物理地址的不同在于页号和块号的不同 那么什么是页号和块号呢举个例子就明白了 2.下面逻辑 ...

  7. 操作系统-----程序的逻辑地址和物理地址+程序在内存中的编译链接装入方式

    前提知识: 1.程序是先要放在内存上,才能被cpu执行的. 2.内存 内存就像酒店里的一个个小房间,每个小房间都有编号: 假设有4个学号为1,2,3,4的同学,入住酒店时分别按学号递增次序入住酒店房间 ...

  8. 基本分页存储管理方式中关于逻辑地址和物理地址的转换(操作系统)

    分析页式存储管理的地址结构是一维的,即逻辑地址(或物理地址)只用一个数值即可表示.若给定逻辑地址A,页面的大小为L,则页号p和页内地址d可按照下式求得: p=int [A/L]d=A mod L 其中 ...

  9. 操作系统学习之文件管理:

    操作系统学习之文件管理: 一.文件的逻辑结构: 1.无结构文件:文件的内部的数据就是一系列的二进制流或字符流组成,又称为流式文件(Windows操作系统中的.txt文件). 2.有结构文件:由一组相似 ...

  10. 哈工大李治军老师的操作系统学习笔记

    文章目录 1 什么是操作系统 2 操作系统启动 3 操作系统接口 命令行发生了什么? 图形按钮怎么回事? 操作系统接口(系统调用) 4 操作系统调用 不应该随意访问内核 怎么不让你访问内核 不让我访问 ...

最新文章

  1. Auty 2017——WebMonitor接口线上检测平台
  2. 使用相对路径时,./、../、../../,代表的什么?
  3. 浅谈Java中15种锁的分析比较
  4. php 定义title,HTML5中对title属性的定义与规定
  5. float取整数部分_一步一步学Python3(小学生也适用) 第六篇: 变量及整数(int)类型...
  6. Fiori Hash url的生成原理
  7. 【java】JDK安全模块JCE核心Cipher使用详解
  8. HDU(2255),KM算法,最大权匹配
  9. 润乾报表-数据源的选取不能选视图
  10. VB2015编写的九宫格拼图游戏及暴力求解解法(主要使用datagridview和listbox控件)
  11. word打出计算机图形符号,word显示所有格式标记
  12. iphone换android手机铃声,iPhone6s怎么更换手机铃声 iPhone苹果6s更换铃声教程
  13. WIN11 系统取消代理 | 设置代理服务器
  14. JAE触摸屏维修JAE人机界面维修UT3-TS5-B
  15. 蓝桥杯科学素养刷题和分析
  16. Java面试题合集(1)
  17. 读书百客:《惜牡丹花二首》鉴赏
  18. 中国动感单车行业销售模式与营销渠道预测报告2021-2026年
  19. 计算机等级证书中级是个什么级别呢
  20. python namedtuple默认值_python 使用 namedtuple

热门文章

  1. 计算机网络读书笔记(谢希仁 第六版 思维导图)
  2. Kali基于字典的无线破解
  3. 分布式理论,架构设计
  4. java 编写metro风格_纯Javascript实现Windows 8 Metro风格实现
  5. 跑跑卡丁车显示服务器断开连接,win10系统电脑玩跑跑卡丁车出现与服务器断开连接的详细技巧...
  6. Ubuntu安装N卡驱动
  7. 盘点淘宝、腾讯、百度内部使用的JavaScript库
  8. 50个查询系列-第五个查询:查询没学过“叶平”老师课的同学的学号、姓名;...
  9. 数据数值转换factorize和dummy
  10. iOS多线程之GCD