1 2 3 4 5 ··· 10 下一页

2015年10月26日

内存管理器(八)基于Glibc malloc 实现内存管理程序

摘要: 前言经历了两周多吧,总算把Glibc malloc 源码分析的文档啃完了,也算是对于malloc这个东西有深刻了解吧,毕竟自己也写了两版代码,后边还会出一个多线程版本的。就是在这个版本上修改一个支持多线程的,这个算是V2.0了。说明 前面已经阐述了malloc的分配思想,这里我... 阅读全文

posted @ 2015-10-26 17:02 zmrlinux 阅读(514) 评论(0) 推荐(0)

2015年10月24日

内存管理器(七)Glibc malloc 实现(三)--多线程思想(先占个坑)

摘要: 基本方式1.使用锁的方式来支持多线程 我们之前介绍过,库函数的实现方式是通过一个主分配区和多个非主分配区来组织的,每一个分配区中又有一个bins.我们先说对于大的分配区是如何保证线程安全的。首先,每一个分配区均有一个结构体,这个结构体中有一个线程锁和一些其他的数据结构,其中别的... 阅读全文

posted @ 2015-10-24 21:08 zmrlinux 阅读(1205) 评论(0) 推荐(0)

2015年10月21日

内存管理器(六)Glibc malloc 实现(二)--设计模式

摘要: 前言上一篇只是简单的介绍了下,关于各个版本的malloc 实现的概况,本来时很详细的,但是写了大半的时候,浏览器崩溃了,很多东西都不见了,所以只有现在的一点了。这次主要介绍ptmalloc ( ) 是如何设计的。分配区数据结构 这个库函数将内存分成一个主分配区和多个非主分配区。... 阅读全文

posted @ 2015-10-21 21:51 zmrlinux 阅读(556) 评论(0) 推荐(0)

2015年10月19日

内存管理器(五)Glibc malloc实现(一)(概论)

摘要: 系统malloc实现前言 计划有变,既然已经进入了内存管理,不如就进一步深入下去好了。再分析内核内存管理之前,先来看看glibc的实现。 之前,我们了解了下边界表识法,以及伙伴算法,并且简单实现了,mallc /free 库函数。 为了探究操作系统到底如何分配释放内存,我... 阅读全文

posted @ 2015-10-19 18:22 zmrlinux 阅读(860) 评论(0) 推荐(0)

2015年10月17日

内存管理器(四) 伙伴算法及分配器原理实现

摘要: 内存管理器(四) 伙伴算法前言上两篇一共介绍了边界标识算法,以及使用边界标识算法实现了一个堆内存的分配器,现在我们学习下另一种内存管理的算法,我们的Linux的内存管理就广泛应用了伙伴算法。非话不多说。__START这个算法是什么?伙伴算法:伙伴算法(系统)是操作系统中用到的另一种动... 阅读全文

posted @ 2015-10-17 22:35 zmrlinux 阅读(781) 评论(0) 推荐(0)

2015年10月16日

内存管理器(三)使用边界标识法实现内存分配器

摘要: 使用边界标识法实现简单分配器前言前一篇我们已经了解了边界标识算法和数据结构,其实边界标识法还是比较复杂的,它的难点在于对C的使用的淋漓尽致,以及复杂的逻辑关系。所以我们还需要多思考,多体会才能领悟个中精髓,其实我昨天在学习那个小例子的时候由一瞬间感觉如果用C++实现可能更方便,所以再... 阅读全文

posted @ 2015-10-16 17:29 zmrlinux 阅读(1128) 评论(0) 推荐(0)

2015年10月12日

内存管理器(二)边界标识法

摘要: 边界标识算法前言首先说明,我们这里的内存管理器主要是以模拟各种内存分配算法为主,从内存申请一片内存然后根据我们所选定的数据结构和算法,实现程序的堆空间的分配,至于内存分配详情我们会在Linux内核内存管理的简单分析中探讨。这个算法是什么边界标识法是操作系统中用以进行动态分配的一种存储... 阅读全文

posted @ 2015-10-12 22:54 zmrlinux 阅读(1072) 评论(0) 推荐(0)

内存管理器(一)简单分配器

摘要: 前言之前,有学长(学长博客强烈推荐:http://my.csdn.net/wwh578867817)做了内存管理的主题沙龙,自己以前也看过一些内存管理方面的东西,所以最近想做一个内存管理器,其实最终实现主要是以函数的形式表达。废话不多说,路线基本如下:学习路线1.内存管理器(一)简单... 阅读全文

posted @ 2015-10-12 17:26 zmrlinux 阅读(379) 评论(0) 推荐(0)

2015年10月9日

异常控制流--进程的基石

摘要: 异常控制流流:首先,说“流“这个概念,我们经常使用流这个概念,却没有思考过它到底代表什么意思,文件中常用I/O 流,工程中常用控制流,网络中也使用流作为传送数据的方式。其实我们可以感受到,“流“就是一系列连续的动作集合,可以类比水流,就是不间断,连续不断(至少逻辑上是连续的)。一些指... 阅读全文

posted @ 2015-10-09 21:57 zmrlinux 阅读(246) 评论(0) 推荐(0)

2015年9月29日

虚拟存储子系统调整

摘要: 虚拟存储子系统调整 虚拟空间存储方式:在linux 中是通过页面为单位的虚拟存储方式进行的。采用虚拟存储的方式,不需要连续的物理内存。现在大部分的处理器都具备用于虚拟存储的处理器嵌入式TLB,旁路转换缓冲区,或称页表缓冲区。和处理不存在的页面访问的... 阅读全文

posted @ 2015-09-29 16:41 zmrlinux 阅读(190) 评论(0) 推荐(0)

1 2 3 4 5 ··· 10 下一页

导航