-1- 昆明理工大学信息工程与自动化学院学生实验报告 ( 2 0 1 2 —2 0 1 3 学年 第 二 学期 ) 课程名称:操作系统 开课实验室: 年 月 日 年级、专业、班 学号 姓名 成绩 实验项目名称 存储管理 指导教师 杨云飞 教师评语 教师签名: 年 月 日 一、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。通过本次实验,要求学生通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解,通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 二、实验原理及基本技术路线图(方框原理图) 用 C 或 C++语言模拟实现请求式分页管理。要求实现:页表的数据结构、分页式内存空间的分配及回收(建议采用位图法)、地址重定位、页面置换算法(从 FIFO,LRU,NRU 中任选一种)。 -2 - -3 - -4- int subareaSize[num]={8,12,16,32,24,16,64,128,40,64};//分区大小 Process *pro=NULL;//保持进程信息 int ProcessNum=0;//进程数目 int applyProcessNum=0;//每次申请进程数目 int maxApplyNum=0;//最大可申请数目 int *applyIndex=NULL;//申请进程队列 int totalApplyNum=0;//申请总数 -5- int *assignPointer=NULL;//已分配内存的进程队列 int assignFlag=0;//分配索引,表示已申请队列已分配的进程数 int exeIndex;//执行的进程号 Node *subareaNode=new Node[3];//分区回收时,进程所在分区及其前,后分区信息 LinkList createLinkList(int n );//建立空闲分区链 Node firstFit(LinkList &head,Process pro);//首次适应算法 Node nestFit(LinkList &head,Process pro,Node flag);//循环适应算法 Node bestFit(LinkList &head,Process pro);//最佳适应算法 Node worstFit(LinkList &head,Process pro);//最坏适应算法 Node assign(LinkList &head,int orderIndex,int index,Node flagNode);//一次分区分配 int assignMemory(LinkList &head);//内存分配 void insertNode(LinkList &head,Node q,int index);//插入节点 Node deleteNode(LinkList &head,int index);//删除节点 int display(LinkList &head);//打印分区分配情况 int lowAttemper(int *excursionPointer);//低级调度 int findSubarea(LinkList &head,int ind...