单级页表的缺点
前面说了为了提高内存的利用率,内存是分页管理的,并且有一个页表用来存储页号(逻辑地址)与页框号(物理地址)的对应关系。通过找页号就可以找到页框号。这个思想理论上是没有问题的,但是实际使用的时候就不行了,为什么?
为了更好的提高内存的利用率,每一页就应该做得足够小,但是每一页都要在页表里面有一项与页框对应,也就是说页数越多页表也就会越大,页表如果很大的话就会对内存造成浪费,因为存放页表的这部分你内存是不能给程序使用的,并且一直存放在该进程的PCB里面。那么究竟会造成多大的浪费?假设页面尺寸为4K,地址是32位,那么就有220个页面,页表里面就有220个页表项,如果每个页表项是4个字节,2^20个就是4M;系统并发十个进程,需要40M内存。如果并发一百个就是400M内存,这无疑是一个很大的开销。
但是实际上大部