某虚拟存储器的用户空间有32个页面,每页1KB,内存大小为16KB,假设某时刻系统为用户的第0,1,2,3页分配的物理块号是5,10,4,7,而该用户进程的长度是6页。试将以下十六进制的虚拟地址转换为物理地址。 (1)0X0A36 (2)0X102E (3)0X257B (4)0X8A4D
时间: 2024-04-02 07:35:03 浏览: 25
在本题中,每个页面的大小为1KB,即2^10字节,因此一个页面可以存储2^10/2 = 512个16位的十六进制数。用户空间共有32个页面,因此用户进程的最大长度为32页,即可以存储32*512=16384个16位的十六进制数。
根据题目信息,用户的第0,1,2,3页分别分配了物理块号5,10,4,7,因此它们的物理地址分别为5、10、4、7,其他页面则未被分配物理块号,因此它们还在硬盘上。
对于每个虚拟地址,需要先确定其所在的页面号,然后再将其转换为物理地址。假设虚拟地址VA的页面号为p,偏移量为d,则其物理地址PA为PA = 物理块号*页面大小 + d。
1. 对于虚拟地址0X0A36,其页面号为A3,偏移量为6,因此对应的物理地址为5*2^10 + 6 = 5126。
2. 对于虚拟地址0X102E,其页面号为10,偏移量为2E,因此对应的物理地址为10*2^10 + 2E = 1038E。
3. 对于虚拟地址0X257B,其页面号为25,偏移量为7B,因此对应的物理地址为4*2^10 + 7B = 407B。
4. 对于虚拟地址0X8A4D,其页面号为8A,偏移量为4D,由于页面号为8A的页面未被分配物理块号,因此该虚拟地址对应的数据在硬盘上,无法直接访问。
注意,本题中对于每个页面,只有一个物理块号与之对应,因此在计算物理地址时,可以直接使用物理块号,不需要再加上页面内偏移量。
相关问题
2.某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。假定某时刻系统为用户的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业的长度为6页,试将 (1)八进制的虚拟地址100、110转换成物理地址
根据题目所述,该用户空间共有32个页面,每页1KB,因此虚拟地址空间的大小为32KB。同时,主存大小为16KB,因此最多可以同时存储16个页面。
根据题目所述,用户的第0、1、2、3页分别分配了物理块号为5、10、4、7。因此,这些页面的物理地址可以计算出来:
- 用户第0页的物理地址为5 * 1KB = 5KB
- 用户第1页的物理地址为10 * 1KB = 10KB
- 用户第2页的物理地址为4 * 1KB = 4KB
- 用户第3页的物理地址为7 * 1KB = 7KB
根据题目所述,该用户作业的长度为6页,因此需要分配6个物理块来存储该作业。假设操作系统采用的是页替换算法,当需要分配新的物理块时,需要将一个物理块替换出来。这里假设采用的是最近最少使用(LRU)算法。
现在来回答问题:
1. 八进制的虚拟地址100对应的十进制地址为64,因此该地址所在的页面是第0页。由于该页面已经被分配了物理块,因此该地址的物理地址为(5 + 64 mod 16)KB = 9KB。
2. 八进制的虚拟地址110对应的十进制地址为72,因此该地址所在的页面是第1页。由于该页面已经被分配了物理块,因此该地址的物理地址为(10 + 72 mod 16)KB = 10KB。
某虚拟存储器的用户空间共有32个页面,每页1KB,内存16KB。假定某时刻系统为用户的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业的长度为6页,试将十六进制的逻辑地址0A5C、103C、1A5C变换成物理地址。
假设每个物理块的大小也为1KB,则:
- 第0页的物理地址为 $5 * 1KB = 0x1400$
- 第1页的物理地址为 $10 * 1KB = 0x2800$
- 第2页的物理地址为 $4 * 1KB = 0x1000$
- 第3页的物理地址为 $7 * 1KB = 0x1C00$
对于逻辑地址0A5C,页号为0x2,页内偏移量为0x5C,因此对应物理地址为 $0x2800 + 0x5C = 0x285C$。
对于逻辑地址103C,页号为0x4,页内偏移量为0x3C,因此对应物理地址为 $0x1000 + 0x3C = 0x103C$。
对于逻辑地址1A5C,页号为0x5,页内偏移量为0x5C,但是该页不在当前分配的物理块中,因此会发生缺页中断,需要从外存中载入该页的内容,并分配一个物理块。