Linux 使用最近最少使用(LRU)页面老化技术来公平的选择可能会从系统中删除的页面,这个方案涉及系统中的每个页面,页面的年龄随着访问次数的变化而变化,如果某个页面访问次数多,那么该页就表示越 年轻,如果某个呃页面访问次数太少,那么该页越容易被换出 。
物理和虚拟寻址模式大多数多功能处理器都支持 物理地址模式和虚拟地址模式的概念 。物理寻址模式不需要页表,并且处理器不会在此模式下尝试执行任何地址转换 。Linux 内核被链接在物理地址空间中运行 。
Alpha AXP 处理器没有物理寻址模式 。相反,它将内存空间划分为几个区域,并将其中两个指定为物理映射的地址 。此内核地址空间称为 KSEG 地址空间,它包含从 0xfffffc0000000000 向上的所有地址 。为了从 KSEG 中链接的代码(按照定义,内核代码)执行或访问其中的数据,该代码必须在内核模式下执行 。链接到 Alpha 上的 Linux内核以从地址 0xfffffc0000310000 执行 。
访问控制页面表的每一项还包含访问控制信息,访问控制信息主要检查进程是否应该访问内存 。
必要时需要对内存进行访问限制 。例如包含可执行代码的内存,自然是只读内存; 操作系统不应允许进程通过其可执行代码写入数据 。相比之下,包含数据的页面可以被写入,但是尝试执行该内存的指令将失败 。大多数处理器至少具有两种执行模式:内核态和用户态 。你不希望访问用户执行内核代码或内核数据结构,除非处理器以内核模式运行 。

文章插图
访问控制信息被保存在上面的 Page Table Entry,页表项中,上面这幅图是 Alpha AXP的 PTE 。位字段具有以下含义
- V
- FOR
- FOW
- FOE
- ASM
- GH
- KRE
- URE
- KWE
- UWE
- 页框号
除此之外,Linux 还使用了两个位
- _PAGE_DIRTY
- _PAGE_ACCESSED
缓存上面的虚拟内存抽象模型可以用来实施,但是效率不会太高 。操作系统和处理器设计人员都尝试提高性能 。但是除了提高处理器,内存等的速度之外,最好的方法就是维护有用信息和数据的高速缓存,从而使某些操作更快 。在 Linux 中,使用很多和内存管理有关的缓冲区,使用缓冲区来提高效率 。
缓冲区缓存缓冲区高速缓存包含块设备驱动程序使用的数据缓冲区 。
还记得什么是块设备么?这里回顾下
块设备是一个能存储固定大小块信息的设备,它支持以固定大小的块,扇区或群集读取和(可选)写入数据 。每个块都有自己的物理地址 。通常块的大小在 512 - 65536 之间 。所有传输的信息都会以连续的块为单位 。块设备的基本特征是每个块都较为对立,能够独立的进行读写 。常见的块设备有 硬盘、蓝光光盘、USB 盘
与字符设备相比,块设备通常需要较少的引脚 。

文章插图
缓冲区高速缓存通过设备标识符和块编号用于快速查找数据块 。如果可以在缓冲区高速缓存中找到数据,则无需从物理块设备中读取数据,这种访问方式要快得多 。
页缓存页缓存用于加快对磁盘上图像和数据的访问
它用于一次一页地缓存文件中的内容,并且可以通过文件和文件中的偏移量进行访问 。当页面从磁盘读入内存时,它们被缓存在页面缓存中 。
推荐阅读
- 中国十大名茶最新排名是怎样的?
- 中国第一个乒乓球大满贯是谁?
- 数据分析-pandas库快速了解
- VMware环境部署vFW虚拟防火墙
- Linux必备知识之文件系统
- linux服务器内存异常,究竟在哪消耗了2.5G?
- CDN的本质只是加速器?其实它才是互联网的核心精神的集大成者
- 云南大蟒蛇事件 云南挖出大蛇是真的吗
- 南极冰盖储存的水资源在地球淡水资源的 南极冰盖储存的水资源是
- 家里窗户全是瓢虫怎么办 窗户上很多瓢虫
