【问题标题】:How Linux Operatin g System maintains Page Table?Linux操作系统如何维护页表?
【发布时间】:2011-04-20 12:57:33
【问题描述】:

每个进程或每个系统的页表? KERNEL 是否为所有进程维护整个单个共享页表?

【问题讨论】:

    标签: memory-management operating-system linux-kernel


    【解决方案1】:

    大多数操作系统为每个进程分配页表,并将页表的指针存储在寄存器中并包含在PCB中

    【讨论】:

    • 那么操作系统如何处理共享页面(对于共享库,即Linux.so文件和相同的.so文件可以被两个或多个进程加载。)
    • @siva:这里似乎有一篇关于这个主题的有用论文:kernel.org/doc/ols/2003/ols2003-pages-315-320.pdf(为了进一步参考,我发现使用这些关键字:linux shared page table
    • @siva 一个关于 linux 内存管理的完整指南tldp.org/LDP/tlk/mm/memory.html
    • @siva:共享页面只是意味着一个页表中的条目映射到与另一个页表中的条目相同的页框。
    • @siva:是的,每个进程都有自己的页表。但是,两级结构(在 IA32 上)意味着在 Page Directory 有一个空条目的地址空间中可以存在“空洞”,而页表的最上部分(对应内核的映射地址)也是对所有进程通用。这意味着一个进程的页表所需的内存小于理论上的最大 4MB。您可以在/proc/meminfo 中查看全局用于页表的内存量。
    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    相关资源
    最近更新 更多