zoukankan      html  css  js  c++  java
  • 操作系统习题——虚地址转换为内存地址计算

    参考链接:https://blog.csdn.net/weixin_39928544/article/details/90049798

    步骤:

    如果,虚地址(逻辑地址、程序地址)以十六进制、八进制、二进制的形式给出
    第一步,将虚地址转换成二进制的数;
    第二步,按页的大小分离出页号和位移量(低位部分是位移量,高位部分是页号);
    第三步,根据题意产生页表,将位移量直接复制到内存地址寄存器的低位部分;
    第四步,以页号查页表,得到对应页装入内存的块号,并将块号转换成二进制数填入地址寄存器的高位部分,从而形成内存地址。

    举例说明:
    1.有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、A、5块,试将虚地址0AFEH转换成内存地址。
    解:
    |页号|块号 |
    |   0  |   7   |
    |   1  |   9   |
    |   2  |   A   |
    |   3  |   5   |
    虚地址0AFEH转化为二进制数:0000 1010 1111 1110    (注意虚地址为16进制,最后那个H标志这是一个十六进制数
    已知页大小是2kb(即,有11位,2^11=2kb),所以低位部分是11位,所以,w=010 1111 1110, p=0000 1=1  (低位部分为页内地址,高位部分为页号


    根据页号与块号的排列   p=1时,块号为9,9的二进制数为1001,表首地址为0
    所以,MR=(首0)0100 1010 1111 1110(二进制)=4AFEH(16进制)(根据做题步骤,我们要把页号低位部分移动到地址寄存器中,然后1001当作高位部分,不够前面补0

    例题:

    某请求页式系统允许用户空间为32个页面(每页1KB),主存为16KB,若一个用户程序有10页长,某时刻该进程的页表如下所示:
    虚页号 物理块号 是否在TLB中
    0 8 是
    1 7 是
    2 4 否
    3 10 否
    4 5 否
    5 3 是
    6 2 是
    其他 无效
    问:(1)计算虚地址0AC5H、1AC5H对应的物理地址。
    (2)页表存放在主存中,对主存的一次存取需要1.5ns,对TLB表的查找时间忽略为0,试问这两次访问共耗费多少时间

    答案:

    (1)32个页面需要用5位来区分,页内地址需要10位。虚地址0AC5H的页号为2,页内地址为1011000101。从页表可知,其物理块号为4,因此,其物理地址为1001011000101=12C5H。虚地址1AC5H的页号为6,页内地址为1011000101。根据页表可知,该虚地址对应的物理块号为2,其物理地址为101011000101=0AC5H。
    (2)第1次访问TLB没有命中,因此需要查找页表,再访问主存一次,总计时间为3ns。第2个虚地址在TLB中,只需要一次内存访问,总时间为1.5ns。

    例题:

    在一页式存储管理系统中,页表内容见表3-4。若页的大小为4KB,则地址转换机构将逻辑地址0转换成的物理地址为(A )。

    表3-4 

    页表内容

    页号 块号

    0 2

    1 1

    3 3

    4 7

    A.8192
    B.4096
    C.2048
    D.1024

    解释:按页表内容可知,逻辑地址0对应块号2,页大小为4KB,故转换成的物理地址为2×4K=8K=8192。

    例题:

    设有8页的逻辑空间,每页有1024B,它们被映射到32块的物理存储区中。那么,逻辑地址的有效位是__13____位,物理地址至少是__15____位。

    解释:

    首先先算逻辑地知址:
    逻辑地址:8*1024=2^3*2^10=2^13(所以逻辑地址的后13位为“页内道地址”,又叫“页内偏移量”,或“页内位移”及有效位)
    再算物理地址:
    物理地址:32*1024=2^内5*2^10=2^15
    所以最后的就是逻辑有效位是13;物理有效位是15.

    哪里有错误,希望指出!!!

  • 相关阅读:
    Cognos11第三方权限认证之OpenDJ
    Sqlserver 2008 R2安装的盘符空间不够用的解决办法
    Cognos11中通过URL访问report的设置
    Cognos11中关于CJAP第三方认证的相关配置
    Cognos11中报XQE-JDB-0004查找驱动程序类错误
    项目管理半开源工具备份和恢复
    CentOS7.4 安装rabbitmq-3.7.x
    Spring Cloud Zuul的一个坑
    题五:10行杨辉三角
    题四:一对兔子生兔子,给个月份算有几只兔子
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/12710249.html
Copyright © 2011-2022 走看看