Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory management 在多级页表的情况下,逻辑地址如何划分_Memory Management_Operating System_Paging - Fatal编程技术网

Memory management 在多级页表的情况下,逻辑地址如何划分

Memory management 在多级页表的情况下,逻辑地址如何划分,memory-management,operating-system,paging,Memory Management,Operating System,Paging,任何帮助都是有价值的。 谢谢 Tazim对于4KB页面,最后12位是页面的偏移量。这就为32位地址留下了20位。这20位用作页表的索引,而不是偏移量。通过在两个级别之间平均拆分,两个表的大小相同。第一个表指定第二个表的地址,第二个表指定页面的物理地址。每个索引的10位意味着每个表中有1024个条目。这非常方便,因为这意味着使用32位条目时,每个表正好是一页 示例:以地址0x00FF1234为例。此地址的二进制表示形式为00000000 11111111 000100100100110001101

任何帮助都是有价值的。 谢谢
Tazim

对于4KB页面,最后12位是页面的偏移量。这就为32位地址留下了20位。这20位用作页表的索引,而不是偏移量。通过在两个级别之间平均拆分,两个表的大小相同。第一个表指定第二个表的地址,第二个表指定页面的物理地址。每个索引的10位意味着每个表中有1024个条目。这非常方便,因为这意味着使用32位条目时,每个表正好是一页


示例:以地址0x00FF1234为例。此地址的二进制表示形式为00000000 11111111 0001001001001100011010。通过将其拆分,我们得到0000000111110001 00100010100或0x3 0x3F1 0x234。因此,第一级表中的项目3给出了第二级表的地址,第二级表中的项目0x3F1给出了所用页面的地址,该地址为该页面的0x234字节。

对于4KB页面,最后12位是页面的偏移量。这就为32位地址留下了20位。这20位用作页表的索引,而不是偏移量。通过在两个级别之间平均拆分,两个表的大小相同。第一个表指定第二个表的地址,第二个表指定页面的物理地址。每个索引的10位意味着每个表中有1024个条目。这非常方便,因为这意味着使用32位条目时,每个表正好是一页

示例:以地址0x00FF1234为例。此地址的二进制表示形式为00000000 11111111 0001001001001100011010。通过将其拆分,我们得到0000000111110001 00100010100或0x3 0x3F1 0x234。因此,第一级表中的第3项给出了第二级表的地址,第二级表中的第0x3F1项给出了所用页面的地址,该地址为该页面的0x234字节。

系列提供了一组非常深入的示例,介绍了页面表的工作原理、如何转换虚拟物理地址等

这是一个练习; 系列提供了一组非常深入的示例,介绍了页表的工作原理、如何转换虚拟物理地址等

这是一个练习;
很明显,偏移量需要12位。 当每个条目的大小为4字节时,得到的结果是外部页表为10位,内部表为10位。计算如下:

2^20个条目×4个字节/条目/4k字节=2^10->外部页面表格应具有10位 页表/框架或页大小占用的空间=内部页表的数量

4k字节/4字节=2^10->内页表应具有10位 页面表格中的页面大小/条目大小=帧数


这就是它如何得到10位和10位的平均值。对于不同的情况,不需要均匀分布。

很明显,偏移量需要12位。 当每个条目的大小为4字节时,得到的结果是外部页表为10位,内部表为10位。计算如下:

2^20个条目×4个字节/条目/4k字节=2^10->外部页面表格应具有10位 页表/框架或页大小占用的空间=内部页表的数量

4k字节/4字节=2^10->内页表应具有10位 页面表格中的页面大小/条目大小=帧数

这就是它如何得到10位和10位的平均值。对于不同的情况,不需要均匀分布

Hi,


In order to use large size page table hierarichal paging is done .
In case of two level page table scheme . for :
logical address space - 32bit - 2^32 
page size - 4kb i.e 2^12

In one level : 

page number - 20bit  calculated as (32 - 12)
page offset - 12 bit 

Now, In two level :

again, page number -  20bit is split into pagenumber(second level) and page offset .also
the address space is (2^20)

considering again page size of 4kb - (2^12)
so page number(second level ) should be calculated as : (20 - 12 ) - 8bits
and page offset : 12 bits.

But, It is mentioned that page number is divided evenly :

i.e page number p1 - 10 bits
    page number p2 - 10 bits
    page offset d - 12bits.

Why is the second level pagenumber divided evenly ? Is it that this division done
arbitarily according the requirement ? Is there no specific method for dividing as in case of single-level page table ?