linux kernel
文章平均质量分 72
沉默拾金
这个作者很懒,什么都没留下…
展开
-
TLB(translation lookaside buffer)转换后援缓冲器
TLB是一个内存管理单元用于改进虚拟地址到物理地址转换速度的缓存。现在所有的用于桌面和服务器的处理器都使用TLB。TLB具有固定数目的slots,slots包含了page table的入口。页表用于将虚拟地址映射到物理地址。TLB是典型的内容寻址的内存(content-addressable memory – CAM),其中用于搜索的键值时虚拟地址,搜索结果时物理地址。如果TLB中包括请求原创 2013-09-24 18:28:15 · 1342 阅读 · 0 评论 -
Linux使用的缓存
Linux使用的缓存 不管在硬件设计还是软件设计中,高速缓存是获得高性能的常用手段。Linux 使用了多种和内存管理相关的高速缓存。 1. 缓冲区高速缓存: 缓冲区高速缓存中包含了由块设备使用的数据缓冲区。这些缓冲区中包含了从设备中读取的数据块或写入设备的数据块。缓冲区高速缓存由设备标识号和块标号索引,因此可以快速找出数据块。如果数据能够在缓冲区高速缓存中找到,则系统就没有转载 2013-09-24 20:58:45 · 1326 阅读 · 0 评论 -
高速缓冲存储器 - Buffer和Cache的区别
buffer与cache操作的对象就不一样。 buffer(缓冲)是为了提高内存和硬盘(或其他I/0设备)之间的数据交换的速度而设计的。 cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计,也就是平常见到的一级缓存、二级缓存、三级缓存。 cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换的速度原创 2013-10-11 16:37:20 · 1787 阅读 · 0 评论 -
ioport和iomem
1)cat /proc/iomem看到的内容:IO memory空间的地址资源分配情况,以树状结构显示。request_mem_regionioremap2)cat /proc/ioports看到的内容IO port空间的地址资源分配情况,以树状结构显示。[源于x86平台的设计思想,目前基本不用了]request_regionioremap # def转载 2013-09-29 15:01:11 · 1841 阅读 · 0 评论 -
__user的用法
__user表示是一个用户空间的指针,所以kernel不可能直接使用。__user宏简单告诉编译器(通过 noderef)不应该解除这个指针的引用(因为在当前地址空间中它是没有意义的)。#ifdef __CHECKER__# define __user __attribute__((noderef, address_space(1)))# define __kernel /* defa原创 2013-09-29 21:54:14 · 2869 阅读 · 0 评论 -
页目录和页表结构
上图反映了如下信息:1、 进程的4G 线性空间被划分成三个部分:进程空间(0-3G)、内核直接映射空间(3G – high_memory)、内核动态映射空间(VMALLOC_START - VMALLOC_END)2、 三个空间使用同一张页目录表,通过 CR3 可找到此页目录表。但不同的空间在页目录表中页对应不同的项,因此互相不冲突3、 内核初始化以后,根据实际物转载 2013-09-28 22:09:14 · 1437 阅读 · 0 评论