- 7
- 0
- 约6.11千字
- 约 33页
- 2017-06-24 发布于福建
- 举报
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
您可能关注的文档
- 第一章 3.1u’nSP IDE 工具介绍.ppt
- 考研英语真题词汇解析.doc
- 操作系统实验四(副本).doc
- 广州市建设工程档案卷内目录教案.docx
- 华工网院应用写作练习答案要领.doc
- 成本会计复习(副本).doc
- 第一篇 基本介绍.pdf
- 第一部分 数学模型概述幻灯片.ppt
- 第六章 astar(a星)算法.doc
- 色彩空间及视频数据的表达.doc
- XX县税务局领导班子2025年度民主生活会对照检查材料.docx
- XX县检察院党组班子2025年度民主生活会对照检查材料.docx
- 集团党组书记在2025年度民主生活会准备会上的讲话.docx
- 在银行新员工入职座谈会上的讲话.docx
- XX县委宣传部部长2025年度民主生活会对照检查材料.docx
- XX县财政局局长2025年度民主生活会对照检查材料.docx
- XX企业领导班子2025年度述职报告.docx
- 在XX市委常委会听取下级党委(党组)“一把手”述责述廉情况汇报会上的讲话.docx
- XX县政协党组班子2025年度民主生活会对照检查材料.docx
- 在2026年第一季度安全生产重点工作推进会上的讲话.docx
原创力文档

文档评论(0)