在一个分页虚存系统中,设页长2KB,某用户程序有30页。若该程序的虚页0、1、2、3、4、5、6、7已分别装入内存块4、17、18、20、25、26、30、32中,则该程序中的虚地址0AC5H和3AC5H对应的物理地址分别是多少,怎么计算
时间: 2023-11-08 11:24:58 浏览: 565
首先需要将虚拟地址转换为页号和页内偏移量。
对于虚地址0AC5H,其二进制表示为:
0000 1010 1100 0101
由于页长为2KB,即2的11次方字节,所以低11位为页内偏移量,中间的11位为页号。
页内偏移量为:
1011 0001 = B1H
页号为:
0000 0101 0110 = 056H
对于虚地址3AC5H,同理,页内偏移量为:
1011 0001 = B1H
页号为:
0011 0101 0110 = 356H
由于程序的虚页0、1、2、3、4、5、6、7已经装入了内存块4、17、18、20、25、26、30、32中,因此虚页号为056H和356H的页面也被装入了内存中。
根据虚拟地址到物理地址的映射规则,物理地址由页框号和页内偏移量组成。
由于已经装入内存中的虚页号为056H和356H,因此它们对应的页框号分别为4和30。
对于虚地址0AC5H,物理地址为:
页框号:4,页内偏移量:B1H
物理地址为:
0000 0100 1011 0001 = 04B1H
对于虚地址3AC5H,物理地址为:
页框号:30,页内偏移量:B1H
物理地址为:
0001 1110 1011 0001 = 1EB1H
相关问题
)在一个分页虚存系统中,用户编程空间32个页,页长1KB,主存为16KB。如果用户程序有10页长,若己知虚页0、1、2、3,已分配到主存8、7、4、10物理块中,请将虚地址0AC5H转换为对应的物理地址。
根据题目中的信息,我们知道用户程序有10页长,虚页0、1、2、3已分配到主存8、7、4、10物理块中。由于用户编程空间有32个页,因此剩余的页有27个。
根据虚地址0AC5H,我们可以进行如下计算:
1. 首先,将虚地址0AC5H转换为页号和页内偏移量。
页号 = 0AC5H / 1KB = 2AH
页内偏移量 = 0AC5H % 1KB = 0C5H
2. 接下来,判断该虚页是否已经分配到主存中。
虚页2AH未分配到主存中。
3. 由于虚页2AH未分配到主存中,我们需要选择一个未分配的物理块将其调入。
根据最近最少使用算法(LRU),我们选择物理块10进行置换。
4. 将虚页2AH调入物理块10,并更新页表。
更新页表中虚页2AH对应的物理块为10。
5. 计算物理地址。
物理地址 = (物理块号 * 1KB) + 页内偏移量
= (10 * 1KB) + 0C5H
= 0A05H
因此,虚地址0AC5H对应的物理地址为0A05H。
在一个分页虚存系统中,用户虚地址空间为32页,页长为1KB,主存物理空间为16KB。一直用户程序有10页长,若虚页0、1、2、3已经被分别调入到主存8、7、4、10页中,请问虚地址0AC5和1AC5对应的物理地址是多少
由于页长为1KB,即2^10,所以每个虚页可以存储2^10 = 1024B的数据。因此,32页的用户虚地址空间总大小为32*1024B = 32KB。同理,主存物理空间为16KB。
10页长的用户程序需要占用10个虚页,即从虚页0到虚页9。因为虚页0、1、2、3已经被分别调入到主存8、7、4、10页中,所以还需要将虚页4到9调入到主存的空闲页中。因为主存空间只有16KB,所以只能调入6个虚页,即从虚页4到虚页9。
因为虚地址0AC5和1AC5都在虚页1中,而虚页1已经被调入到主存的第7页中,所以它们对应的物理地址分别为:
- 虚地址0AC5 -> 物理地址7AC5
- 虚地址1AC5 -> 物理地址7BC5
阅读全文