- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九讲虚拟内存管理(一)
* struct mm_struct { struct vm_area_struct * mmap; rb_root_t mm_rb; struct vm_area_struct * mmap_cache; pgd_t * pgd; atomic_t mm_users; atomic_t mm_count; int map_count; struct rw_semaphore mmap_sem; spinlock_t page_table_lock; struct list_head mmlist; 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; unsigned long rss, total_vm, locked_vm; unsigned long def_flags; unsigned long cpu_vm_mask; unsigned long swap_address; unsigned dumpable:1; mm_context_t context; }; 与mm_struct相关的函数 * 3.4 虚存区域(vm_area_struct) 进程的地址空间由若干互不重叠虚存区域组成,不同的虚存区域可能具有不同的访问权限和属性 提供更好的的安全性,灵活性 进程的所有内存区域可在/proc/PID/maps下查看 虚存区域映射到文件时,可以从vm_area_struct的vm_file指针找到对应文件的file结构体 file结构包含一个指向其inode的指针,inode结构则含有指向address_space结构的指针。address_space结构包含含一组文件系统函数指针,这些函数用来读写磁盘上的页面 * * struct vm_area_struct { struct mm_struct * vm_mm; // 所属的mm_struct结构体 unsigned long vm_start; // 其实地址 unsigned long vm_end; // 结束地址 /* linked list of VM areas per task, sorted by address */ struct vm_area_struct *vm_next; // 链表中下一个vm_area_struct pgprot_t vm_page_prot; // 页面的保护属性 unsigned long vm_flags; // 内存区域的标志和保护属性 rb_node_t vm_rb; // 红黑树 struct vm_area_struct *vm_next_share; struct vm_area_struct **vm_pprev_share; /* Function pointers to deal with this struct. */ struct vm_operations_struct * vm_ops; // 一组操作vm_area的函数 /* Information about our backing store: */ unsigned long vm_pgoff; struct file * vm_file; // 备份到文件时对应的file结构体 unsigned long vm_raend; void * vm_private_data; // 私有数据 }; vm_flags标志 * 保护标志 解释 VM_READ Pages may be read VM_WRITE Pages may be written VM_EXEC Pages may be executed VM_SHARED Pages may be shared VM_DONTCOPY VMA will not be copied on fork VM_DONTEXPAND Prevents a region being resized. Flag is unused 锁标志 解释 VM_LOCKED If set, the pages will not be swapped out. Set by mlock() VM_IO Signals that the area is a mmaped region for IO to a device VM_RESERVED
您可能关注的文档
最近下载
- 心理卫生与心理咨询00284.pdf VIP
- 新高一,第一次月考反思总结-高一上学期主题班会课件.pptx VIP
- 22-23年九上《道德与法治》期中试卷.pdf VIP
- 国开(SC)-安全原理-第4次形考作业-学习资料.docx VIP
- 道路交通信号灯设置与安装规范 GB14886-2016.docx VIP
- 最新苏教版六年级数学下册第一单元测试题.doc VIP
- 六年级语文质量分析语文工作总结PPT.pptx
- 2025至2030中国增塑剂(塑化剂)行业发展趋势分析与未来投资战略咨询研究报告.docx
- 智能学习环境构建在初中物理教学中的应用与效果评价教学研究课题报告.docx
- 2025民营经济促进法与案例讲座课件PPT.pptx
文档评论(0)