当前位置: 首页 > news >正文

个人网站怎么做有创意网站建设工作讲话

个人网站怎么做有创意,网站建设工作讲话,公众平台网站价格,别样海外购怎么开店在32位的系统上,线性地址空间可达到4GB,这4GB一般按照3:1的比例进行分配,也就是说用户进程享有前3GB线性地址空间,而内核独享最后1GB线性地址空间。由于虚拟内存的引入,每个进程都可拥有3GB的虚拟内存,并且…

在32位的系统上,线性地址空间可达到4GB,这4GB一般按照3:1的比例进行分配,也就是说用户进程享有前3GB线性地址空间,而内核独享最后1GB线性地址空间。由于虚拟内存的引入,每个进程都可拥有3GB的虚拟内存,并且用户进程之间的地址空间是互不可见、互不影响的,也就是说即使两个进程对同一个地址进行操作,也不会产生问题。在前面介绍的一些分配内存的途径中,无论是伙伴系统中分配页的函数,还是slab分配器中分配对象的函数,它们都会尽量快速地响应内核的分配请求,将相应的内存提交给内核使用,而内核对待用户空间显然不能如此。用户空间动态申请内存时往往只是获得一块线性地址的使用权,而并没有将这块线性地址区域与实际的物理内存对应上,只有当用户空间真正操作申请的内存时,才会触发一次缺页异常,这时内核才会分配实际的物理内存给用户空间。

用户进程的虚拟地址空间包含了若干区域,这些区域的分布方式是特定于体系结构的,不过所有的方式都包含下列成分:

  • 可执行文件的二进制代码,也就是程序的代码段
  • 存储全局变量的数据段
  • 用于保存局部变量和实现函数调用的栈
  • 环境变量和命令行参数
  • 程序使用的动态库的代码
  • 用于映射文件内容的区域

由此可以看到进程的虚拟内存空间会被分成不同的若干区域,每个区域都有其相关的属性和用途,一个合法的地址总是落在某个区域当中的,这些区域也不会重叠。在linux内核中,这样的区域被称之为虚拟内存区域(virtual memory areas),简称 VMA。一个vma就是一块连续的线性地址空间的抽象,它拥有自身的权限(可读,可写,可执行等等) ,每一个虚拟内存区域都由一个相关的 struct vm_area_struct 结构来描述。

从进程的角度来讲,VMA 其实是虚拟空间的内存块,一个进程的所有资源由多个内存块组成,所以,一个进程的描述结构 task_struct 中首先包含Linux的内存描述符 mm_struct 结构。

struct task_struct {
.......struct mm_struct *mm;
.......
}

mm_struct 中进而包含了 vm_area_struct :

struct mm_struct {struct vm_area_struct * mmap;       /* list of VMAs */struct rb_root mm_rb;struct vm_area_struct * mmap_cache;      /* last find_vma result */
.......
}

一个进程的每个 VMA 块都会链接到中的链表和红黑树:

1. mmap 形成一个单链表,一个进程的所有 VMA 都链接到这个链表,链表头是 mm->mmap

2. mm_rb 是红黑树节点,每个进程都一个 VMA 红黑树

VMA 按照起始地址递增的方式,插入到 mm_struct->mmap 链表。当进程拥有大量的 VMA 的时候,搜索效率比较低,所以哟娜那个到红黑树来加快查找。

接下来看看这次的主角 vm_area_struct

struct vm_area_struct {struct mm_struct * vm_mm;	/* 所属的内存描述符 */unsigned long vm_start;    /* vma的起始地址 */unsigned long vm_end;		/* vma的结束地址 *//* 该vma的在一个进程的vma链表中的前驱vma和后驱vma指针,链表中的vma都是按地址来排序的*/struct vm_area_struct *vm_next, *vm_prev;pgprot_t vm_page_prot;		/* vma的访问权限 */unsigned long vm_flags;    /* 标识集 */struct rb_node vm_rb;      /* 红黑树中对应的节点 *//** For areas with an address space and backing store,* linkage into the address_space->i_mmap prio tree, or* linkage to the list of like vmas hanging off its node, or* linkage of vma in the address_space->i_mmap_nonlinear list.*//* shared联合体用于和address space关联 */union {struct {struct list_head list;/* 用于链入非线性映射的链表 */void *parent;	/* aligns with prio_tree_node parent */struct vm_area_struct *head;} vm_set;struct raw_prio_tree_node prio_tree_node;/*线性映射则链入i_mmap优先树*/} shared;/** A file's MAP_PRIVATE vma can be in both i_mmap tree and anon_vma* list, after a COW of one of the file pages.	A MAP_SHARED vma* can only be in the i_mmap tree.  An anonymous MAP_PRIVATE, stack* or brk vma (with NULL file) can only be in an anon_vma list.*//*anno_vma_node和annon_vma用于管理源自匿名映射的共享页*/struct list_head anon_vma_node;	/* Serialized by anon_vma->lock */struct anon_vma *anon_vma;	/* Serialized by page_table_lock *//* Function pointers to deal with this struct. *//*该vma上的各种标准操作函数指针集*/const struct vm_operations_struct *vm_ops;/* Information about our backing store: */unsigned long vm_pgoff;		/* 映射文件的偏移量,以PAGE_SIZE为单位 */struct file * vm_file;		    /* 映射的文件,没有则为NULL */void * vm_private_data;		/* was vm_pte (shared mem) */unsigned long vm_truncate_count;/* truncate_count or restart_addr */#ifndef CONFIG_MMUstruct vm_region *vm_region;	/* NOMMU mapping region */
#endif
#ifdef CONFIG_NUMAstruct mempolicy *vm_policy;	/* NUMA policy for the VMA */
#endif
};

所以进程的 VMA 的组织为:

 

http://www.yayakq.cn/news/459197/

相关文章:

  • 南阳网站排名优化公司莱芜住房和城乡建设部网站
  • 整站seo优化公司代理加速器
  • 外贸品牌网站设计公司手机网站怎么做的好
  • 南阳网站推广优化公司哪家好如何做一个电商
  • 网站方案制作的培训苏州app推广团队
  • 广州企业模板建站手机 网站 翻页 外部
  • 大气企业网站源码php成都甲壳虫品牌设计公司
  • 做移动端网站设计设计师之家官网首页
  • 寿光网站建设公司做洗化的网站
  • 上海怎样建设网站7一12岁手工玩具小制作
  • 南京网站建设的公司wordpress 社交模板
  • 做当地门户网站多少钱湖北省建设工程造价管理站网站
  • 电商网站功能列表wordpress 模拟装机
  • 三屏网站建设泸州市建设工程管理局网站
  • 乌市昌吉州建设局网站新西兰网站后缀
  • 阿里云1M做网站深圳做网站建设开发
  • 如果做网站赚钱加工厂怎么接外贸订单
  • 原生态旅游网站开发需求分析网页图片怎么下载
  • 什么网站可以做设计赚钱的吗律师网站建设哪家专业
  • 四川专做餐饮的网站网络营销专业建议
  • 开发技术网站开发技术wordpress autop
  • 哪里做网站做的好石家庄网站建设的公司
  • 信息服务平台有哪些网站网站怎么怎么做关键字
  • 网站图标只做做快手头像的网站
  • 如何做跨境购物网站公司网站策划
  • 创新的商城网站建设网站做备案关停会显示什么
  • 网站cms分站系统济宁市网站建设
  • 微信显示个人网站个人网页设计作品 布局
  • dede可以做商城网站吗企业网站建设与营运计划书
  • 深圳网站建设 推广朝阳网站建设是什么意思