《liunx操作系统》课件14Linux内核简介-内存管理_第1页
《liunx操作系统》课件14Linux内核简介-内存管理_第2页
《liunx操作系统》课件14Linux内核简介-内存管理_第3页
《liunx操作系统》课件14Linux内核简介-内存管理_第4页
《liunx操作系统》课件14Linux内核简介-内存管理_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内存管理Huizhi Zhao12:26内存内存(Memory) 暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据计算机中所有程序的运行都是在内存中进行的RAM(Ramdom Access Memory),随机存取存储器,高速存取,如计算机内存等ROM(Read Only Memory),只读存储器,存取速度低,断电后信息不丢失,如计算机启动用的BIOS芯片12:26内存与硬盘内存是计算机的工作场所,内存中的信息会随掉电而丢失硬盘用来存放暂时不用的信息,硬盘中的信息可以长久保存CPU与硬盘不发生直接的数据交换,CPU只是通过控制信号指挥硬盘工作,硬盘上的信息只有在装入内存后才能被处理1

2、2:26笔记本结构示意图12:26Cache与buffer为提高整体I/O效率,把剩余内存划分为cache及buffer两部分加以利用,可以随时被重用写进Buffer的数据是为了写入其他设备,以块形式缓冲块设备的操作,一次性将很多改动写入硬盘,避免频繁写硬盘,提高写入效率写进cache的数据是为了其他设备从中读取,以页面形式缓存文件系统的文件,给需要的程序读取,避免频繁读硬盘,提高读效率12:26Linux中的Cache与bufferbuffers是指用来给文件系统做缓冲,只记录文件系统的中介数据,用来存储,目录里面有什么内容,权限等等cached是用来给数据做缓冲,用来保存所打开的文件内容1

3、2:26内存信息文件/proc/meminfo : 系统整体内存使用情况/proc/vmstat:虚拟内存使用的一些实时统计值和累计统计值/proc/swaps:交换分区大小/proc/(pid)/maps:进程的内存段映射信息12:26/proc/meminfo12:26free查看内存使用情况1035108=477976+557132937412=557132+42432+337848477976-97696=42432+337848=38028012:26vmstatr: 运行队列中进程数量b: 堵塞的进程数量in: 每秒中断数,包括时钟中断cs: 每秒上下文切换数12:26内存管理内存

4、中的每个位置由一个独一无二的地址标识,内存中的每个位置都包含一个值程序运行时,内存管理主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源在早期的计算机中,程序是直接运行在物理内存上的,程序在运行的过程中访问物理地址,不需要内存管理12:26内存管理内存为128M的机器上运行三个程序:程序A需要10M,程序B需要100M,程序C需要20M1,地址空间不能隔离(程序A需要访问11-128M地址段的数据,会导致B崩溃)2,同时运行程序时内存使用效率低(运行AC,需要把B交换出)3,重定位问题(程序中引用的数据和函数位置不确定)12:26内存管理在程序和物理内存间引入虚拟内存,对内存

5、进行分割(解决2问题),并使每个程序都有自己独立的进程地址空间(解决1、3问题)分段机制:将程序所需要的内存地址空间大小的虚拟空间映射到某个物理地址空间分页机制:把内存地址空间分为若干个很小的固定大小的页,每一页的大小由内存决定,提高内存利用率12:26三类地址逻辑地址:程序代码会产生逻辑地址,段中偏移地址线性地址:是逻辑地址到物理地址变换之间的中间层,逻辑地址加上相应段的基地址生成线性地址物理地址:通过查询页表将线性地址转变为地址总线上物理内存的地址信号,是地址变换的最终结果12:26内存管理单元Memory Mangement Unit,一个或一组芯片,负责从虚拟地址到物理地址的转化逻辑地

6、址是段标识加段内偏移量的形式,MMU通过查询段表,把逻辑地址转化为线性地址如果cpu开启了分页功能,MMU需要查询页表来将线性地址转化为物理地址12:26分段机制把程序按内容或函数关系分成段,每个段有自己的名字(编号)进程的虚拟存储空间都对应于一个由“段号:段 内偏移”构成的二维地址12:2612:26独立地址空间12:26Linux分页机制Linux逻辑地址等于线性地址,所有的段(用户代码段、用户数据段、内核代码段、内核数据段)的线性地址有相同的起始地址逻辑地址表示由两部分组成,表示该地址所在页面的页号p和表示页内位移d,即页内地址12:26分页机制逻辑空间分页将一个进程的逻辑地址空间划分成

7、若干大小相等的部分,每一部分称为页或页面,每页都有从0开始编号的页号内存空间分页把内存也划分成与页面相同大小的若干存储块,称为内存块或内存页面,每页都有一个页号,从0开始编号页面和内存块的大小是由硬件决定的12:26分页机制12:26地址转换12:26查看页面大小/usr/bin/time v pwd12:26查看页面大小getconf将系统配置变量值写入标准输出getconf PAGE_SIZE12:26分页存储为了找到每个页面在内存中对应的物理块,系统为进程设置了页面映射表(页表),实现页号到物理块号的地址映射在分页存储情况下,系统以内存块为单位把内存分给作业或进程,一个进程的若干页可分别装入物理上不相邻的内存块中进程的虚拟地址空间映射到机器的物理空间时具有更大的灵活性12:2612:26多级页表地址映射12:26linux内存管理使用交换和请求分页存储管理技术请求分页存储管理技术是在简单分页存储技术基础上发展起来的,提供虚拟存储器进程运行时,不必把整个进程映射都放在内存中,只需在内存中保留当前用到的那一部分页面,减少对换时间和所需内存空间允许进程大小可大于可用内存的总量,并允许更多进程同时在内存中执行12:26请求分页内存管理示意图12:26请求分页内存管理使得应用程序认为它拥有连续的可用的内存(一个连续完整的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论