深入理解Linux内核-回收页框
2023-09-27 14:29:19 时间
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个
相关文章
- linux Python-安装sasl包的错误
- Linux Sqlite3 基础知识
- Linux内存管理Notice
- 如何在Linux上添加或编辑文件系统的卷标
- 使用 GIT 备份 linux 上的网页文件
- 跨越15年的相逢,用 3.16 内核跑 RedHat 6.2古董 Linux
- 如何在 linux 中搭建 FTP 服务
- 无法进入登录linux,提示theconfigurationdefaultsforgnomepowermanagerhavenotbeeninstalle
- 如何查看linux内核中驱动的初始化顺序?
- 快速升级openwrt的linux内核版本
- Linux内核参数引起的 K8s 集群血案
- Linux系统调优——内核相关参数(五)
- 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一第2章 C语言位操作2.1 引言
- 在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)
- Linux 内核控制 urb
- Linux 内核段符号简介
- 深入理解Linux内核(一)——Linux操作系统基础概念
- Linux 系统必须掌握的文件_【all】
- 【嵌入式Linux驱动开发】十四、了解Linux内核定时器使用流程,实现LED闪烁
- Windows 10 linux 子系统 WSL 使用串口
- C/C++教程 第二十五章 —— Linux系统入门
- 非常有用的Linux系统操作命令
- Linux安装MySQL
- linux下程序编译的各个阶段记录
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---16
- 了解Linux实时内核