页框数据结构 必内核必须记录每个页框当前的状态 >哪些属于进程,哪些存放了内核代码/数据 >是否空闲,即是否可用 >如果不可用,内核需要知道是谁在用这个页框 >这个页框可能的使用者有用户态进程、动态分配的内 核数据结构、静态的内核代码、页面cche、设备驱 动程序缓冲的数据等等 of Science and Technolog 10/20/09 嵌入式0S 嵌入式系统实验室 12/57 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 12/57 页框数据结构 内核必须记录每个页框当前的状态 哪些属于进程,哪些存放了内核代码 / 数据 是否空闲,即是否可用 如果不可用,内核需要知道是谁在用这个页框 这个页框可能的使用者有用户态进程、动态分配的内 核数据结构、静态的内核代码、页面 cache 、设备驱 动程序缓冲的数据等等
页描述符 冬页描述符:struct page >每个物理页框都用一个页描述符表示 ●count:页的使用引用计数器 ■0:空闲 ■ >0:页已经分配给一个或多个进程或用户某些内核数据 结构 1958 ●flgs:页框状态,最多可以有32个,每个使用一个位表示 ·参见枚举类型pageflags of Science and Technolog 嵌入式系统实验室 10/20/09 嵌入式0S 13/57 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 13/57 页描述符 页描述符: struct page 每个物理页框都用一个页描述符表示 count :页的使用引用计数器 0 :空闲 >0 :页已经分配给一个或多个进程或用户某些内核数据 结构 flags :页框状态,最多可以有 32 个,每个使用一个位表示 参见枚举类型 pageflags
当内核调用一个页框分配函数时,必须指明请求 页框所在的区。这个一般是通过一些flag标志来 指定的 GFP XXX 1958 SCdT化ch0o 嵌入式系统实验室 10/20/09 嵌入式0S 14157 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 14/57 当内核调用一个页框分配函数时,必须指明请求 页框所在的区。这个一般是通过一些 flag 标志来 指定的 GFP_XXX
关于NUMA 必不芳虑 狱李安 物理内存被划分为若千个node 冬存取时间不等 考虑CPU局部性 958 Node使用数据结构pg data t描述 每个node被划分成若千个zone Cience and Techno 10/20/09 嵌入式0S 嵌入式系统实验室 15/57 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 15/57 关于 NUMA 不考虑 物理内存被划分为若干个 node 存取时间不等 考虑 CPU 局部性 Node 使用数据结构 pg_data_t 描述 每个 node 被划分成若干个 zone
存储区(Memory Zones) 必在一个理想的体系结构中,一个页框就是一个物理存储 单元,可以用于任何事情,例如 >存放内核数据/用户数据/缓存磁盘数据等 效 实际上存在硬件制约:一些页框由于自身的物理地址的 原因不能被一些任务所使用,例如 >ISA总线的DMA控制器只能对ram的前16M寻址 >在一些具有大容量ram的32位计算机中,CPU不能直 接访问所有的物理存储器,因为线性地址空间不够 wIScience and Tecnnolo 嵌入式系统实验室 10/20/09 嵌入式0S 16/57 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 16/57 存储区 (Memory Zones) 在一个理想的体系结构中,一个页框就是一个物理存储 单元,可以用于任何事情,例如 存放内核数据 / 用户数据 / 缓存磁盘数据等 实际上存在硬件制约:一些页框由于自身的物理地址的 原因不能被一些任务所使用,例如 ISA 总线的 DMA 控制器只能对 ram 的前 16M 寻址 在一些具有大容量 ram 的 32 位计算机中, CPU 不能直 接访问所有的物理存储器,因为线性地址空间不够