欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    进程虚拟地址空间03G1.ppt

    • 资源ID:5330969       资源大小:959.03KB        全文页数:10页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    进程虚拟地址空间03G1.ppt

    进程虚拟地址空间(03G-1),进程地址空间,struct mm_struct struct vm_area_struct*mmap;/*指向虚拟区域(VMA)链表*/rb_root_t mm_rb;*指向red_black树*/struct vm_area_struct*mmap_cache;/*指向最近找到的虚拟区间*/pgd_t*pgd;*指向进程的页目录*/atomic_t mm_users;/*用户空间中的有多少用户*/atomic_t mm_count;/*对struct mm_struct有多少引用*/int map_count;/*虚拟区间的个数*/struct list_head mmlist;/*所有活动(active)mm的链表*/unsigned long start_code,end_code,start_data,end_data;unsigned long start_brk,brk,start_stack;unsigned long arg_start,arg_end,env_start,env_end;,内核使用mm_struct来描述一个进程的虚拟地址空间,struct vm_area_struct:用来描述一个虚拟内存区域(VMA)。内核将每个内存区域作为一个单独的内存对象管理,每个内存区域都有一致的属性,比如权限等。所以我们程序的代码段、数据段和bss段在内核里都分别有一个struct vm_area_struct 结构体来描述,struct vm_area_struct struct mm_struct*vm_mm;/*虚拟内存区域所在的地址空间*/unsigned long vm_start;/*在虚拟内存中的起始地址*/unsigned long vm_end;/*在虚拟内存中的结束地址*/struct vm_area_struct*vm_next;pgprot_t vm_page_prot;/*对这个虚拟内存区域的存取权限*/unsigned long vm_flags;/*虚拟内存区域的标志.*/rb_node_t vm_rb;/*对这个虚拟内存区域进行操作的函数*/struct vm_operations_struct*vm_ops;struct file*vm_file;/*File we map to(can be NULL).*/;,vm_flags的取值:VM_READ:此虚拟内存区域可读VM_WRITE:此虚拟内存区域可写VM_EXEC:此虚拟内存区域可执行VM_SHARED:此虚拟内存区域可共享VM_IO:此虚拟内存区域映射设备I/O空间,用户空间的mmap,测试:把一个文件用mmap()映射到进程地址空间里后,直接访问文件内容,有了write/read,为什么还需要mmap?,用户空间的mmap()会通过系统调用调用到内核的do_mmap()函数。do_mmap()函数会:1.首先创建一个新的VMA并初始化,然后加入进程的虚拟地址空间里。2.然后调用驱动的mmap函数建立上述用户空间的VMA和驱动空间的内存地址之间的联系(建立页表),用户空间mmap的内核实现,建立vma和物理地址的映射的工作由remap_pfn_range来完成,原型如下:int remap_pfn_range(struct vm_area_struct*vma,unsigned long virt_addr,unsigned long pfn,unsigned long size,pgprot_t prot);vma 需要建立映射的VMAvirt_addr 需要建立映射的VMA的起始地址pfn 页帧号,对应虚拟地址应当被映射的物理地址.这个页帧号简单地是物理地 址右移 PAGE_SHIFT 位size 需要建立映射的VMA的大小,以字节.prot 使用在 vma-vm_page_prot 中找到的值.,驱动的mmap建立虚拟地址和 物理地址的映射,

    注意事项

    本文(进程虚拟地址空间03G1.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开