用户在段页式存储管理方式下运行一个进程,段表寄存器和段表如图3—3所示(页面大小为1KB)。 该用户在调试过程中,设计了3个地址,试图获取数据,地址如表3-1所示:这3次获取数据的操作,分别访问内存次数为( )。

admin2019-07-18  38

问题 用户在段页式存储管理方式下运行一个进程,段表寄存器和段表如图3—3所示(页面大小为1KB)。
该用户在调试过程中,设计了3个地址,试图获取数据,地址如表3-1所示:这3次获取数据的操作,分别访问内存次数为(    )。

选项 A、3、3、3
B、1、0、3
C、2、1、3
D、1、2、2

答案B

解析 在段页式存储系统中,为了获取一条指令或数据,必须3次访问内存,第一次访问内存中的段表,从中取得页表地址;第二次访问内存中的页表,从中取得该页所在的物理块号,并将该块号与页内地址一起形成指令或数据的物理地址;第三次访问根据第二次访问所得的地址,真正取出指令或数据(但这是在访问地址正确的情况下)。    为了防止越界,在段页式存储系统中,配置了一个段表寄存器,其中存放段表始址和段表长度。在进行地址变换时,首先利用段号,将它与段长进行比较。若段号超出段表长度,表示越界了。
    同样段表中的页表大小这项也是为了预防地址越界的情况。
    一般情况下,段号页号都是从0开始编址,这点从题目所给的图中也可得知。
    该用户访问的3个地址中,地址一,段号检查通过,页号越界,3不在页号0~2范围内,所以只访问内存1次。
    地址二,段号检查未通过,8不在段号0~7范围内,越界,所以访问内存0次。
    地址三,段号检查通过,且页号也无越界,成功访问到数据,所以访问内存3次。
知识点回顾:    首先必须知道,系统为每个进程建立一张段表,而每个分段有一张页表。    段表项中至少包括段号、页表长度和页表起始地址,页表项中至少包括页号和块号。
    段页式系统中从逻辑地址到物理地址的地址变换过程如下:
    (1)从逻辑地址中取出前几位得到段号S,中间几位得到页号P,后几位得到页内偏移量W。
    (2)比较段号S和段表长度M,若S≥M,则产生越界中断,否则转至下一步。
    (3)段表中对应段表项地址=段表起始地址F+段号S×段表项大小,取出该段表项内容的前几位得到对应页表的页表长度C,后几位得到对应的页表的起始地址d,若页号P≥C,则产生越界中断,否则转至下一步。
    (4)对应页表项地址=d+P×页表项大小,从该页表项内容得到物理块号b。
    (5)计算E=b×页表大小L+W。
    (6)用得到的物理地址E去访问内存。
转载请注明原文地址:https://kaotiyun.com/show/nCCi777K
0

最新回复(0)