(1)为什么要进行内存管理?
在单道批处理系统阶段,一个系统一个时间段内只执行一个程序,内存的分配及其简单,仅分配给当前运行进程即可。而引入了多道程序并发执行之后,进程之间共享的不仅仅是处理机,还有主存储器。然而, 共享主存会形成一些特殊的挑战。如果不对内存进行管理,容易导致内存数据的混乱,以至于限制进程的并发 执行。所以为了更好地支持多道程序并发执行,必须要进行内存 管理。
(2)页式管理中每个页表项的大小的下限如何决定?
页表项的作用是找到该页在内存的位置,以32位逻辑地址空间,字节为编址格式,一页4KB为例,地址空间内一共含有2^32B/4KB=1M页,则需要log2 1M=20位才能保证表示范围能容纳所有页面,又因为以字段为编址字段,即页表项的大小>=[20/8]=3B。所以在这个条件下,为了保证页表项能够指向所有页面,那么页表项的大小应该大于3B,当然,也可以选择更大的页表项大小,以至于让一个页面能够正好容下整数个页表项大小以方便存储(例如取成4B,那么一页正好可以装下4KB/4B=1K个页表项),或者增加其他信息。
(3)多级页表解决了什么问题?又会带来什么问题?
多级页表解决了当逻辑地址过大时,页表的长度会大大增加的问题。而采用多级页表时,一次访盘需要多次访问内存甚至磁盘,会大大增加一次访存的时间。