计算机操作系统操作系统 (38).pdf
《计算机操作系统操作系统 (38).pdf》由会员分享,可在线阅读,更多相关《计算机操作系统操作系统 (38).pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章 虚拟内存(五)内核内存分配内核内存分配不同于用户内存通常从空闲内存池中获取内核需要为不同大小的数据结构分配内存一些内核内存需要连续的物理页内核使用内存块的特点内核在使用内存块时有如下特点:(1)内存块的尺寸比较小;(2)占用内存块的时间比较短;(3)要求快速完成分配和回收;(4)不参与交换。(5)频繁使用尺寸相同的内存块,存放同一结构的数据;(6)要求动态分配和回收。伙伴(Buddy)系统主要用于Linux早期版本中内核底层内存管理一种经典的内存分配方案从物理上连续的大小固定的段上分配内存主要思想:内存按2的幂的大小进行划分,即4KB、8KB等,组成若干空闲块链表;查找链表找到满足进程
2、需求的最佳匹配块满足要求是以2的幂为单位的如果请求不为2的幂,则需要调整到下一个更大的2的幂当分配需求小于现在可用内存时,当前段就分为两个更小的2的幂段,继续上述操作直到合适的段大小伙伴(Buddy)系统算法算法首先将整个可用空间看作一块:2n假设进程申请的空间大小为s,如果满足2n-1s=2n,则分配整个块否则,将块划分为两个大小相等的伙伴,大小为2n-1一直划分下去直到产生大于或等大于或等于于s的最小块的最小块Slab 分配内核分配的另一方案Slab 是由一个或多个物理上连续的页组成Cache 含有一个或多个 slab每个内核数据结构都有一个cache 每个 cache 含有内核数据结构的对象实例Slab分配例子Slab 分配当创建 cache 时,包括若干个标记为空闲的对象当内核对象时,从cache上直接获取,并标识对象为使用使用的分配从空的slab当一个slab充满了已使用的对象时,下一个对象开始分配如果没有空的slab,则从物理连续页上分配新的slabSlab 分配优点没有因碎片而引起的内存浪费内存请求可以快速满足使用的系统Solaris 2.4内核Solaris某些用户态内存请求Linux 2.2 以后的内核
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机操作系统操作系统 38 计算机 操作系统 38
限制150内