`
highsky
  • 浏览: 276235 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux核心数据结构--vm_area_struct

阅读更多
表示某进程的一个虚拟内存区域。

struct vm_area_struct {

  struct mm_struct * vm_mm;
  /* VM area parameters */

  unsigned long vm_start;

  unsigned long vm_end;

  pgprot_t vm_page_prot;

  unsigned short vm_flags;


/* AVL tree of VM areas per task, sorted by address */

  short vm_avl_height;

  struct vm_area_struct * vm_avl_left;

  struct vm_area_struct * vm_avl_right;

/* linked list of VM areas per task, sorted by address */

  struct vm_area_struct * vm_next;
/* for areas with inode, the circular list inode->i_mmap */

/* for shm areas, the circular list of attaches */

/* otherwise unused */

  struct vm_area_struct * vm_next_share;

  struct vm_area_struct * vm_prev_share;

/* more */

  struct vm_operations_struct * vm_ops;

  unsigned long vm_offset;

  struct inode * vm_inode;

  unsigned long vm_pte;
      /* shared mem */

};
分享到:
评论

相关推荐

    percpu-vm.rar_VMAlloc

    在多核系统中,每个CPU都有自己的本地内存缓存,为了提高效率,某些数据结构会被分配到每个CPU的核心上,称为“per-CPU变量”。`percpu-vm`就是在这样的背景下诞生的,它使得内存分配能够更加智能地考虑每个CPU的...

    linux-char-driver-by-mmap.zip_linux mmap_mmap

    函数接收`struct file *filp`(文件对象)、`struct vm_area_struct **vma`(虚拟内存区域结构)作为参数。在这里,驱动需要计算映射的起始地址和大小,然后调用`set_vm_flags`、`remap_pfn_range`或`io_remap_pfn_...

    虚拟地址空间.pdf

    在Linux系统中,虚拟地址空间的实现依赖于两个主要的数据结构:`mm_struct`和`vm_area_struct`。 1. **MM_STRUCT 结构** `mm_struct`结构体存储了关于进程虚拟地址空间的全局信息。在`/include/linux/sched.h`中...

    Linux 内核云上实验指导3(新)1

    1. **task_struct 和 mm_struct**: `task_struct` 是Linux内核中代表进程的数据结构,其中的 `mm_struct` 成员指向进程的内存描述符。`mm_struct` 定义在 `include/linux/sched/types.h` 中,它包含了关于进程内存...

    Linux内存管理的主要数据结构分析.pdf

    本文针对Linux内核2.4.18版本进行研究,重点分析了内存管理中涉及的几个核心数据结构,为读者提供了一个全面了解Linux内存管理机制的窗口。为了深入理解Linux内存管理的复杂性,本文首先介绍了虚拟内存技术,然后...

    linux系统如何实现虚拟存储器.pdf

    Linux 中使用三种重要的数据结构表示进程使用内存的情况,他们是:struct vm_area_struct、struct vm_operations_struct 和 struct mm_struct。进程虚拟内存的内容包括三部分:进程的可执行代码和数据、进程在其...

    linux数据结构[汇编].pdf

    Linux操作系统的核心在于其内核,而内核的高效运行离不开一系列关键的数据结构。这些数据结构在内存管理和系统调用中起到至关重要的作用。本章详细介绍了Linux内核中的一些主要数据结构,它们是构建和管理操作系统...

    linux下的sched头文件.docx

    该头文件中定义了一些与内存管理相关的数据结构,例如struct mm_struct和struct vm_area_struct等,这些数据结构用于实现Linux操作系统中的内存管理机制,对进程的内存管理起着重要的作用。 该头文件是Linux操作...

    linuxvm.pdf

    - `vm_area_struct`列表:用于表示地址空间中的各个区域,如文本段、数据段等。 - `pgd`:顶级页表指针。 - `refcount`:指向该内存空间的线程数。 #### 六、虚拟内存区域(VMAs) - **`vm_area_struct`结构体*...

    Linux虚拟存储技术的主要数据结构分析.pdf

    Linux虚拟存储空间管理主要依赖于三个层次的数据结构:vm_area_struct、mm_struct和page。vm_area_struct结构描述了进程虚拟地址空间中的一个区域,mm_struct结构则包含了进程所有虚拟地址空间区域的信息,而page...

    Linux内存描述符mm_struct实例详解

    本文将深入解析Linux内核中的内存描述符`mm_struct`,它是管理进程虚拟地址空间的关键数据结构。 `mm_struct`在`include/linux/mm_types.h`头文件中定义,它包含了进程地址空间的全部信息。以下是一些主要成员的...

    Linux设备驱动之mmap设备操作

    Linux 内核使用 `vm_area_struct` 结构体来描述虚拟内存区域,其中关键成员包括: - **vm_start**:虚拟内存区域的起始地址。 - **vm_end**:虚拟内存区域结束后的第一个字节地址。 - **vm_flags**:虚拟内存区域的...

    linux源代码分析之内存管理

    `vm_area_struct`是用于描述虚拟内存区域的数据结构。每个虚拟内存区域(如代码段、数据段等)都有对应的`vm_area_struct`实例。它包含了虚拟内存段的起始和结束地址、权限设置等信息。 ##### 2.7 rb_node_t `rb_...

    rmap.rar_physical

    逆向映射的核心数据结构是struct page的反向映射链表,即PageLRU字段。当一个虚拟页被映射时,这个链表会被更新,记录了所有映射到该物理页的虚拟页。这样,当需要知道哪些虚拟页使用了某个物理页时,只需遍历这个...

    Linux数据结构电子书.pdf

    《Linux数据结构》一书详尽地介绍了在Linux操作系统中使用的关键数据结构,这些数据结构是内核功能的基础。在Linux内核中,数据结构扮演着至关重要的角色,因为它们被用来组织和管理系统的资源,如文件、内存、设备...

    Linux的存储管理

    1. **地址空间 (struct mm_struct)**: 这是Linux内核为每个进程维护的一个数据结构,包含了进程的所有虚拟内存信息。`mm_struct`结构体中包含了诸如进程的代码和数据的起始地址、堆和栈的地址、内存引用计数、页目录...

    Linux数据结构电子书整理.pdf

    在Linux操作系统中,数据结构是内核的核心组成部分,它们用于高效地存储和处理各种系统资源。以下是基于给定内容的一些关键数据结构的详细说明: 1. **block_device_struct**: 这个结构体用于注册和管理块设备,如...

Global site tag (gtag.js) - Google Analytics