问题 问答题

某程序在逻辑地址100处有一条指令LOAD 1,500,而500单元内存放数据51888。假设程序被分配到内存起始地址为5000的单元时,采用下述各种方式下的该指令与其物理地址及相应的地址变换过程。
(1)静态重定位。
(2)采用重定位寄存器实现动态重定位。
(3)采用页表方式,页面大小为100B,其各页存放到50,51,52,…,59物理块上。

答案

参考答案:(1)采用静态重定位时,所有逻辑到物理地址的转换在程序装入时完成。由于程序被分配到内存起始地址为5000的单元,该条指令所处单元将为5000+100=5100。而数据所处的500逻辑单元所处的物理地址为5000+500=5500,即指令将变为:LOAD 15500。
(2)采用重定位寄存器实现动态重定位时,地址转换在需要访问时动态完成。由于程序被分配到内存起始地址为5000的单元,重定位寄存器的取值为5000。该条指令所处的地址仍然为100。在访问地址100时,系统将在其上加上5000,获得物理地址5100。由于是动态重定位,指令在装入内存时维持不变。在实际执行该指令时,将在地址500处寻找数据。此时系统将对该地址进行动态翻译,加上5000,获得物理地址为5000+500=5500。
(3)采用页式方式时,由于页面大小为100B,逻辑地址100将处于第1个页面(从0号页面开始计数),地址500处于第5个页面。其页内偏差(页内地址)均为0。根据题意,这两个页面分别处于物理块51和55上。因此,其物理地址分别为51×100+0=5100和55×100+0=5500。

单项选择题
问答题 简答题