程序的重定位:
编译时(只能放固定位置)、载入时(载入后不能换位置)、所以在运行时重定位最好。所以每个进程执行时通过PC得到的逻辑地址–>虚拟地址(虚拟内存地址)–>物理地址(物理内存地址)。程序的载入:
将内存分段(代码段,数据段…)方便用户使用–>
将内存分页(固定大小、可变大小)提高内存利用率–>
引入虚拟内存(段页结合)每个进程“看见”的可用内存变大–>
虚拟内存(比物理内存大)需要换入换出多级页表和快表:
页小造成页表过大,所以设置多级页表,多级页表查询耗费时间,引入快表(TLB)放置最近使用过的页号。页的换入换出:
当当前执行的程序需要载入时(程序执行时部分载入内存),发现内存没有空闲的页,则需要将某一页换出“让位置”。
换出算法:FIFO、LRU(最近最少使用)、Clock算法eg:
内存管理
最新推荐文章于 2024-02-13 18:48:44 发布