分页存储管理中,页表的功能是什么?当系统中的地址空间变得非常大时(如32位地址空间),会给页表的设计带来什么样的新问题?请给出一种解决方法,分析它的优点和缺点。

admin2012-06-21  72

问题 分页存储管理中,页表的功能是什么?当系统中的地址空间变得非常大时(如32位地址空间),会给页表的设计带来什么样的新问题?请给出一种解决方法,分析它的优点和缺点。

选项

答案在分页系统中,允许将进程的每一页离散地存储在内存的任一物理块中,为能保证进程的正常运行,系统建立了页表。在进程地址空间内的所有页,依次在页表中有一页表项,其中记录了相应页在内存中的对应物理块号,进程执行时通过查找页表,即可找到每页在内存中的位置,即页表的作业是实现页号到物理块号的地址映射。当地址空间变得非常大时,页表也将变得非常大,将占用相当大的内存空间。对于一个具有32位地址空间的分页系统,规定页面大小为4 KB,则在每个进程页表中的页表项可达到1 MB,又因为每个页表项占用4 B,故仅每个进程的页表项就要占用4 MB的内存空间,而且要求是连续的,这显然是不现实的。可以从以下两个方面来解决这个问题。 (1)对页表所需的空间采用离散分配。 (2)只将当前所需的一部分页表项调入内存,其余表项仍驻留在外存中,仅当必须时才调入内存。具体的实现方案是采用两级页表。在用户逻辑地址原来的划分基础上,将页表部分再分为页表索引项和页表两部分,也就是说对页表也进行分页。对于投入运行的程序,将其页表索引调入内存,而对其页表仅调入少量的项。程序运行时如找不到相应的页表,则产生一个中断,请求操作系统将该页表调入内存。两级页表适应了大地址空间的需要,实现了虚拟存储系统,但增加了地址变换的开销和操作系统管理上的复杂性。

解析
转载请注明原文地址:https://kaotiyun.com/show/lAxi777K
0

最新回复(0)