? ? ? ? ? ? ??
参考答案:
[A:21K,B:30K,C:25K]最先适配算法和最佳适配无法给C分配内存,但最差适配可以完美给三个进程分配内存。
[A:18K,B:25K,C:30K]最先适配和最差适配算法无法给C分配内存,但最佳适配可以完美给三个进程分配内存。
解答:
由4096B页面大小,可知逻辑地址低12位作为页内偏移,逻辑地址总长16位,故高4位用于表示页号,2FA6H的逻辑地址,其虚拟页号为2,对应物理帧为11,因此拼接上页内偏移FA6H,得到物理地址为BFA6H.
当前时刻,要访问逻辑地址为17CAH(十六进制)的数据,请回答下列问题:
(1)该逻辑地址对应的页号是多少?(5分)
(2)若分别采用先进先出、最近最久未使用、CLOCK置换算法,该逻辑地址对应的物理地址分别是多少(用十六进制表示)?要求给出计算过程。(15分)
解答:
由题地址空间为64KB,页的大小为1K,按字节编址,可知逻辑地址和物理地址均为16位,高6位作为页号,其余10位为页内偏移地址。
(1)17CAH=0001011111001010B,该逻辑地址的页号为000101H=5,其不在内存,页内地址为970。
(2)采用先进先出,应置换出3号页,对应帧号为9=1001B,则物理地址为1001B和1111001010B拼接,得10 0111 1100 1010B=27CAH (9*1024+970=10186);
采用最近最久未使用,应置换出0号页,对应帧号为7=0111B,则物理地址为0111B和1111001010B拼接,得01 1111 1100 1010B=1FCAH(7*1024+970=8138);
采用改进型Clock算法,应置换出2号页,对应帧号为2=0010B,则物理地址为0010B和1111001010B的拼接,得00 1011 1100 1010B=0BCAH(2*1024+970=3018)。
(题目写的是Clock,若有同学用普通Clock得到和第二个一样的答案也算对)
解答:
(1)从段表中可知,0号段的存在位为0,表示相应的段没有装入内存,因此产生缺段中断;
(2) 从段表中可知,1号段的存在位为1,且地址合法。但指令对内存的访问方式为写与存取控制字段的只读不符,故产生越权中断;
(3) 从段表中可知,3号段的存在位为1,且地址合法,内存起始地址为8000,段长80,存取控制为读,访问方式也合法。形成物理地址8000+20=8020后,指令把该单元的内容载入到寄存器R1中;
(4) 从段表中可知,3号段的存在位为1,段内地址100>段长80,产生越界中断;
(5) 从段表中可知,2号段的存在位为1,且地址合法,访问权限合法。形成物理地址3000+100=3100,跳转到内存单元3100继续执行。
解答: