- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.2LINUX存储管理
LINUX存储管理 存储管理的责任 内存分配 确保独占使用 支持合作进程间的内存共享 内存的换入与换出 地址空间 地址空间(address space)是一段表示内存位置的地址范围。地址空间有两种: 物理地址空间 逻辑地址空间,也被称为虚拟地址空间 在逻辑地址和物理地址之间相互转换的工作是由内核和硬件内存管理单元(MMU—memory management unit)共同完成的。 MMU是被集成进现代的CPU里的,它们都是同一块CPU芯片内的一个部分。内核告诉MMU如何为每个进程把某逻辑页面映射到某特定物理页面,而MMU在进程提出内存请求时完成实际的转换工作。 LINUX的虚拟地址划分 每一个用户进程都可以访问4GB的线性虚拟内存空间。 从0到3GB的虚拟内存地址是用户空间,用户进程可以直接对其进行访问。 从3GB到4GB的虚拟内存地址为核心态空间,存放仅供核心态访问的代码和数据,用户态进程不可访问。 所有进程从3GB到4GB的虚拟空间都是一样的,有同样的页目录项,同样的页表,对应到同样的物理内存段。LINUX以此方式让内核态进程共享代码段和数据段。 虚拟地址转换 TLB 转换后备缓存(Translation Lookaside Buffers:TLBs) 如果简单的执行从逻辑地址到物理地址的转换过程,在跟踪指针链时将会需要几个内存引用。RAM虽然不像磁盘那么慢,但是仍然比CPU要慢的多,这样就容易形成性能的瓶颈。为了减少这种开销,最近被执行过的地址转换结果将被存储在MMU的转换后备缓存(translation lookaside buffers:TLBs)内。 虚存段(VMA)的组织和管理 VMA:vitual memory area 一个vma段是某个进程的一段连续的虚存空间;在这段虚存里的所有单元拥有相同的特征。例如:属于同一进程,相同的访问权限,同时被锁定(locked),同时受保护(protected),等等。 进程通常占用几个vma段,分别用于代码段、数据段、堆栈段等。 属于同一进程的vma段通过vm_next指针连接,组成链表。 对于一个给定的进程,两个VMAs决不会重叠,一个地址最多被一个VMA所覆盖;进程从未访问过的的一个地址将不会在任何一个VMA中。 struct mm_struct结构的成员struct vm_area_struct * mmap 表示进程的vma链表的表头。 虚存段(VMA)的组织和管理 当一个进程有多于avl_min_map_count数目的VMA时,内核也会创建一个AVL树来存储它们,此时仍然是使用VMAs自己的指针对该树进行管理。AVL树是一个平衡二叉树结构,因此这种方法在VMA数量巨大时查找效率十分高。 AVL树 PCB对内存的控制 交换空间 两种交换空间: 一种用整个块设备,如硬盘的一个分区,称作交换设备,效率较高; 另一种用文件系统中固定长度的文件,称作交换文件,效率较低。 LINUX允许并管理MAX_SWAPFILES个交换空间(MAX_SWAPFILES的缺省值为8)。 交换空间的格式 前4096字节是一个以字符串 “SWAP_SPACE”结尾的位图。 位图的每一位(bit)对应一个交换空间的页面,置位表示对应的页面可用于换页操作。 第4096字节之后则是真正存放换出页面的空间。 这样,每个交换空间最多可容纳 (4096-10)* 8 – 1 = 32687个页面。 启用交换空间 int sys_swapon(const char * swapfile, int swapflags); 第一个参数swapfile是设备名或文件名 swapflags规定交换空间的优先数。该参数中 SWAP_FLAG_PREFER(0X8000)必须置位 SWAP_FLAG_PRIO_MASK(0X7FFF)指定一个正的优先数。如果没有指定优先数,swapon自动给出一个负的优先数,负优先数的取值决定于swapon的调用次数。 每注册一个交换空间,就在swap_info表中填一项swap_info_struct结构 25 struct swap_info_struct swap_info[MAX_SWAPFILES]; 49 struct swap_info_struct { 50 unsigned int flags; /* 如果SWP_USED位置位,则被占用。如果SWP_WRITEOK,则该交换空间准备就绪。 */ 51 kdev_t swap_device; /* 对于交换设备,swap_device属性表示交换设备的主、次设备号 */ 52 spinlock_t sdev_loc
您可能关注的文档
- 小学英语三年级Unit 1 I like red.ppt
- 实验一进程与线程.ppt
- 第四章 选择结构程序设计(B级).doc
- 同等学力西医综合考试大纲(第四版).doc
- 3546-ch7 Winsock服务提供者接口(SPI)1.ppt
- 四年级上册语文简案(3.4单元).docx
- 实验四、进程通信(二) ——消息通信.doc
- Risk assessment I 审计评估.ppt
- 第7章_中断和中断控制器_2010_I.ppt
- 四(上)看拼音写词语.doc
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
文档评论(0)