linux_虚存管理

上传人:c****d 文档编号:243024293 上传时间:2024-09-14 格式:PPT 页数:26 大小:145.50KB
返回 下载 相关 举报
linux_虚存管理_第1页
第1页 / 共26页
linux_虚存管理_第2页
第2页 / 共26页
linux_虚存管理_第3页
第3页 / 共26页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Linux,的虚存管理,BlueOcean,LisoLeg,小组,1,前言,内核开发者(非驱动程序员)的角度,只涉及虚拟存储管理,与其他OS的对比,没有定量分析,欢迎指定,2,提纲,简介,VM模型,相对2.0的改进,3,功能,大尺度虚拟地址空间支持,进程间保护,支持文件(包括设备)的内存映射,物理内存的平等使用,共享虚存,体系结构无关性,4,操作,进程,进程创建,终止,brk,sbrk,文件映射,paddr = mmap(addr,len,prot,flags,fd,offset);,munmap(addr,len);,mprotect(addr,len,prot);,5,VM,模型,进程地址空间,进程地址空间,进程地址空间,后援存储,后援存储,后援存储,物理内存(,as Cache),映射,数据,6,VM,模型(续),mm_struct,vm_area_struct,file,page,task_struct,页表,物理内存,后援文件(包括交换区,设备),inode,7,MMU,模型,分页机制,3级页表,pgd,,页目录,pmd,,页中级目录,pte,,页表项,内核空间=物理内存空间,8,mm_struct,struct mm_struct ,struct vm_area_struct *mmap;,struct vm_area_struct *mmap_avl;,struct vm_area_struct *mmap_cache;,pgd_t * pgd;,atomic_t count;,int map_count;,struct semaphore mmap_sem;,unsigned long context;,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 s;,unsigned long s;,void * segments;,;,VMA,链,,VMA AVL,树,和最近使用的,VMA Cache,指向,PGD,的指针,代码,数据,堆栈段的地址范围,9,mm_struct,操作,mm_alloc,,分配,mm_struct,结构,mmget,,引用,mm_struct,结构,mmput,,释放对,mm_struct,结构,mm_release,,释放地址空间体系结构相关部分,copy_mm,,复制整个地址空间,exit_mm,,释放整个地址空间,10,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 short vm_flags;,short vm_avl_height;,struct vm_area_struct * vm_avl_left;,struct vm_area_struct * vm_avl_right;,struct vm_area_struct *vm_next_share;,struct vm_area_struct *vm_pprev_share;,struct vm_operations_struct * vm_ops;,unsigned long vm_offset;,struct file * vm_file;,unsigned long vm_pte;,;,VMA,的地址范围,VMA,链,VMA,AVL,树,VMA,保护位和标志,共享,VMA,链,VMA,操作函数表,对应,file,及其偏移,11,vm_area_struct,12,vm_area_struct,操作,查询,,find_vma(struct mm_struct *mm, unsigned long addr);,插入,,insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma);,合并,,merge_segments(struct mm_struct *mm, unsigned long vm_start, unsigned long vm_end);,13,vm_operations_struct,open,close,unmap,protect,sync,advise,nopage,wppage,s,swapin,14,vm_operations_struct,Linux,中预定义的,vm_operations_struct,,,实现共享文件内存映射,,,实现私有文件内存映射,shm_vm_ops,,实现,Sys V SHM,某些文件系统,如,FAT,NCP,等,15,页面,typedef struct page ,struct page *next;,struct page *prev;,struct inode *inode;,unsigned long offset;,struct page *next_hash;,atomic_t count;,unsigned long flags;,struct wait_queue *wait;,struct page *pprev_hash;,struct buffer_head * buffers;, mem_map_t;,空闲页面链,or inode,页面链表,对应的,inode,及其偏移,buffer cache,头结构,贮留在内存中页面的,HASH,链表,16,页面管理,mem_map,page,结构数组,一一对应每一个页面,空闲页面管理,Buddy,系统,贮留页面管理,inode,链,贮留页面,HASH,链表,17,页面的组织,18,页表管理,页目录管理,页中级目录管理,页表项管理,19,页目录管理,20,页中级目录管理,21,页表项管理,22,页面失效处理,do_page_fault(arch/i386/fault.c),handle_mm_fault(mm/memory.c),handle_pte_fault(mm/memory.c),do_no_page(mm/memory.c),do_wp_page(mm/memory.c),do_s(mm/memory.c),23,相对2.0的改进,SMP,支持,per-CPU,资源,页表,Cache,用户空间访问,接口逐渐清晰,24,未来的计划,VM与FS接口的进一步分析,核心内存管理分析,2.3,2.4初步分析,定量分析,25,谢谢,26,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!