某虚拟存储器的用户空间共有32个页面,每页1KB,内存16KB。假定某时刻系统为用 户的第0、1、2、3页分配的物理块号分别为5、10、4、7,而该用户作业的长度为6 页,试将十六进制逻辑地址0A5C、103C、1A5C转换成物理地址
时间: 2023-12-28 20:59:20 浏览: 148
由于每页的大小为1KB,即2^10B,因此一个页面可以寻址2^10=1024个字节。
首先要确定逻辑地址的页号和页内偏移量:
- 对于逻辑地址0A5C,页号为0A(10进制为10),页内偏移量为5C。
- 对于逻辑地址103C,页号为10(10进制为16),页内偏移量为3C。
- 对于逻辑地址1A5C,页号为1A(10进制为26),页内偏移量为5C。
然后,根据页号找到对应的物理块号,再将页内偏移量加上该物理块的起始地址即可得到物理地址。
- 对于页号为0A的页面,对应的物理块号为5,页内偏移量为5C,因此该逻辑地址对应的物理地址为:
物理地址 = 5 * 1024 + 0x5C = 5636(10进制),即0x1604(16进制)
- 对于页号为10的页面,对应的物理块号为10,页内偏移量为3C,因此该逻辑地址对应的物理地址为:
物理地址 = 10 * 1024 + 0x3C = 10404(10进制),即0x28EC(16进制)
- 对于页号为1A的页面,对应的物理块号为7,页内偏移量为5C,因此该逻辑地址对应的物理地址为:
物理地址 = 7 * 1024 + 0x5C = 1884(10进制),即0x075C(16进制)
相关问题
某虚拟存储器的用户空间共有 32 个页面,每页1KB,内存 16KB。假定某时刻系统为用3户的第 0、1、2、3 页分配的物理块号分别为 5、10、4、7,而该用户作业的长度为 6页,试将十六进制逻辑地址 0A5C、103C、1A5C 转换成物理地址。
由于每个页大小为1KB,则一个页面可以存储1024个字节,即10位二进制数可以表示一个页面内的地址。
在此题中,共有32个页面,则需要5位二进制数表示页号。
用户空间的逻辑地址为16位,其中高5位为页号,低10位为页内偏移地址。
现在我们来分别将逻辑地址转换成物理地址:
1. 将逻辑地址 0A5C 转换成物理地址:
- 逻辑地址的高5位为页号,即 0A,对应第 10 页。
- 逻辑地址的低10位为页内偏移地址,即 5C。由于第 10 页分配的物理块号为 7,则该页的物理地址为 7 × 1024 + 5C = 1DC5。
因此,逻辑地址 0A5C 对应的物理地址为 1DC5。
2. 将逻辑地址 103C 转换成物理地址:
- 逻辑地址的高5位为页号,即 10,对应第 16 页。
- 逻辑地址的低10位为页内偏移地址,即 3C。由于第 16 页没有分配物理块,则该页不在物理内存中,发生了缺页中断。
因此,逻辑地址 103C 对应的物理地址不存在,需要进行页面调度。
3. 将逻辑地址 1A5C 转换成物理地址:
- 逻辑地址的高5位为页号,即 1A,对应第 26 页。
- 逻辑地址的低10位为页内偏移地址,即 5C。由于第 26 页分配的物理块号为 10,则该页的物理地址为 10 × 1024 + 5C = 28FC。
因此,逻辑地址 1A5C 对应的物理地址为 28FC。
2、某虚拟存储器的用户空间共有32个页面,每页1KB,内存16KB。假定某时刻系统为用户的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业的长度为6页,试将十六进制的逻辑地址0A5C、103C、1A5C变换成物理地址。
根据题意,每个页面大小为1KB,因此32个页面共有32KB的虚拟地址空间,而内存大小为16KB,因此需要进行页面置换。
假定要访问的页面为0、1、2、3、4、5,其中页面0、1、2、3已经分配了物理块号,分别为5、10、4、7,而页面4、5需要进行页面置换。
根据题意,将虚拟地址空间分为4个区,每个区8KB,对应的物理地址空间也分为4个区,每个区4KB。具体的虚拟地址和物理地址的转换过程如下:
1. 将逻辑地址0A5C转换为虚拟地址:将地址0A5C表示为二进制数为0000101001011100,前5位为页面号,后11位为页内偏移量。因为每个页面大小为1KB,因此页内偏移量范围为0~1023,可以用十六进制表示。因此,逻辑地址0A5C所在的页面号为2,页内偏移量为5C。
2. 将虚拟地址0A5C转换为物理地址:因为页面2已经分配了物理块号4,因此将物理块号4和页内偏移量5C相加,得到物理地址为4005C。
3. 将逻辑地址103C转换为虚拟地址:将地址103C表示为二进制数为0001000000111100,前5位为页面号,后11位为页内偏移量。因为每个页面大小为1KB,因此页内偏移量范围为0~1023,可以用十六进制表示。因此,逻辑地址103C所在的页面号为4,页内偏移量为3C。
4. 将虚拟地址103C转换为物理地址:因为页面4需要进行页面置换,因此需要将页面4调入内存,替换掉当前内存中的某一页。假定当前内存中的页面为0、1、2、3,其中页面0对应物理块号5,页面1对应物理块号10,页面2对应物理块号4,页面3对应物理块号7。使用最简单的置换算法FIFO,将最先进入内存的页面页面0置换出去,将页面4调入物理块号5对应的内存位置。因此,将物理块号5和页内偏移量3C相加,得到物理地址为5003C。
5. 将逻辑地址1A5C转换为虚拟地址:将地址1A5C表示为二进制数为0001101001011100,前5位为页面号,后11位为页内偏移量。因为每个页面大小为1KB,因此页内偏移量范围为0~1023,可以用十六进制表示。因此,逻辑地址1A5C所在的页面号为6,页内偏移量为5C。
6. 将虚拟地址1A5C转换为物理地址:因为页面6需要进行页面置换,同样使用FIFO算法将页面1置换出去,将页面6调入内存,替换掉页面1。因此,将物理块号10和页内偏移量5C相加,得到物理地址为A05C。
因此,逻辑地址0A5C、103C、1A5C分别对应的物理地址为4005C、5003C、A05C。
阅读全文