操作系统课程设计课件题目10.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于伙伴堆算法的内存分配/释放的模拟实现 功能要求 (1)空闲页面分为10个块组,块组编号为0,1,2,……,8,9; (2)内存空间及其划分(界面): 内存物理空间大小可选择:256M bytes,512M bytes; 每个页框的大小可选择:1K bytes,2K bytes,4K bytes; (3)设计对选择的内存空间进行划分管理模块,当所有内存为空闲时,显示其各块组空闲区链表的内容; (4)随机指定多个不连续占用的内存空间(每块占用空间包括2i个连续的页框),显示各块组空闲区链表的内容; (5)基于内存当前情况,随机产生申请的页框数m,显示满足m个页框的申请后,块组空闲区链表的内容; (6)基于内存当前情况,随机产生被占用的(页框号,块组号)释放,显示释放后块组空闲区链表的内容。 实现 (1)定义空闲区块组链表数据结构; (2)依据块组伙伴的定义,产生空闲区块组链表的内容; (3)满足申请后,重新调整块组链表; (4)释放后,相邻空闲块组依据伙伴关系要合并成大的块组 * Managing Physical Memory Allocate ranges of physically-contiguous pages on request.(为进程分配连续存储区) The allocator uses a buddy-heap algorithm to keep track of available physical pages. (Buddy heap算法记载可用存储区) Each allocatable memory region is paired with an adjacent partner.(每个可用存储区有一个伙伴) Managing Physical Memory Whenever two allocated partner regions are both freed up they are combined to form a larger region.(两个相邻的伙伴被释放时,合并为一个大空闲区) If a memory request cannot be satisfied by allocating an existing small free region, then a larger free region will be subdivided into two partners to satisfy the request.(小区域不能满足时,分割大区域) Buddy heap存储分配 64 32 32 32 16 16 32 16 8 8 8 32 16 8 8 req(8) 8 req(8) req(4) rel(8) 32 8 4 4 16 4 rel(8) 8 32 8 8 8 32 4 4 8 8 8 8 8 4 4 32 8 1(20) 2(21) 3(22) 4(23) … 8(27) 9(28) 10(29) 数据结构: 组号(空闲块数 ):链头指针 Buddy Heap Implementation 24 96 8 16 32 256 相同长度的空闲块构成一组 512 1(20) 2(21) 3(22) 4(23) … 8(27) 9(28) 10(29) 申请长度为128,在第8组中取一块。若第8组已空,在第9组取一块,分配其中的128页,并将剩余的128页记入第8组。若第9组也空,在第10组取一块,进行两次分割,分配128页,剩余的128页和256页分别记入第8组和第9组。 释放是上述操作的逆过程,考虑伙伴的合并。两个块为伙伴的条件是:(1)两个块的大小相同,如b个页面;(2)两个块的物理地址连续;(3)位于后面块的最后页面编号必须是2b的整数倍。 Buddy Heap Implementation Buddy Heap Implementation I unit block head 2 unit block head 4 unit block head 8 unit block head I6 unit block head 32 unit block head ... Problem: internal fragmentation eg: req(17) second memory allocation carves slabs (small units) and manage them separately thi

文档评论(0)

aena45 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档