多核系统中的内存管理系统优化研究
发布时间:2020-05-19 05:42
【摘要】: 多年以来,主流的处理器生产厂商用来提高处理器性能的传统方法如提升时钟速度和指令吞吐量等,似乎已经走到了尽头。多核多线程已经成为当今处理器发展的潮流和趋势。多线程(如同时多线程SMT)能充分发挥单个内核的性能,而多核能更好地发挥整个系统的性能。多核时代的来临,意味着处理器能有更低的功耗,更强的效能,更高的并行性。多核技术的发展不仅是硬件行业的任务,要从其中获得充分的效益,软件行业的共同进步是必不可少的,这意味着习惯了在单核环境中编程的软件开发人员必须转变思想,拥抱变化,软件开发史上的又一次重大变革不可避免地即将来临。 相比较单核处理器而言,多核对软件带来的挑战主要是多核能实现真正的线程级的并行。要编写正确的高效的支持多核的软件,开发人员必须更小心地划分私有数据和共享数据,并妥善解决共享数据可能产生的争用。本文探讨了多核处理器的一些典型特征以及多核系统对软件带来的新的挑战。 操作系统作为计算机软件的核心,要使多核处理器的性能得到充分发挥,操作系统必须要提供足够的支持。从软件角度来看,多核(单芯片多处理器,CMP)与对称多处理器(SMP)几乎是一样的,那些提供了SMP支持的操作系统同样可以提供对多核的有效支持。 内存管理系统作为操作系统内核的核心组成部分之一,对整个系统的性能有着决定性的影响。本文深入探讨了Linux内存管理系统的框架,设计思想以及实现细节,仔细研究了地址映射,物理页的分配和释放,内存管理区及伙伴系统,SLUB系统,进程地址空间的分配和释放,页框的回收和交换等子模块的设计和实现。 本文提出了对SLUB系统和伙伴系统在多核环境下的改进思路和方法。此外,本文还对作为实现多核互斥基础的自旋锁提出了使用MCS自旋锁的改进。
【图文】:
图 3-4 进程的线性地址布局3.11.1 查找和插入线性区函数 find_vma (struct mm_struct * mm, unsigned long addr)用于查找其结束地址大于 addr 的且与给的的地址 addr 最接近的线性区。它的原型是:struct vm_area_struct *find_vma(struct mm_struct * mm, unsigned longaddr)它的执行流程如下:(1) 先检查 addr 是否在 mmap_cache 中,如在直接返回 mmap_cache即可(mmap_cache 的命中率典型情况下约为 35%)。(2) addr 不在 mmap_cache 中,则在红黑树中查找线性区。(3) 将 mmap_cache 更新为找到的线性区。(4) 返回找到的线性区。
【学位授予单位】:电子科技大学
【学位级别】:硕士
【学位授予年份】:2009
【分类号】:TP332.3
本文编号:2670430
【图文】:
图 3-4 进程的线性地址布局3.11.1 查找和插入线性区函数 find_vma (struct mm_struct * mm, unsigned long addr)用于查找其结束地址大于 addr 的且与给的的地址 addr 最接近的线性区。它的原型是:struct vm_area_struct *find_vma(struct mm_struct * mm, unsigned longaddr)它的执行流程如下:(1) 先检查 addr 是否在 mmap_cache 中,如在直接返回 mmap_cache即可(mmap_cache 的命中率典型情况下约为 35%)。(2) addr 不在 mmap_cache 中,则在红黑树中查找线性区。(3) 将 mmap_cache 更新为找到的线性区。(4) 返回找到的线性区。
【学位授予单位】:电子科技大学
【学位级别】:硕士
【学位授予年份】:2009
【分类号】:TP332.3
【引证文献】
相关期刊论文 前1条
1 李勇;任宏;王志林;;基于嵌入式系统的e_slab研究与实现[J];微型机与应用;2012年12期
相关博士学位论文 前1条
1 蒋建春;异构多核嵌入式软件关键问题研究[D];重庆大学;2011年
相关硕士学位论文 前2条
1 李勇;虚拟机监控器内存管理机制研究与实现[D];解放军信息工程大学;2010年
2 李明;多核路由器动态内存分配器的设计与实现[D];南京理工大学;2011年
,本文编号:2670430
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2670430.html