码迷,mamicode.com
首页 > 其他好文 > 详细

8-2-伙伴系统-动态存储管理-第8章-《数据结构》课本源码-严蔚敏吴伟民版

时间:2016-06-19 22:52:11      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

课本源码部分

第8章  伙伴系统 - 边界标识法

——《数据结构》-严蔚敏.吴伟民版

       源码使用说明  链接??? 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明

       课本源码合辑  链接??? 《数据结构》课本源码合辑

       习题集全解析  链接??? 《数据结构题集》习题解析合辑

 

       本源码引入的文件  链接? Status.h

       相关测试数据下载  链接? 数据包

 

      文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲08 动态存储管理\02 BuddySystem

 

概述

       Linux内核内存管理的一项重要工作就是如何在频繁申请释放内存的情况下,避免碎片的产生。Linux采用伙伴系统解决外部碎片的问题,采用slab解决内部碎片的问题,在这里我们讨论外部碎片问题。

解析

       避免外部碎片的方法有两种:一种是利用非连续内存的分配;另外一种则是用一种有效的方法来监视内存,保证在内核只要申请一小块内存的情况下,不会从大块的连续空闲内存中截取一段过来,从而保证了大块内存的连续性和完整性。显然,前者不能成为解决问题的普遍方法,一来用来映射非连续内存线性地址空间有限,二来每次映射都要改写内核的页表,进而就要刷新TLB,这使得分配的速度大打折扣,这对于要频繁申请内存的内核显然是无法忍受的。因此Linux采用后者来解决外部碎片的问题,也就是著名的伙伴系统。

       伙伴系统的宗旨就是用最小的内存块来满足内核的对于内存的请求。 

源码

       文件一 ?  BuddySystem.h 

技术分享 

       文件二 ?  BuddySystem.c 

技术分享技术分享技术分享 

       文件三 ?  BuddySystem-main.c (测试文档)

技术分享技术分享 

测试结果展示

技术分享 

       更多章节持续更新中...技术分享

8-2-伙伴系统-动态存储管理-第8章-《数据结构》课本源码-严蔚敏吴伟民版

标签:

原文地址:http://www.cnblogs.com/kangjianwei101/p/5599016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!