欢迎来到天天文库
浏览记录
ID:47196405
大小:348.00 KB
页数:16页
时间:2019-08-21
《操作系统存储管理实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、.____大学____学院实验报告课程名称:计算机操作系统实验名称:存储管理实验实验日期:班级:姓名:学号:仪器编号:XX实验报告要求:1.实验目的2.实验要求3.实验步骤4.程序清单5.运行情况6.流程图7.实验体会1、实验目的通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解,熟悉虚存管理的各种页面淘汰法。通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。2、实验要求设计一个固定式分区分配的存储管理方案,并模拟实现分区的分配和回收过程。可以假定每个作业都是批处理作业,并且不允许动态申请内存。为实现分区的分配和回收,可以设定一个分区说明表,按照表中的有
2、关信息进行分配,并根据分区的分配和回收情况修改该表。设计一个可变式分区分配的存储管理方案,并模拟实现分区的分配和回收过程。对分区的管理法可以是下面三种算法之一:首次适应算法;最坏适应算法;最佳适应算法。编写并调试一个段页式存储管理的地址转换的模拟程序。首先设计好段表、页表,然后给出若干个有一定代表性的地址,通过查找段表页表后得到转换的地址。要求打印转换前的地址,相应的段表,页表条款及转换后的地址,以便检查。3、实验步骤(1)理解实验要求,联系所学知识;(2)根据要求编写调度算法;(3)编写完整的实验代码并在VC++6.0环境下编译运行;(4)调试程序直至得出结果。4、程序清单
3、#include#include#include#include#defineNUM4#definealloMemory(type)(type*)malloc(sizeof(type)) structpartiTab{intno;intsize;intfirstAddr;charstate;}parTab[NUM];..typedefstructpartiTabPARTITAB;typedefstructjcb{/*定义作业控制块JCB,部分信息省略*/charname[10];//作业名intsiz
4、e;//作业大小structjcb*link;//链指针}JCB;typedefstruct{JCB*front,*rear;}jcbQue;jcbQue*jcbReadyQue;voidAllocateMemory(intsize);voidcreateTab();voidcheckTab();voidrecycleMemory(inti);voidAllocateMemory(intsize){inti;for(i=0;isize)parTab[i].state='Y
5、';elseprintf("没有空闲分区,无法分配内存!");}}voidcreateTab(){inti;for(i=1;i<=NUM;i++){//getPartiTab(PARTITAB);parTab[i-1].no=i;parTab[i-1].size=20;parTab[i-1].firstAddr=21;parTab[i-1].state='N';}}voidcheckTab(){inti;..printf("分区号t大小t起址t状态");for(i=0;i6、%dt",parTab[i].size);printf("%dt",parTab[i].firstAddr);printf("%ct",parTab[i].state);printf("");}}voidrecycleMemory(inti){parTab[i-1].state='N';}intmain(intargc,char*argv[]){inti;printf("tt*********************************************tt");printf("tttt实验一存储管理实验");printf(7、"tttt固定式分区分配存储管理");printf("tt*********************************************tt");createTab();checkTab();printf("请按任意键继续:");getchar();printf("每个分区装入一道作业:");for(i=0;i
6、%dt",parTab[i].size);printf("%dt",parTab[i].firstAddr);printf("%ct",parTab[i].state);printf("");}}voidrecycleMemory(inti){parTab[i-1].state='N';}intmain(intargc,char*argv[]){inti;printf("tt*********************************************tt");printf("tttt实验一存储管理实验");printf(
7、"tttt固定式分区分配存储管理");printf("tt*********************************************tt");createTab();checkTab();printf("请按任意键继续:");getchar();printf("每个分区装入一道作业:");for(i=0;i
此文档下载收益归作者所有