- 25
- 0
- 约6.11千字
- 约 33页
- 2018-08-20 发布于江苏
- 举报
第三节:首次适应算法的分析205.4.4
Linux组织存储器的方法 task_struct mm pgd mmap vm_area_struct vm_end vm_start mm_struct vm_prot vm_flags vm_next vm_area_struct vm_end vm_start vm_prot vm_flags vm_next 链表 进程地址空间 共享库 数据 文本 APR proc[] 区域描述符 APR页表 注意: 2015.4.7双周星期二下午实验课的linux系统,与最新的linux版本不完全相同。 参考书籍 《深入理解计算机系统》作者:卡耐基.梅隆大学计算机科学学院 Randal E.Rryant,David R. O’Hallaron。 实验课中的Linux源代码将空白块分成9个队列:32B到4K。 * malloc(),mfree() 2015.4.7星期二(双周) 深刻理解计算机 上机编程:分配器 首次适应算法、最佳适应算法、下一次适应算法 首次适应算法分析 #includestdlib.h void *malloc(size_t,size); malloc函数返回一个指针,指向大小为至少size字节的存储器块。 如果malloc遇到问题,那么返回NULL。 注意:与教材中的malloc函数不同。 free函数释放已经分配的malloc块 #includestdlib.h void free(void *ptr) Ptr参数必须指向一个从malloc获得的已经分配块的起始位置。 malloc和free分配和释放块 1 2 3 4 malloc(4*sizeof(int)) 1 2 3 4 5 6 7 8 9 malloc(5*sizeof(int)) 1 2 3 4 free 第二次分配的5个int 1 2 3 4 5 6 malloc(2*sizeof(int)) malloc算法分析 首次适应算法:从头开始搜索空闲链表,选择第一个合适的空闲块。 将大的空闲块保留在链表的后面。链表起始处留下小的空闲块的碎片,增加了对较大块的搜索时间。 首次适应算法速度很快,因为它尽可能少地搜索链表结点。 下一次适应算法和首次适应算法很相似,是不过不是从链表的起始处开始每次搜索,而是从上一次查询结束的地方开始。 若上一次在一个空闲块中发现足够的空间,那么这一次也能在这个剩余块中发现所需空间。 比首次适应算法快,利用率却低。 最佳适应算法检查数组的每一个空闲块,选择适合所需请求大小的最小空闲块。 内存管理:使用coremap[] coremap[]按照map的起始地址排序。 首次适应算法 存储管理器对coremap[]进行搜索,直到找到一个足够大的空闲区。 若空闲区大小和要分配的空间大小正好一样,否则将该空闲区分为两部分,一部分供进程使用,另一部分形成新的空闲区。 教材p77的例题 例题1. coremap[]: 进程申请空间大小是15 (1)搜索coremap[],找到第一个长度=15的空闲区 20 10 coremap[2] 50 30 coremap[1] 100 20 coremap[0] 0 coremap[CMAPSIZ] …… 20 10 coremap[0] m_size=3015,首次找到一个足够大的空闲区 50 30 coremap[1] m_size=1015 (2)空闲区的分配 新的coremap[]数组 50 30 coremap[1] 分配15个块出去,则: m_size=30-15=15, m_addr=50+15=65。 20 10 coremap[2] 65 15 coremap[1] 100 20 coremap[0] 0 coremap[CMAPSIZ-1] …… 教材p78的例题 例题2. coremap[]: 进程申请空间大小是30 (1)搜索coremap[],找到第一个长度=15的空闲区 20 10 coremap[2] 50 30 coremap[1] 100 20 coremap[0] 0 coremap[CMAPSIZ] …… 20 10 coremap[0] m_size=30=30,首次找到一个足够大的空闲区 50 30 coremap[1] m_size=1015 例题2 (2)空闲区的分配 若m_size==0,则应删除这个元素,coremap[]数组剩下的元素向前移动一个位置。 50 30 coremap[1] 分配30个块出去,则: m_size=30-30=0, m_addr=50+30=80 20 10 100 20 coremap[1] coremap[0] 0 coremap[CMAPSIZ-2] …… 80 0 coremap[1]有变化 ma
您可能关注的文档
- 第三单元 人情和世态.ppt
- 第三单元 自我特质地认知.ppt
- 第三单元向封建专统治宣战的檄文.ppt
- 第三单元欧美资产级革命时代的杰出人物.ppt
- 第三单元融入社会负使命(A卷).doc
- 第三周 云计算地分类.pptx
- 第三天:世纪赢家品介绍.ppt
- 第三届泰安市东文学艺术奖文学类作品申报表.doc
- 第三框彼此尊重才赢得尊重.ppt
- 第三章 体育竞赛地组织与编排.doc
- 安徽省安庆市潜山市部分学校2025-2026学年七年级下学期阶段学情自测数学试题-普通用卷.docx
- 2026《微型无人机的设计基础综述》2600字.docx
- 安徽六安市金安区2025-2026学年八年级上学期2月期末物理试题-普通用卷.docx
- 2026《五菱汽车公司经营者股权激励实施成效及其启示》9700字.doc
- 北京市第一零九中学2026届高三下学期开学考试数学试题-普通用卷.docx
- 北京海淀实验中学2026届高三下学期数学开学检测试题-普通用卷.docx
- 2026《五菱汽车公司融资模式及融资风险分析》8700字.doc
- 2026《五菱汽车公司物流成本控制研究》文献综述开题报告(含提纲)3800字.doc
- 2026《五菱汽车公司薪酬改革问题研究》开题报告(文献综述)4200字.doc
- 2026《物流企业反内卷的战略转型研究—以顺丰控股为例》13000字.doc
最近下载
- 《GBT19000-2000-质量管理体系基础和术语》.pdf
- 常见阴道炎的规范化诊断流程指南(2025).pptx VIP
- 2024-2025浙教版科学初中七年级下册教学计划 .docx VIP
- 学堂在线 雨课堂 学堂云 医学科研设计 章节测试答案.docx VIP
- 消防员个人安全行动规程.pptx VIP
- 学堂在线 雨课堂 学堂云 《资治通鉴》导读 章节测试答案.docx VIP
- 宣贯培训(2026年)《JTT 329-2025公路桥梁预应力钢绞线用锚具、夹具和连接器》.pptx VIP
- 有创血压及中心静脉压监测.pptx VIP
- 全球绿色航运发展报告(2024-2025).pdf
- 浅议抽水蓄能电站建设财务管理.pdf VIP
原创力文档

文档评论(0)