发布网友 发布时间:2022-04-23 22:48
共1个回答
热心网友 时间:2022-05-03 02:14
Linux 系统在为用户态进程和内核分配动态内存的时候,所作的检查是马马虎虎的
对内核使用的许多磁盘高速缓存和内存高速缓存大小也同样不作*。
页框回收算法(PFRA):
1、在所有内存使用完之前,就必须执行页框回收算法
2、选择目标页,它获取页框,并且使之空闲
3、候选回收页:任何属于磁盘和内存高速缓存的页,以及属于进程用户态地址空间的页
4、首先释放‘无害’页:先释放没有被任何进程使用的磁盘与内存高速缓存中的页
5、将用户态进程的所有页定为可回收页。
6、同时取消引用一个共享页框的所有页表项的映射,就可以回收改共享页框
7、只回收未用页。
8、LRU算法回收任何进程最旧页。
反向映射:
1、内核能快速定位到同一页框到所有页表项,就叫反向映射。
2、采用面向对象的反向映射技术
从目录项高速缓存回收页框
从索引节点高速缓存回收页框
周期回收:
1、
内存不足的时候删除程序:
1、尽管PFRA会尽量保留一定的空闲页框,但还是可能出现内存耗尽的情况,这个时候所有进程都无法执行,也就没有办法释放它门所拥有的页框
交换:
1、交换用来为非映射页在磁盘上提供备份
2、交换是页框回收的一个最高级特性。
3、交换可以用来扩展内存地址空间。虽然性能可能会慢几个数量级
交换子系统的功能:
1、在磁盘上建立交换区,用于存放没有磁盘映像的页
2、管理交换区空间,当需求发生时,分配与释放槽
3、提供函数用于从RAM中把页换出到交换区或从交换区换入到RAM
4、利用页表项(现已被换出的换出页页表项)中的换出页标识符跟踪数据在交换区中的位置。
交换区:
1、内存中换出的页存放在交换区中。
2、交换区可以是磁盘分区,可以是大型分区中的文件
3、最大个数通常为32个