zoukankan      html  css  js  c++  java
  • 操作系统 页式存储 页与块之间的关系详解

    操作系统 页式存储 页与块之间的关系详解

    操作系统
    页式存储
    逻辑地址
    物理地址
    块号
    页号

    以下这些概念在刚开始学的时候简直要逼疯我了,因为不同书籍不同作者就会有不同的叫法,比如说页内地址有叫页偏移的,块有叫页框的。。。
    反正各种不爽。如果你也有这种状况,那不好意思,我先得说明一下,你还是适应一下我的叫法。因为这篇文章我说了算~~~~(有没有很霸气)

    页式存储

    1. 注意页和块的对象的不同
      程序进行分页存储
      内存进行分块存储

    文章最后会给出我总结的页和块的关系

    1. 逻辑地址和物理地址

    a) 逻辑地址:由两部分组成,即页号 + 页内地址

    设逻辑地址由总长度为m的二进制数表示,页内地址为n位,则页号为m-n位。

    注意:

    • 块内地址=页内地址=2n,同理最大的程序可允许有 > > 2m-n 个页面。

    • 计算公式:

      • 页号 = 逻辑地址/页长(商)

      • 页内地址 = 逻辑地址%页长(余数)


    b) 物理地址

    物理地址 = 块号 * 块长 + 块内地址 +(用户基址)
    物理地址 = 块号 * 页长 + 页内地址 +(用户基址)

    为了弄清楚上面一大堆名词之间的关系,看看下面的例题。
    根据所给条件求出物理地址(答案虽然已经给出,但是你可以装作没看见啊)
    ps:用户基址是1000


    例题

    分析:注意每个页的页内地址是一样的,所以由公式
    • 页号 = 逻辑地址/页长(商)

    • 页内地址 = 逻辑地址%页长(余数)

    我们可以知道逻辑地址 = 页号 * 页长 + 页内地址,所以页长 = (逻辑地址 - 页内地址)/页号.

    解:

    块长=页长=(4865-769)/2=2048,又 块内地址=页内地址,故
    物理地址=块号*块长+块内地址+用户基址
          =6*2048+769+1000=14057
    



    页块术语对应

    程序内存
    逻辑地址物理地址
    页号块号
    页内地址块内地址
    页长(页面大小)块长(块大小)

    ps:页内地址又可以成为页偏移,但是页内地址不是页长!!!!页长又可以成为页面大小。

  • 相关阅读:
    gridView 表头自适应高度
    Devexpress GridView 数据格式化显示
    CSharpCodeProvider 生成代码
    浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别
    关于appdomain, assembly, 进程,线程的概念体会
    所有子线程全部结束的判断
    主线程如何捕获子线程异常
    时间戳与展示时间互相转化
    跨域 jsonp 和 CORS 资料
    之前的前端同事聊天关于百姓网
  • 原文地址:https://www.cnblogs.com/marsggbo/p/6622921.html
Copyright © 2011-2022 走看看