内存管理

来源:互联网 发布:dota2网络连接超时 编辑:程序博客网 时间:2024/06/10 13:56
  • 程序的重定位
    编译时(只能放固定位置)、载入时(载入后不能换位置)、所以在运行时重定位最好。所以每个进程执行时通过PC得到的逻辑地址–>虚拟地址(虚拟内存地址)–>物理地址(物理内存地址)。

  • 程序的载入
    将内存分段(代码段,数据段…)方便用户使用–>
    将内存分页(固定大小、可变大小)提高内存利用率–>
    引入虚拟内存(段页结合)每个进程“看见”的可用内存变大–>
    虚拟内存(比物理内存大)需要换入换出

    这里写图片描述

  • 多级页表和快表
    页小造成页表过大,所以设置多级页表,多级页表查询耗费时间,引入快表(TLB)放置最近使用过的页号。

  • 页的换入换出
    当当前执行的程序需要载入时(程序执行时部分载入内存),发现内存没有空闲的页,则需要将某一页换出“让位置”。
    换出算法:FIFO、LRU(最近最少使用)、Clock算法

    eg:
    这里写图片描述

原创粉丝点击