下载此文档

操作系统第一次实验报告.docx


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
操作系统第一次实验报告.docx操作系统课程实验报告题目: Lab2学生姓名: 王家威学生学号:201308070217专业班级:智能1302指导老师: 李蕊完成日期:2015年12月24日、实验内容1、 实现first_fit连续物理内存分配算法2、 实现寻找虚拟地址对应页表项3、 释放某虚地址所在页并取消对应二级页表的映射二、实验原理1、 首次适配算法指存储管理器,沿着段链表进行搜索直到找到一个足够大的空闲区域。如果空闲区域和进程所需要的区域刚好相等那么刚好,如果大则将该区域分为两部分,一部分供进程使用,另一部分成为新的空闲区域。首次适配算法很快因为它减少了搜索的次数,只要搜索到就分配。2、 在改写代码前,需要弄清楚描述物理页的数据结构,双向链表以及管理物理页的数据结构Page。(1) 双向链表结构用来表示每个页帧,链表头用free_area_t结构体表示,包含了一个list_entry的双向链表指针和纪录当前空闲页的个数的无符号整型变量nr_freeotypedefstruct{list_entry_tfreejist;//thelistheaderunsignedintnr_free;//#offreepagesinthisfreelist}free_area_t;(2) Page结构体是实现连续物理内存分配算法的关键数据结构,可通过此数据结构来完成空闲块的链接和信息存储,而基于这个数据结构的管理物理页数组起始地址就是全局变暈pagesstructPage{intref;uint32_tflags;unsignedintproperty;有值,其余为0)list_entry_tpagejink;表(用于释放)//映射此物理页的虚拟页个数//物理页属性(空或不空)//连续空页有多少(只在地址最低页//双向链接各个Page结构的pagejink双向链三、实验内容与实现1、练****1:实现first_fit连续物理内存分配算法;整体思路:物理内存页管理器顺着双向链表进行搜索空闲内存区域,直到找到一个足够大的空闲区域,这是一种速度很快的算法,因为它尽可能少地搜索链表。如果空闲区域的大小和申请分配的大小正好一样,则把这个空闲区域分配出去,成功返回;否则将该空闲区分为两部分,一部分区域与申请分配的大小相等,把它分配出去,剩下的一部分区域形成新的空闲区。其释放内存的设计思路很简单,只需把这块区域重新放回双向链表中即可。实现目标:重写default」nit_memmap(),default_alloc_pages(),default_free_pages()函数。(l)default_init_memmap()函数用于内存块的初始化,base块中首页,通过指针遍历块中的n页,将每个页的flags位设置为0,表明当前页空闲可用,然后将页的property属性设置为set_page_refdefault_init_memmap(structPage*base,size_tn){assert(n>0);structPage*p=base;for(;p!=base+n;p++){〃检查此页是否为保留页assert(PageReserved(p));〃设置标志位p->flags=p->property=0;SetPageProperty(p);〃清零此页的引用计数set_page_ref(pz0);〃将

操作系统第一次实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人pppccc8
  • 文件大小80 KB
  • 时间2019-07-05