寻找与所需内存最相近的快
找最大的空闲块
找最近的可用空闲块
上述三种算法均无法解决内存中出现的内碎片与外碎片问题,开头通过压缩算法与交换算法来进行缓解。
通过段号与段内偏移来实现虚拟内存地址与物理内存地址之间的映射,分段算法段的大小不是固定的是可变的。
通过逻辑内存地址查找物理内存地址,即通过页号查找帧号。
通过页表来管理内存,页表中存储了页号与帧号的映射关系,CPU通过虚拟内存的页号来查找对应物理内存地址的帧号,然后加上偏移地址来获取物理内存地址
页表的大小是固定的
通过帧号来查找页号
由程序员决定,哪些模块先被加载到内存中,从而实现内存使用的优化
将不使用的程序换出道硬盘中
将程序的一部分 不使用的内容放到硬盘中
置换到下一次使用时间最长的页。因无法的值下一次使用的时间,所以该算法多用来作为衡量其他算法效果的标准
先使用的页被最先置换
维护一个链表或者栈存放每一个页被使用的顺序,每次都将最长时间未被使用的页置换出去。每一次访问不同的页都将查询一次链表并更换顺序,开销较大
维护一个环形链表,每一个位置上记录某一个页表在一定时间内是否被访问,维护一个指针,没当发生页表访问时将标志位置为1表示该页表被访问过了,当发生缺页中断时,该指针按照一定方向移动,如果当前页表的标志位为1,则将其置为0,再访问下一个位置,直到找到标志位为0的页表,并将该页表置换出去。
淘汰使用次数最少的页