已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验8 Linux的内存管理 一、实验目的 二、实验工具与设备 三、实验预备知识 四、实验内容和步骤 五、实验总结 一、实验目的 1理解虚拟内存、磁盘缓存的概念。 2掌握基本的内存管理知识。 3掌握查看实时查看内存、内存回收的方 法。 二、实验工具与设备 装有Linux系统的计算机。 三、实验预备知识 Linux的内存管理相当完善,一般不需要 用户特别干预。 进程是运行于虚拟地址空间的程序。可 以说,任何在Linux系统下运行的程序都是进 程。大多数的进程都需要虚拟内存。 对于典型的Linux应用系统,128MB内存 是合理的选择。如果不运行X Windows系统, 在一台特殊用途的计算机(如用于调试设备驱 动程序的“崩溃和烧毁”系统)上,仅用8MB 内存即可工作。 1实时监控内存使用情况 (1)在命令行用“free”命令监控内存使用 情况 在提示符后输入命令free:free 表8-1所示为输出情况。 totalusedfreesharedbufferscached Mem:25602419228463740010676101004 /+8060475420 buffers/cache: Swap:5220720522072 表8-1 一个256MB的RAM和512MB交换空间的系统情况 表8-1中第二行输出(Mem:)显示物理 内存:total列显示共有的可用内存(不显示 核心使用的物理内存,通常大约1MB), used列显示被使用的内存总额,free列显示 全部空闲的内存,shared列显示多个进程共 享的内存总额,buffers列显示磁盘缓存的当 前大小。 表8-1中第二行输出(Swap)显示交换 空间的信息,与上一行类似。如果该行为全 0,则没有使用交换空间。 缺省状态下,free命令以千字节(即 1024字节为单位)显示内存使用情况。若使 用-h参数,则以字节为单位显示内存使用情 况;若使用-m参数,则以兆字节为单位显示 内存使用情况。 若命令带-s参数,则不间断地监视内存 使用情况:free -b -s5。 该命令在终端窗口中连续不断地报告内 存的使用情况,每5秒钟更新一次。 (2)用vmstat命令监视虚拟内存使用情况 在提示符后面输入命令vmstat,显示表8-2 所示信息。 procs-memoryswapiosystemcpu rbwswpdfreebuffcachesisobiboincsussyid 10006369210704101008002394212610548457 表8-2 输入命令vmstat显示的信息 vmstat命令是一个通用监控程序,是 Virtual Memory Statistics(虚拟内存统计) 的缩写。如果vmstat命令没有带任何命令行 参数,将得到一次性的报告。 vmstat命令报告主要的活动类型有进程 (procs)、内存(以千字节为单位)、交换 分区(以千字节为单位)、来自块设备(硬 盘驱动器)的输入输出量、系统中断(每秒 钟发生的次数),以及中央处理单元(CPU )分配给用户、系统和空闲时分别占用的比 例。 2虚拟内存实现的机制 由于人们需要的内存容量远远大于物理 内存容量,因而有各种策略来解决这个问题 ,其中最成功的是虚拟内存技术。 Linux支持虚拟内存,即用磁盘作为 RAM的扩展,相当于扩大了可用内存。运行 于Linux的程序只看到大量的可用内存,而不 关心哪些在磁盘上。读写硬盘比读写内存慢 (大约为读写内存速度的千分之一),因而 程序运行较慢。用于虚拟内存的硬盘空间称 为交换空间。 Linux虚拟内存的实现需要6种机制的 支持:地址映射机制、内存分配回收机制 、缓存和刷新机制、请求页机制、交换机 制和内存共享机制。 内存管理程序通过映射机制把用户程序的逻辑 地址映射到物理地址。当用户程序运行时,如果发现 程序需要的虚地址没有对应的物理内存,即发出请求 页要求。如果有空闲的内存可供分配,就请求分配内 存(用到内存的分配和回收),并把正在使用的物理 页记录在缓存中(用到缓存机制)。如果没有足够的 内存可供分配,则调用交换机制,腾出一部分内存。 另外,在地址映射中要通过TLB(翻译后援存储器) 寻找物理页;交换机制中用到交换缓存,并且把物理 页内容交换到交换文件中,也要修改页表来映射文件 地址。Linux虚拟内存实现原理如图8-1所示。 图8-1 Linux虚拟内存实现原理 一般建议虚拟内存容量应当按物理内 存的两倍进行分配。如果物理内存有 256MB或更多时,可以缩小虚拟内存。 Linux将把大量的内存用于Cache,在资源 紧张时收回。只要看到swap为0,或该数很 小即可放心,内存放着不用才是最大的浪 费。 3内存泄漏和回收内存的方法 (1)内存泄漏的定义 通常所说的内存泄漏是指堆内存的泄漏。堆 内存是指程序从堆中分配的、大小任意的(内存块 的大小可以在程序运行期决定)、使用完后必须显 示释放的内存。应用程序一般使用malloc、realloc 、new等函数从堆中分配到一块内存,使用完后, 程序必须负责相应的调用free或delete释放该内存块 。否则,这块内存不能被再次使用,这时就说这块 内存泄漏了。 (2)内存泄漏的危害 从用户使用程序的角度来看,内存泄漏本身 不会产生什么危害。作为一般的用户,根本感觉不 到内存泄漏的存在。真正有危害的是内存泄漏的堆 积,这会最终耗尽系统所有的内存。从这个角度来 说,一次性内存泄漏没有什么危害,因为它不会堆 积。隐式内存泄漏危害性则非常大,因为较之于常 发性和偶发性内存泄漏,它更难被检测到。存在内 存泄漏问题的程序除了会占用更多的内存外,还会 使程序的性能急剧下降。对于服务器而言,如果出 现这种情况,即使系统不崩溃,也会严重影响使用 。 (3)内存泄漏的检测和回收 编写指针比较多的复杂程序时,可能会 遇到内存溢出之类的麻烦。在Linux或UNIX 下,C和C+语言是最常使用的编程工具。 但是,C+程序缺乏相应的手段来检测内存 信息,只能用top指令观察进程的动态内存总 额。而且程序退出时,无法获知任何内存泄 漏信息。 4使用Linux命令回收内存 可以用ps、kill两个命令检测内存使用 情况和进行回收。使用超级用户权限时,用 命令“ps”可列出所有正在运行的程序名称和 对应的进程号(PID)。kill命令的工作原理 是向Linux操作系统的内核送出一个系统操作 信号和程序的进程号(PID)。 以下例子说明如何用命令ps和参数v来 高效率回收内存: ps v PIDTTYSTATTIMEMAJFLTRSDRSRSS%MEMCOMMAND 2530vc/1S0:00104613254080.1/sbin/mingetty tty1 2531vc/2S0:00104613254080.1/sbin/mingetty tty2 2532vc/3S0:00104613254080.1/sbin/mingetty tty3 2533vc/4S0:00104613254080.1/sbin/mingetty tty4 2534vc/5S0:00104613254080.1/sbin/mingetty tty5 2535vc/6S0:00104613254080.1/sbin/mingetty tty6 2639pts/1S0:005451626439680.3su 2684pts/1S0:00361586250115920.6bash 2711pts/0S0:005451626439680.3su 2714pts/0S0:00361586250115920.6bash 2754pts/2S0:005451626439680.3su 2757pts/2S0:00361586250115920.6bash 2818pts/1S0:001202914784800.1ping 192.168.1.7 2939pts/2R0:001565824696440.2ps -v 以下命令可以回收ping命令的内存: kill 9 2818 四、实验内容和步骤 1监控内存使用情况 用“free”命令监控内存使用情况: free f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邮政业务服务合同范本
- 2025年专升本学前教育模拟测试试卷(含答案)
- 物业车位外租合同范本
- 2025年考研医学专业病理学重点梳理试卷(含答案)
- 物业专项外包合同范本
- 2025年高二语文上学期现代文阅读卷
- 设备货物转让合同范本
- 行吊生产安装合同范本
- 社保委托协议解除合同
- 社保卡网上申请协议书
- 电气用电安全知识培训
- 酒店点菜技巧培训
- 2025年心理b证笔试试题及答案
- 2024-2025学年新乡市一中八年级上册期末考试数学试卷(含部分答案)
- 高一上学期统编版(2019)必修中外历史纲要上翻书大赛课件
- 《海南历史文化》课件
- 《初级会计实务》(第五版) 第三章 流动资产
- 主变防火墙脚手架搭设施工安全技术交底
- 三减三健课件
- 山西省晋中市四校联考2024-2025学年八年级上学期期中考试物理试卷(无答案)
- 《霸王别姬》电影赏析
评论
0/150
提交评论