- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 Linux存储器管理 第五章 Linux存储器管理 5.1 Linux的虚拟内存管理 5.2 Linux 系统采用三级页表 5.3 内存页的分配与释放 5.4 内存交换 5.5 内存共享和保护 5.6 缺页中断 5.7 监控内存软件 5.1 Linux存储器管理 Linux操作系统采用虚拟内存管理机制管理存储资源为多进程提供有效共享。Linux 操作系统使用交换和请求分页存储管理技术实现虚拟内存管理。 这种策略使进程的虚拟地址空间映射到机器的物理空间时具有更大的灵活性,通常允许进程的大小可大于可用内存的总量,允许更多进程同时在内存中执行。 5.1 linux的虚拟内存管理 Linux 的虚拟内存管理功能: (1)地址空间扩充。 (2)进程保护。 (3)内存映射。 (4)物理内存分配。 5.2 Linux 系统采用三级页表 所有进程从3~4GB的虚拟内存地址都是一样的,有相同的页目录项和页表,对应到同样的物理内存段,Linux以此方式让内核态进程共享代码段和数据段。Linux采用请求页式技术管理虚拟内存。 Linux页表分为3级结构: 页目录(Page Directory,PGD) 中间页目录(Page Middle Directory,PMD) 页表(Page Table,PT)。 5.2 Linux 系统采用三级页表 5. 3 内存页的分配与释放 当一个进程开始运行时,系统要为其分配一些内存页;当进程结束运行时,要释放其所占用的内存页。一般地,Linux系统采用位图和链表两种方法来管理内存页。 位图可以记录内存单元的使用情况。它用一个二进制位(bit)记录一个内存页的使用情况:如果该内存页是空闲的,则对应位是1;如果该内存页已经分配出去,则对应位是0。 5. 4内存交换 当系统出现内存不足时,Linux 内存管理子系统就要释放一些内存页,从而增加系统中空闲内存页的数量。 在系统启动时,这一守护进程由内核的INIT进程启动,按核心交换时钟开始或终止工作。每到一个时钟周期结束,kswapd便查看系统中的空页内存块数,通过变量free_pages_high和free_pages_low来决定是否需要释放一些页面。 5. 4内存交换(续) 使用下列3种方法减少系统中正在使用的物理页面。 (1)减少缓冲区和页面cache的大小。 (2)换出SYSTEMV的共享内存页。 (3)换出或丢弃内存页面。 5. 5 内存共享和保护 Linux中内存共享是以页共享的方式实现的,共享该页的各个进程的页表项直接指向共享页,这种共享不需建立共享页表,节省内存空间,但效率较低。 Linux可以对虚存段中的任一部分加锁或保护。对进程的虚拟地址空间实施保护操作,就是重新设置vma段的访问权限,实质就是对vma段的vm_flags重置PROT_READ、PROT_WRITE和PROT_EXEC参数,并重新设定vm_page_prot属性。 5. 6缺页中断 磁盘中的可执行文件映像一旦被映射到一个进程的虚拟空间,它就开始执行。 当一个进程访问了一个还没有有效页表项的虚拟地址时,处理器将产生缺页中断,通知操作系统,并把缺页的虚拟地址(保存在CR2寄存器中)和缺页时访问虚存的模式一并传给Linux的缺页中断处理程序。 Linux使用最少使用频率替换策略,页替换算法在clock算法基础上作了改进,使用位被一个8位的age变量所取代。 5. 7 监控内存软件 内存是Linux内核所管理的最重要的资源之一。 监控内存软件分别有:free、Vmstat以及图形化工具系统监视器,下面对其进行介绍。 1.free 语法: free [-bkmotV] [-s ] 参数: -b 以Byte为单位显示内存使用情况; -k 以KB为单位显示内存使用情况; -m 以MB为单位显示内存使用情况; -o 不显示缓冲区调节列; -s 持续观察内存使用状况; -t 显示内存总和列; -V 显示版本信息。 2.Vmstat vmstat是Virtual Meomory Statistics(虚拟内存统计)语法:vmstat
原创力文档


文档评论(0)