• 计算机操作系统原理分析


    i_addr[0]1483
    i_addr[1]24
    i_addr[2]225
    i_addr[3]542
    i_addr[4]2212
    i_addr[5]98
    i_addr[6]3321
    i_addr[7]23
    i_addr[8]123
    i_addr[9]67---[n=10]
    i_addr[10]326*
    i_addr[11]756*
    i_addr[12]226*
    第326块
    ……
    [11]109
    [12]954
    [13]952
    ……
    第756块
    [0]53**
    [1]922**
    ……
    第53块
    ……
    [211]863
    [212]335
    ……
    第922块
    ……
    [211]2312
    [212]3276
    ……
    假设某文件的i-node结构及各级索引表如上所示,如果物理块长度为X=1KB,块号Y=4B
    1.该文件的读写指针指示地址为6820,给出该 地址所在的物理块号和块内地址
    2.该文件的读写指针指示地址为22675,给出 该地址所在的物理块号和块内地址
    3.该文件的读写指针指示地址为751155,给 出该地址所在的物理块号和块内地址
    解:
    a=log2(XKB/8bit)=log2(2^10)=10
    0~9 有n=10
    b=X KB/Y B=X*2^10/Y=2^8
    (1)x1=6820
    index=x1>>a=x1/(2^a)取整=6<n
    w=x1&11……(a个1)=x1%(2^a)取余数=676
    物理块号3321(PS:i_addr[6]3321)
    块内地址676(PS:w)
    (2)x1=22675
    index=x1>>a=x1/(2^a)取整=22
    w=x1&11……(a个1)=x1%(2^a)取余数=147<b
    index=index-n=12 
    物理块号954(PS:i_addr[10]326*[12]954 )
    块内地址147(PS:w)
    (3)x1=751155
    index=x1>>a=x1/(2^a)取整=733
    w=x1&11……(a个1)=x1%(2^a)取余数=563
    index=index-n=723
    index=index-b=467
    index÷b=index2(商)……w2(余数) 
    index2=1
    w2=211
    物理块号2321(PS:i_addr[11]756*[1]922**[211]2312)
    块内地址563(PS:w)
     
     
     
    7 6 5 4 3 2 1 0
    0_1_1_0_1_1_1_1
    15 14 13 12 11 10 9 8
    1__1___0__0__1__1_1_1
    23 22 21 20 19 18 17 16
    0__1__0__1__0__1___1__0
    31 30 29 28 27 26 25 24
    0__0__0__0__1__0___1__0
    某静态页式存储管理中,已知内存共有X=32块 ,块长度为Y=4K=2^12=4096,(假设单位一样),当前位
    示图如上,进程P的虚拟地址空间大小为ADD=35655。
    1.当前有几个空闲块[PS:数一下位示图上有0] 14个
    2.进程P共有几页[PS:ADD除以Y,商整数只入不舍 相当于 
    (ADD+Y-1)/Y取整数部分]
    (35655+4K-1)/4K=9页

    3.根据位示图,写出进程P的页表
    [0]4
    [1]7
    [2]12
    [3]13
    [4]16
    [5]19
    [6]21
    [7]23
    [8]24 
    4.给定进程P的虚拟地址:9198和 ox9D8F,根据(3)分别计算对应的物理地址
    十进制的9198:
    页号p=9198/4K=2;页内地址w=9198/4K=1006
    块号b=12(PS:[p]12)
    物理地址=b*4K+1006=50158
    十六进制ox9D8F:
    页号p=1001 1101 1000 1111>>12=1001
    p=9不小于9,越界

     

  • 相关阅读:
    docker私有仓库harbor的安装及使用
    docker 搭建 zipkin
    docker安装redis并以配置文件方式启动
    docker 安装 mysql5.7.25
    什么是反射?可以解决什么问题?
    什么是死锁?如何防止死锁?
    说说TCP和UDP的区别
    什么是XSS攻击?
    怎么更改Visual Studio项目名字
    windows上使用getopt和getopt_long
  • 原文地址:https://www.cnblogs.com/xujiayu/p/4875910.html
Copyright © 2020-2023  润新知