内存管理
文章平均质量分 79
persistent_db
。
展开
-
内存管理笔记三、单道编程的内存管理
内存管理笔记三、单道编程的内存管理引言:最简单的内存管理是单道程序下的内存管理。内存管理笔记三、单道编程的内存管理1、基本概念2、地址独立与地址保护实现3、固定地址的内存管理优缺点1、基本概念 在单道编程环境下,整个内存里面只有两个程序:一个是用户程序,另外一个是操作系统。由于只有一个用户程序,而操作系统所占用的内存空间是恒定的,我们可以...原创 2018-01-18 16:39:44 · 1079 阅读 · 0 评论 -
内存管理笔记十一、CPU三级缓存、冷热页及自旋锁概念
内存管理笔记十一、CPU三级缓存、冷热页及自旋锁概念引言:在上一篇笔记中,介绍了buddy 伙伴系统其适用于大内存的物理地址分配,在查阅相关资料的过程中,看到了冷热页,进而接触到CPU三级缓存和自旋锁的概念。这里仅对其概念做一个简单的记录。一、CPU的三级缓存1.1、缓存简介: CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小...原创 2018-03-11 22:36:17 · 1369 阅读 · 0 评论 -
内存管理笔记十、buddy伙伴系统
内存管理笔记十、buddy伙伴系统引言:上一篇笔记中,我们介绍了段页式的内存管理方式其不仅获得分段和分页的好处,又规避了单纯分段和分页的缺陷。这看似是一个完美的解决方案。但每次申请内存,均要完成虚拟地址至物理地址的映射、要改写内核的页表项、刷新TLB,以页为单位降低了内存分配速度。因此linux在段页式内存管理基础上,增加伙伴系统分配机制,可以理解为以空间换取时间和性能的机制。...原创 2018-03-11 19:57:42 · 4460 阅读 · 1 评论 -
内存管理笔记九、段页式内存管理
内存管理笔记九、段页式内存管理引言:在前面几篇笔记中,我们介绍到内存管理的多种方式,包括单道编程下固定加载地址,多道编程下固定分区、非固定分区、分页式内存管理,这些是内存管理模式不断演进的过程,本篇笔记将介绍现今广泛使用的段页式内存管理模式。至此,内存管理模式的演进基本就结束了,后面关于内存管理的笔记,将重在实践实现,包括虚拟内存性能调整、slab分配机制、buddy算法等学习。一、分...原创 2018-03-10 11:08:12 · 1203 阅读 · 0 评论 -
内存管理笔记八、页面置换算法
内存管理笔记八、页面更换算法引言:在第七篇内存管理笔记,有介绍到分页的内存管理。其克服了外部碎片、程序不能大于物理内存等缺点。本篇笔记将简单介绍常见的页面更换算法思想。内存管理笔记八、页面更换算法一、页面需更换的原因二、页面更换期待达到的目标三、常见算法的思想3.1、随机更换算法3.2、先进先出算法(FIFO)3.3、第二次机会算法3.4、时钟算法3.5、最优更...原创 2018-03-09 16:40:29 · 813 阅读 · 0 评论 -
内存管理笔记七、页式内存管理
内存管理笔记七、页式内存管理引言:内存管理就是要将各种媒介组建成一体,形成一个巨无霸似的虚拟存储系统。第六篇笔记,介绍了非固定分区内存管理方式,本篇笔记将分析其存在的问题,并就此引出页式内存管理。内存管理笔记七、页式内存管理一、Swap交换存在的问题1.1、大量的外部碎片1.2、地址空间增长困难二、分页内存管理引入2.1、Swap交换问题产生原因2.2、分页内存...原创 2018-03-09 11:53:53 · 1829 阅读 · 0 评论 -
内存管理笔记六、非固定分区的内存管理
内存管理笔记六、非固定分区的内存管理引言:第五篇笔记,介绍了固定分区的内存管理方式。本篇笔记将介绍非固定分区的内存管理。内存管理笔记六、非固定分区的内存管理一、非固定分区的内存管理1.1、产生由来—对固定分区的改进1.2、核心思想–按需分配1.3、加载实例1.4、存在弊端1.5、解决弊端的两种方式一、非固定分区的内存管理1.1、...原创 2018-03-08 16:38:38 · 637 阅读 · 0 评论 -
内存管理笔记五、固定分区的内存管理
内存管理笔记五、固定分区的多道编程引言:多道编程可以克服单道编程的缺点,提高CPU和内存的利用效率,改善用户的响应时间。本文将介绍多道编程下固定分区的内存管理。后续文章会介绍非固定分区、分页、分段、段页式管理方式。内存管理笔记五、固定分区的多道编程一、固定分区的加载方式1.1、固定分区概念1.2、共享队列及分开队列1.3、固定分区的优点及缺点分析二、动态地址翻译...原创 2018-03-08 15:48:55 · 2326 阅读 · 0 评论 -
内存管理笔记四、虚拟内存概念的引入
内存管理笔记四、虚拟内存概念的引入引言:虚拟内存是实际存储架构与程序员对内存要求之间的一座桥梁,是操作系统为用户提供的一种“幻象”,其构建在内存架构的顶端,给用户提供一个比物理主存空间大许多的地址空间。一、产生背景1.1、程序员对内存的要求 计算机的一个基本功能是计算,其计算除了需要硬件之外,还需要两种信息:数据和代码。它们是计算机硬件CPU的输入,没有这些,CPU也是“...原创 2018-03-08 12:13:00 · 792 阅读 · 0 评论 -
内存管理笔记一、内存管理的需求
内存管理笔记一、内存管理的需求引言:清楚内存管理需求,会帮助我们更好的学习和理解内存管理相关的机制和策略。内存管理笔记一、内存管理的需求重定位:保护:共享:逻辑组织:物理组织: 在单道程序设计系统中,内存被划分成两部分:一部分供操作系统使用(驻留监控程序、内核),一部分供当前正在执行的程序使用。在多道程序设计系统中,必须在内存中进一步细分出“...原创 2018-01-13 11:08:17 · 1435 阅读 · 1 评论 -
内存管理笔记二、操作系统在内存中的位置
内存管理笔记二、操作系统在内存中的位置引言:从根本上说,计算机里面运转的程序有两种:管理计算机的程序和使用计算机的程序。而操作系统就是管理计算机的程序,其本身也需要使用资源,需要占用内存。那我们如何将内存空间在操作系统和用户程序之间进行分配呢?或者说,应该将哪一部分内存空间用来存放操作系统呢?内存管理笔记二、操作系统在内存中的位置1、操作系统在RAM底层,用户程序占用RAM的上层...原创 2018-01-13 15:06:38 · 5002 阅读 · 0 评论 -
内存管理笔记十二、内存管理三张大图
内存管理笔记十二、内存管理大图引言:学习没有止境,学习内存管理也是这样,现在勉强算是了解大体框架,对c语言与指针多了一些理解。当然还有许多知识待填充,如slab如何解决内存碎片、vmalloc、kmalloc与malloc的区别、高端内存非线性映射实现等等。这里先暂时告一段落,复习一下进程/线程 与网络编程一些内容。下面就是在论坛看到别人画内存管理的三张大图,贴在下面,督促自己去学习,去理解。...原创 2018-03-11 22:52:17 · 756 阅读 · 0 评论