多选题
-
以下说法正确的是( )?
A. 受限于硬件或操作系统支持,存在存储器末尾空间访问不到的情况
B. 物理地址指的是实际地址,相对地址则是一个相对于参考(起始)地址的地址
C. 地址空间取决于计算机体系结构以及地址编码长度
D. 地址空间可以无限大
E. 程序运行时,需要将相对地址转为物理地址,从而确定所需内容的实际所在位置 -
关于重定位的说法,以下正确的是( )?
A. 重定位的目的是为了使程序运行时确定所需内容的真实地址,从而可以得到所需内容
B. 预先可确定实际地址的情况下,可采用静态重定位直接预先将相对地址全部转为实际地址
C. 重定位常用的有静态重定位和动态重定位两种方式
D. 动态重定位是在程序指令真正执行时,才对相对地址进行转换
主观题
- 已知某时刻内存状态如下所示,阴影部分表示空闲未分配的空间,左侧标记有对应交界处的物理地址,
若采用下次适应算法进行分配,那么对于作业序列P1(长度3K)、P2(长度10K)、P3(长度15K)、P4(长度10K),画出最终的分配情况。
答:
- 某计算机主存按字节编址,逻辑地址和物理地址都是32 位,页表项大小为4字节。请回答下列问题。
(1)若使用一级页表的分页存储管理方式,逻辑地址结构为:
则页的大小是多少字节?页表最大占用多少字节?
(2)若使用二级页表的分页存储管理方式,逻辑地址结构为:
设逻辑地址为LA,请分别给出其对应的页目录号和页表索引的表达式。
(3)采用(1)中的分页存储管理方式,一个代码段起始逻辑地址为0000 8000H,其长度为8 KB,被装载到从物理地址0090 0000H 开始的连续主存空间中。页表从主存0020 0000H 开始的物理地址处连续存放,如下图所示(地址大小自下向上递增)。请计算出该代码段对应的两个页表项的物理地址、这两个页表项中的页框号以及代码页面2 的起始物理地址。
答:【本题为按字节编址】
(1) 因为页内偏移量是12位,所以页大小为212=4 KB,(2分)
页表项数为232/4K=220,且由于页表项大小为4字节,所以该一级页表最大为220×4 B=4 MB。
(2) 页目录号可表示为:(((unsigned int)(LA))>>22)&0x3FF。(把页表索引和页内偏移量都挤出去)
【((unsigned int)(LA))>>22的意思是把LA中的数据作为无符号数来处理,对这个数进行按位右移操作,右移22个位。将补位的22&(与)0,但保留页目录号的10位(11,1111,1111 = 3FF),即把结果与0x3FF做按位与(&)操作。】
页表索引可表示为:(((unsigned int)(LA))>>12)&0x3FF。(把页内偏移量挤出去)
(3) 代码页面1的逻辑地址为0000 8000H,表明其位于第8个页处,对应页表中的第8个页表项,所以第8个页表项的物理地址=页表起始地址+(8×页表项的字节数),即0020 0000H+(8×4)=0020 0020H。
【因为(3)采用的是(1)中的分页存储管理方式,所以页框号就为页号,有20位,转换成16进制时则有5位,则截取物理地址前五位即为页框号;而页内偏移量有12位,转换成16进制则有3位;由题可知页面大小为 4 KB=212,转换为16进制则为 0001 0000 0000 0000 = 1000H,因此 0090 0000H + 0000 1000H = 0090 1000H; 】
由此可得如下图所示的答案。