深入理解Linux内核-回收页框

Linux 系统在为用户态进程和内核分配动态内存的时候,所作的检查是马马虎虎的对内核使用的许多磁盘高速缓存和内存高速缓存大小也同样不作限制。

页框回收算法(PFRA):1、在所有内存使用完之前,就必须执行页框回收算法2、选择目标页,它获取页框,并且使之空闲3、候选回收页:任何属于磁盘和内存高速缓存的页,以及属于进程用户态地址空间的页4、首先释放‘无害’页:先释放没有被任何进程使用的磁盘与内存高速缓存中的页5、将用户态进程的所有页定为可回收页。6、同时取消引用一个共享页框的所有页表项的映射,就可以回收改共享页框7、只回收未用页。8、LRU算法回收任何进程最旧页。

反向映射:1、内核能快速定位到同一页框到所有页表项,就叫反向映射。2、采用面向对象的反向映射技术

从目录项高速缓存回收页框从索引节点高速缓存回收页框

周期回收:1、

内存不足的时候删除程序:1、尽管PFRA会尽量保留一定的空闲页框,但还是可能出现内存耗尽的情况,这个时候所有进程都无法执行,也就没有办法释放它门所拥有的页框

交换:1、交换用来为非映射页在磁盘上提供备份2、交换是页框回收的一个最高级特性。3、交换可以用来扩展内存地址空间。虽然性能可能会慢几个数量级

交换子系统的功能:1、在磁盘上建立交换区,用于存放没有磁盘映像的页2、管理交换区空间,当需求发生时,分配与释放槽3、提供函数用于从RAM中把页换出到交换区或从交换区换入到RAM4、利用页表项(现已被换出的换出页页表项)中的换出页标识符跟踪数据在交换区中的位置。

交换区:1、内存中换出的页存放在交换区中。2、交换区可以是磁盘分区,可以是大型分区中的文件3、最大个数通常为32个
时间: 2024-11-12 23:42:11

深入理解Linux内核-回收页框的相关文章

Linux内核剖析 之 回收页框

一.页框回收算法 1.为何要有页框回收算法? Linux在为用户态与内核分配动态内存时,检查得并不严谨. 例如: (1).对单个用户创建的进程的RAM使用的总量并不作严格的检查(进程资源的限制只针对单个进程): (2).对内核使用的许多磁盘高速缓存和内存高速缓存大小也同样不做限制. 2.为何要减少控制? 可以使内核以最好的可行方式使用可用的RAM: (1).当系统负载较低时,RAM的大部分由磁盘高速缓存占用,较少的正在运行的进程可以获益: (2).当系统负载增加时,RAM的大部分则由进程页占用,

准备把深入理解Linux内核这本书细看一遍

第一章 绪论 Linux与其他类Unix内核的比较 硬件的依赖性 Linux版本 操作系统基本概念 Unix文件系统概述 Unix内核概述 第二章 内存寻址 内存地址 硬件中的分段 Linux中的分段 硬件中的分页 Linux中的分页 第三章 进程 进程.轻量级进程和线程 进程描述符 进程切换 创建进程 撤销进程 第四章 中断和异常 中断信号的作用 中断和异常 中断和异常处理程序的嵌套执行 初始化中断描述符表 异常处理 软中断及tasklet 工作队列 从中断和异常返回 第五章 内核同步 内核如

深入理解Linux内核day07--内存管理

内存管理 RAM的某些部分永久的分配给内核,并用来存放内核代码以及静态内核数据结构. RAM的其余部分称为动态内存(dynamic memory),这不仅是进程所需的宝贵资源,也是内核本身所需的宝贵资源.实际上,整个系统的性能取决于如何有效地管理动态内存. 因此,现在所有多任务操作系统都在尽力优化对动态内存的使用,也就是说,尽可能做到当需要时分配,不需要时释放. 页框管理 Linux采用4KB页框大小作为标准的内存分配单元.基于以下两个原因,这会使事情变得简单: 1.由分页单元引发的缺页异常很容

【读书笔记::深入理解linux内核】内存寻址

我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系. 这句话瞬间让我惊呆了,根据我的CPU的知识,开启分页之后,任何寻址都要经过mmu的转换,也就是一个二级查表的过程(386) 难道内核很特殊,当mmu看到某个逻辑地址是内核传来的之后,就不查表了,直接减去0xC0000000,然后就传递给内存控制器了??? 我发现网上也有人和我问了同样的问题,看这个问题 这句话太让人费解了,让人费解到以至于要怀疑

【深入理解Linux内核】《第一章 绪论》笔记

1.商用Unix操作系统包括: - AT&T公司开发的(System V Release 4) SVR4. - 加州伯克利分校发布的4.4BSD - Dec公司(现属于HP)的Digital Unix - IBM公司的AIX - HP公司的HP-UX - Sun公司的Solaris   - Apple公司的Mac OS X 所有商业版本都是SVR4或4.4BSD的变体,并且都趋向于遵循某些通用标准:如IEEE的POSIX(Portable Operating Systems based on U

【笔记】深入理解Linux内核--内存寻址(一)

<深入理解Linux内核>中关于内存管理一共有三章,这是其中的一章,还有第八章,讨论内核怎样给自己分配主存,以及第九章,考虑怎样给进程分配线性地址. 内存地址 -- (P40) 以下三种地址是相对与8086处理器来说的. 逻辑地址(logical address) 包含在机器语言指令中用来指定一个操作数或一条指令的地址.比如下面反汇编代码中最左边的地址即逻辑地址. 1 40052d: 55 push %rbp 2 40052e: 48 89 e5 mov %rsp,%rbp 3 400531:

20150514我读《深入理解linux内核》之虚拟文件系统笔记

20150514我读<深入理解linux内核>之虚拟文件系统笔记 2015-05-14 Lover雪儿 虚拟文件系统所隐含的思想就是把很多不同种类的文件系统的共同信息放入内核,其中有一个字段或者函数来支持Linux所支持的所有实际文件系统所提供的任何操作.对所调用的每个读.写或者其他函数,内核都能把他们替换成支持本地Linux文件系统.NTFS文件系统,或者文件所在的任何其他文件系统的实际函数. 虚拟文件系统可以称为虚拟文件系统转换,是一个内核软件层,用来处理与Unix标准文件系统相关的所有系

【深入理解Linux内核】《第二章 内存寻址》笔记 (2014-06-28 12:38)

2.1 内存地址 逻辑地址:段+偏移 线性地址(虚拟地址) 物理地址 2.2硬件中的分段 2.2.1 段选择符和段寄存器 15                                                3  2  1   0 ------------------------------------------------|                                                    |TI |RPL  ||         索引号 

深入理解Linux内核 第一章 绪论

Unix 文件系统概述 Unix的每个进程都有一个当前工作目录. 为标识一个特定的文件,进程使用路径名.如果路径名第一个字符是斜杠,那么这个路径是绝对路径,其起点是根目录:如果第一项是目录名或者文件名,那么这个路径就是相对路径,其起点是进程的当前目录. 硬链接的限制 1)不允许用户给目录创建硬链接,因为这可能把目录的树形结构变成环形结构. 2)只有在同一文件系统中的文件之间才能创建硬链接.此限制较大,因为现代Unix系统可能包含多种文件系统,这些文件系统位于不同的磁盘和/或分区,用户也无法知道他