【例】分页存储管理中页表的功能是什么?当系统中的地址空间变得非常大时会给页表的设计带来什么样的新问题?给出一种解决方案分析它的优缺点(北方名校经典试题) 【分析】在分页存储管理中页表是为了使页号与实际的物理块号对应起来它实际上是以空间换时间使得检索速度增加了但地址空间很大时页表所占的空间也相应增大无论是空间还是时间都得不偿失 【解答】在分页系统中允许将进程的每一页离散地存储在内存的任何物理块中但系统应能保证进程的正确运行即能在内存中找到每个页面所对应的物理块为此系统又为每个进程建立一张页面映射表简称页表在进程地址空间内的所有页(~n)依次在页表中有一页表项其中记录了相应页在内存中对应的物理块号在配置了页表后进程执行时通过查找页表即可找到每页在内存中的物理块号可见页表的作用是实现从页号到物理块号的地址映射 现代的大多数计算机系统都支持大的逻辑地址空间(~)在这样的环境下页表就变得非常大要占用相当大的内存空间例如对于一个具有位逻辑地址空间的分页系统规定页面大小为KB即B则在每个进程页表中的页表项可达兆个之多又因为每个页表项占用个字节故每个进程的页表就要占用MB的内存空间而且还要求是连续的显然这是不现实的我们可以从下述两个方法来解决这一问题 ● 对页表所需的内存空间采用离散分配方式来解决难以找到一块连续的大内存空间的问题 ● 只将当前需要的部分页表项调入内存其余的页表项仍驻留在磁盘止需要时再将它们调入内存 这里因此而发展出两级页表在用户逻辑地址原来划分的基础上将页表部分在分为页表索引项和页表两部分也就是说对页表进行分页使每个页面的大小与内存物理块的大小相同比如位的逻辑地址可采用下所示的格式 对投入运行的程序将其页表索引调入内存而对其页表调入少量的页程序运行时如找不到相应的页表则产生中断信号请求操作系统将该页表调入内存 两级页表适应了大地址空间的需要实现了虚拟存储系统但增加了地址变换的开销和操作系统管理的复杂性 返回《操作系统考研辅导教程》 [] [] [] [] [] [] [] [] |