自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

密码小仙女

小仙女带你学密码

  • 博客(9)
  • 收藏
  • 关注

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

前言 经历了两周多吧,总算把Glibc malloc 源码分析的文档啃完了,也算是对于malloc这个东西有深刻了解吧,毕竟自己也写了两版代码,后边还会出一个多线程版本的。就是在这个版本上修改一个支持多线程的,这个算是V2.0了。说明 前面已经阐述了malloc的分配思想,这里我接合线程池原理和边界标识法,做了这个2.0 版本。 1.最小块的大小所为40B。 2.bins 只建

2015-10-26 17:02:16 923

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

基本方式1.使用锁的方式来支持多线程 我们之前介绍过,库函数的实现方式是通过一个主分配区和多个非主分配区来组织的,每一个分配区中又有一个bins.我们先说对于大的分配区是如何保证线程安全的。首先,每一个分配区均有一个结构体,这个结构体中有一个线程锁和一些其他的数据结构,其中别的东西我们今天并不关心,我们只看看这个锁今天做了哪些工作。全局还有一个锁list_mutex.主要是用来同步分配区链表

2015-10-24 21:08:35 1320

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

ptmalloc 的设计模式

2015-10-21 21:51:42 819

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

系统malloc实现前言之前,我们了解了下边界表识法,以及伙伴算法,并且简单实现了,mallc /free 库函数。 为了探究操作系统到底如何分配释放内存,我们开始研究下glibc 的实现。内存管理内存管理一般分三个层面: 1.用户管理 2.C运行时库的管理 3.操作系统层管理

2015-10-19 18:22:25 842

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

内存管理器(四) 伙伴算法前言上两篇一共介绍了边界标识算法,以及使用边界标识算法实现了一个堆内存的分配器,现在我们学习下另一种内存管理的算法,我们的Linux的内存管理就广泛应用了伙伴算法。非话不多说。__START这个算法是什么?伙伴算法:伙伴算法(系统)是操作系统中用到的另一种动态存储管理方法。它和边界标识法类似。在用户提出申请时,分配一块恰当的内存区域给用户;

2015-10-17 22:35:29 1779

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

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

2015-10-16 17:29:54 2361

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

边界标识算法前言首先说明,我们这里的内存管理器主要是以模拟各种内存分配算法为主,从内存申请一片内存然后根据我们所选定的数据结构和算法,实现程序的堆空间的分配,至于内存分配详情我们会在Linux内核内存管理的简单分析中探讨。这个算法是什么边界标识法是操作系统中用以进行动态分配的一种存储管理的方法,系统将所有的空闲块链接在一个双重循环链表结构中;分配可以按照首次匹配,最佳匹配方法执行,其次个人觉得先学

2015-10-12 22:54:06 2706

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

前言之前,有学长做了内存管理的主题沙龙,自己以前也看过一些内存管理方面的东西,所以最近想做一个内存管理器,其实最终实现主要是以函数的形式表达。废话不多说,路线基本如下:学习路线1.内存管理器(一)简单分配器(需求) 2.内存管理器(二) 遍界标识法 3.内存管理器(三)使用遍界标识法实现分配器 4.内存管理器(四) 伙伴算法(现代主流内存管理方法) 5.内存管理器(五) Linux内核内存管

2015-10-12 17:26:11 913

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

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

2015-10-09 21:57:21 555

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除