- 121
- 0
- 约2.04万字
- 约 26页
- 2019-03-22 发布于湖北
- 举报
实验三 存储管理实验
一.? 目的要求:?
1、通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法。?
2、通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。
二.实验内容:
1、设计一个固定式分区分配的存储管理方案,并模拟实现分区的分配和回收过程。
可以假定每个作业都是批处理作业,并且不允许动态申请内存。为实现分区的分配和回收,可以设定一个分区说明表,按照表中的有关信息进行分配,并根据分区的分配和回收情况修改该表。
算法描述:
本算法将内存的用户区分成大小相等的四个的分区,设一张分区说明表用来记录分区,其中分区的表项有分区的大小、起始地址和分区的状态,当系统为某个作业分配主存空间时,根据所需要的内存容量,在分区表中找到一个足够大的空闲分区分配给它,然后将此作业装入内存。如果找不到足够大的空闲分区,则这个作业暂时无法分配内存空间,系统将调度另一个作业。当一个作业运行结束时,系统将回收改作业所占据的分区并将该分区改为空闲。
算法原程序
#include stdio.h
#include windows.h
#include stdlib.h
#include conio.h
#define PCB_NUM 5 //模拟进程数量
#define INT 800//内存分区数量
struct MemInf
{
int addr; //分区起始地址
int size; //分区大小
int state; //0表示空闲,0时表示已分配,存储的是进程ID
};
struct PCB
{
int pcbID; //进程ID
int size; //进程大小
int RunState; //运行状态,0表示就绪,1表示已分配内存正运行,2表示运行结束且退出内存
int TolTime; //总需要运行时间
int RunTime; //已运行时间
} pcbList[PCB_NUM];
void menu() //菜单
{
int m;
system(cls);
printf(\n\n\t\t*********************************************\t\t\n);
printf(\t\t\t\t固定分区存储程序演示\n);
printf(\t\t*********************************************\t\t\n);
printf(\n\t\t\t1.执行程序.);
printf(\n\t\t\t0.退出程序.);
scanf(%d,m);
switch(m)
{
case 1:
break;
case 0:
system(cls);
menu();
break;
default:
system(cls);
break;
}
}
void paixu(struct MemInf* ComMem,int n)
{
int i,j,t;
for(j=0; jn-1; j++)
for(i=0; in-j-1; i++)
if(ComMem[i].sizeComMem[i+1].size)
{
t=ComMem[i].size;
ComMem[i].size=ComMem[i+1].size;
ComMem[i+1].size=t;
}
}
void paixu2()
{
int i,j,t;
for(j=0; j4; j++)
for(i=0; i4-j; i++)
if(pcbList[i].sizepcbList[i+1].size)
{
t=pcbList[i].size;
pcbList[i].size=pcbList[i+1].size;
pcbList[i+1].size=t;
}
}
void main()
{
DD:
menu();
char ch;
int i,j,n,a=0;
struct
您可能关注的文档
最近下载
- 奇瑞捷途6MF22A变速器使用维修手册.pdf
- 《阿Q正传》语言特色赏析备课札记(含课后练习题).docx VIP
- 茅台学院《高等数学(II)》2025 - 2026学年第一学期期末试卷.docx VIP
- 八年级下册《家庭社会法治》教案全册.pdf VIP
- 危重患者的早期识别与处理ppt.pptx VIP
- 江西省建设工程施工监理服务费计费规则.doc VIP
- IPX防水等级标准(0-8级).docx
- 医学文献检索:中外文医学文献检索与获取全攻略.pptx VIP
- SBT 11185-2017 药品批发企业对供应商管理规范.doc VIP
- (高清版)B-T 9441-2021 球墨铸铁金相检验.pdf VIP
原创力文档

文档评论(0)