Memory 将虚拟地址转换为物理地址
假设我们有28位虚拟地址空间和32位物理地址空间。框架大小为1kb。我想将虚拟地址Memory 将虚拟地址转换为物理地址,memory,memory-management,operating-system,Memory,Memory Management,Operating System,假设我们有28位虚拟地址空间和32位物理地址空间。框架大小为1kb。我想将虚拟地址0x000039A转换为物理地址 [我的尝试]1kb=1024byte=2^10所以虚拟页码是0x0000,偏移量是0x39A。在此页表中,0x00具有0x0100物理页码。所以我认为物理地址号是0x010039A,但答案是0x0004039A。有人能解释吗 让我们一步一步地去做,即使答案本可以帮助你自己去做 __________ | STEP 1 | ¯¯¯¯¯¯¯¯¯¯ 0x000039A is in virt
0x000039A
转换为物理地址
[我的尝试]
1kb=1024byte=2^10
所以虚拟页码是0x0000
,偏移量是0x39A
。在此页表中,0x00
具有0x0100
物理页码。所以我认为物理地址号是0x010039A
,但答案是0x0004039A
。有人能解释吗 让我们一步一步地去做,即使答案本可以帮助你自己去做
__________
| STEP 1 |
¯¯¯¯¯¯¯¯¯¯
0x000039A is in virtual, lets convert it to binary representation
0b 0000 0000 0000 0000 0011 1001 1010
0x 0 0 0 0 3 9 A
__________
| STEP 2 |
¯¯¯¯¯¯¯¯¯¯
Calculate the number of bits needed to reference the whole 1KB
1K = 2^10
==> 10 bits are needed. Just do log2(page-size).
__________
| STEP 3 |
¯¯¯¯¯¯¯¯¯¯
Take away the first 10 bits of the binary presentation
0b 0000 0000 0000 0000 0011 1001 1010
offset = 0b 11 1001 1010
= 0x 3 9 A
__________
| STEP 4 |
¯¯¯¯¯¯¯¯¯¯
Get the virtual page out of what ever bits left
0b (00)(00 00)(00 00)(00 00)(00 00)
= 0x00000
不工作,请帮助我是不可接受的。请阅读之前,试图问更多的问题。谢谢。我不理解页面大小的影响,但现在我明白了,这一切都是关于正确地重新组织位。
__________
| STEP 5 |
¯¯¯¯¯¯¯¯¯¯
Go to the page table at the entry 0x00000, there you will find the corresponding frame number.
Suppose the page table is given:
________________
| 0x0 | 0x0100 |
| 0x1 | 0xA |
| . | |
| . | |
| | |
----------------
__________
| STEP 6 |
¯¯¯¯¯¯¯¯¯¯
Turn the frame number to binary representation and concatenate it to the offset
Frame | offset
0x0100 |
0b (00)(00 00)(01 00)(00 00)(00 | 11) (1001) (1010)
0x 004039A