)在一个分页虚存系统中,用户编程空间32个页,页长1KB,主存为16KB。如果用户程序有10页长,若己知虚页0、1、2、3,已分配到主存8、7、4、10物理块中,请将虚地址0AC5H转换为对应的物理地址。
时间: 2023-08-31 14:04:29 浏览: 384
根据题目中的信息,我们知道用户程序有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页中,请问虚地址0AC5H和1AC5H对应的物理地址是多少?
由题可得,用户虚地址空间为32页,页长为1KB,因此每个页内偏移量需要10位二进制数来表示。主存物理空间为16KB,即有16个物理页,每页长为1KB。因此,每个物理页也需要10位二进制数来表示。
已知用户程序长度为10页长,即占用了虚拟地址空间中的0~9页。而虚页0、1、2、3已经被分别调入主存8、7、4、10页中。因此,虚页4~9还没有被调入主存。
对于虚地址0AC5H,它的二进制表示为:0000 1010 1100 0101。其中高5位表示页号,即页号为0AH。低10位表示页内偏移量,即偏移量为0C5H。由于虚页0已经被调入主存8页中,因此虚页0对应的物理页号为8。虚页0的偏移量为0C5H,转换成物理地址的偏移量仍然是0C5H。因此,虚地址0AC5H对应的物理地址为:
物理地址 = 8 * 1KB + 0C5H = 2125H
对于虚地址1AC5H,它的二进制表示为:0001 1010 1100 0101。其中高5位表示页号,即页号为1AH。低10位表示页内偏移量,即偏移量为0C5H。由于虚页1已经被调入主存7页中,因此虚页1对应的物理页号为7。虚页1的偏移量为0C5H,转换成物理地址的偏移量仍然是0C5H。因此,虚地址1AC5H对应的物理地址为:
物理地址 = 7 * 1KB + 0C5H = 1797H
因此,虚地址0AC5H对应的物理地址为2125H,虚地址1AC5H对应的物理地址为1797H。
在一个分页虚存系统中,用户虚地址空间为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
阅读全文