进程的虚存区域
来源:互联网 发布:windows phone x86 编辑:程序博客网 时间:2024/06/06 05:59
Linux的存储管理主要是管理进程的虚拟内存的用户区。进程虚拟内存的用户区分成代码段、数据段、堆栈以及进程运行的环境变量、参数传递区域等。每一个进程都用一个mm_struct结构体来定义它的虚拟用户区。mm_struct结构体首地址在任务结构体tast_struct成员项mm中。
一个虚拟区域是虚存空间的一个连续的区域,在这个区域中的信息具有相同的操作和访问特性。每个虚拟区域用一个vm_area_struct结构体来进行描述,它定义在"/include/linux/min.h"中
struct vm_area_struct{
struct mm_struct *vm_mm; //指向进程的mm_struct结构体
unsigned long vm_start; //虚拟区域的开始地址
unsigned long vm_end; //虚拟区域的终止地址
struct vm_area_struct *vm_next; //指向下一个vm_area_struct结构体。链表首地址由mm_struct中成员项mmap指出
pgprot_t vm_page_prot; //虚存区域的页面保护特性
unsigned long vm_flags; //虚拟区域的操作特性
struct rb_node vm_rb;
union{
struct{
struct list_head list;
void *parent;
struct vm_area_struct *head;
}vm_set;
struct raw_prio_tree_node prio_tree_node;
}shared;
struct list_head anon_vma_node;
struct anon_vma *anon_vma;
struct vm_operations_struct *vm_ops; // 指向vm_operations_struct结构体的指针。
//该结构体中包含着指向各种操的函数指针
unsigned long vm_file;
struct file *vm_file;
void *vm_private_data;
unsigned long vm_truncate_count;
#ifndef CONFIG_MMU
atomic_t vm_usage;
#endif
#ifdef CONFIG_NUMA
struct mempolicy *vm_policy;
#endif
};
- 进程的虚存区域
- 进程虚存空间的管理
- 对内存中存储区域的再认识
- 一个进程的VMA区域
- ·虚拟地址空间管理之虚存区域的组织图
- 5大内存区域
- jvm之内存区域
- 怎样能截取屏幕的一个区域存到内存?
- C++程序员必须知道的5大内存区域
- Java虚拟机剖析之内存区域,内存的溢出,泄漏
- 进程中保存文件信息的方法
- 进程中内存区域的划分
- 设置当前进程的区域语言
- JVM之内存区域分配
- Java三大内存区域
- 变量在内存中的区域
- jvm读书笔记之内存区域
- C++数据在内存中的存放的三个区域全局数据区,堆和栈
- 软件开发方法(C++)
- POJ2607/ZOJ1857 (最短路...注意题意及输入控制)
- 范围取半算法实例
- SYSU/ICPC 2011校赛总结
- 菜鸟报道
- 进程的虚存区域
- [Abstract]DUMPBIN 实用程序的说明
- QT线程(二)---线程同步
- server 优化1
- 10年第六届湖南省acm程序设计大赛 第五题 E 内部收益率
- C++学习总结_this指针
- 1.3.4 销毁一个链表
- 使用ACL匹配奇偶网络号及IP地址
- 用C#实现MVC(Model View Control)模式介绍