最近在看操作系统,一直想不通内存管理在采用分页的情况下是怎么和伙伴系统共存的呢?求解答呀。

解决方案 »

  1.   

    ULK关于内存基础的几章有答案。
      

  2.   

    一直想不通内存管理在采用分页的情况下是怎么和伙伴系统共存的呢
    为什么分页呢?
    最开始的系统内存有限,当然运行的程序也有限,程序员可以手动指定某个程序在哪些区间运行,这时候程序员需要管理不同程序的地址空间。
    后来内存越来越大,程序也越来越多,手动已经不行了,需要自动加载程序运行,所以就有了虚拟空间和物理空间的隔离,中间页表来管理映射关系。
    我不知道分页机制谁发明的,有没有更好的机制。
    不过分页能够细粒度地管理内存映射。
    本来64M的内存空间分页4k的华,就有16k个页;伙伴系统就是管理这16k个页的,简单来讲就是将这些页挂在一些链表上,页分配器从上面取,用完了再放回去.