深入理解Linux内核-回收页框
- 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内核-回收页框的更多相关文章
- 深入理解Linux内核-页高速缓存
页高速缓存:1.磁盘高速缓存的一种 2.一种对完整的数据页进行操作的磁盘高速缓存.3.将一页数据写到块设备的时候,内核首先检查对应的页是否已经在高速缓存中,不在就添加并填充数据.4.I\O数据的传送并 ...
- 深入理解Linux内核-内存管理
内核如果给自己分配动态内存 动态内存:RAM的某些部分被永久打分配给内核,用来存放内核代码以及静态内核数据结构:剩余的部分被称为动态内存 连续物理内存区管理: 页框管理:1.页大小的选择,通常情况下主 ...
- 读书笔记之Linux系统编程与深入理解Linux内核
前言 本人再看深入理解Linux内核的时候发现比较难懂,看了Linux系统编程一说后,觉得Linux系统编程还是简单易懂些,并且两本书都是讲Linux比较底层的东西,只不过侧重点不同,本文就以Linu ...
- 【读书笔记::深入理解linux内核】内存寻址【转】
转自:http://www.cnblogs.com/likeyiyy/p/3837272.html 我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0 ...
- 【读书笔记::深入理解linux内核】内存寻址
我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系. 这句话瞬间让我惊呆了,根据我的CPU的知识,开 ...
- 《深入理解Linux内核》 读书笔记
深入理解Linux内核 读书笔记 一.概论 操作系统基本概念 多用户系统 允许多个用户登录系统,不同用户之间的有私有的空间 用户和组 每个用于属于一个组,组的权限和其他人的权限,和拥有者的权限不一样. ...
- 深入理解Linux内核 学习笔记(3)
第三章 进程 可以看到很多熟悉的结构体 进程状态: 可运行状态(TASK_ RUNNING) 进程要么在CPU上执行,要么准备执行. 可巾断的等待状态(TASK_ INTERRUPTIBLE) 进程被 ...
- 深入理解Linux内核 学习笔记(1)
1.用户和用户组 每个用户是一个或多个用户组的一名成员,组由唯一的用户组标识符(user group ID)标识.每个文件的相关权限也恰好与一个组相对应. root为超级用户, 2.模块 为了达到微内 ...
- Linux内存管理(深入理解Linux内核)
Linux的内存管理,实际上是借助80x86的硬件分段和分页电路,将逻辑地址转化为物理地址的. 物理内存中,有一部分是一直(Permanently)映射给内核使用的,这部分主要用于保存内核的代码,以及 ...
随机推荐
- 〖Linux〗使用sed命令修改小端(little endian)存储的数据
#!/bin/bash - #=============================================================================== # # F ...
- Atitit.Guibutton与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数.
Atitit.Guibutton与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数. 1. Kpi::: 代码行数(凝视行数,空白的行数), 方法数,class数 1 2. ...
- 用RotateDrawable实现网易云音乐唱片机效果
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="唱片机" title=""> ...
- java第九节 网络编程的基础知识
/** * * 网络编程的基础知识 * 网络协议与TCP/IP * IP地址和Port(端口号) * 本地回路的IP地址:127.0.0.1 * 端口号的范围为0-65535之间,0-1023之间的端 ...
- java第八节 GUI/图形用户界面
/* *第8讲 GUI/图形用户界面 * AWT的基础知识 * GUI全称是Graphical User Interface,即图形用户界面 * JDK中提供了AWT和Swing两个包,用于GUI程序 ...
- adb shell中的am pm命令
adb shell中的am pm命令,一些自己的见解和大多数官网的翻译. am命令 am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止 ...
- PL/SQL12中文版
PLSQL12,界面优化很不错,更加美观,直接集成中文语言!,更加艳丽 01.界面 02.注册码 注意:有能力的还是购买付费版的,付费是对软件的高度认可和支持 12.0.3.1821 64bit: 注 ...
- js template实现方法
<script type="text/html" id="template"> <li class="list-item" ...
- [SQL] 请教一下 count里面有case when 一般情况下啥时候用
http://www.itpub.net/forum.php?mod=viewthread&tid=1810967 问题: 比如 count(case when pday_id=${deal ...
- 【DeepLearning】Exercise:Vectorization
Exercise:Vectorization 习题的链接:Exercise:Vectorization 注意点: MNIST图片的像素点已经经过归一化. 如果再使用Exercise:Sparse Au ...