分页式管理实验报告 下载本文

}

Free_table[t].address=S; Free_table[t].length=L; Free_table[t].flag=1; } return; }

void main( ) { int i,a; float p_length; char p_name; //空闲分区表初始化: int t_P;

Free_table[0].address=1000; for(t_P=0; t_P

Free_table[t_P].length=stand_length(t_P); Free_table[t_P].flag=1;

}

for(t_P=1;t_P

Free_table[t_P].address=Free_table[t_P-1].address+Free_table[t_P-1].length;

} //空闲分区表初始化结束

//已分配表初始化: for(i=0;i

cout<<\分页式主存管理的模拟实现***************\

cout<<\选择以下标号实现其功能*****************************\

cout<<\退出 2:回收进程和内存 *\

cout<<\随机产生进程并分配内存 3:显示内存分配记录 *\

cout<<\******\

while(1) {

cout<<\请输入一个功能项(0--3) :\cin>>a; switch(a) {

case 0: return; //a=0选择退出程序结束

case 1: //a=1开始随机的产生进程并分配空间 {

int p_num=process_num();

cout<<\随机产生\个进程\int p_p;

cout<<\进程名 进程大小\for(p_p=0;p_p

p_name=srand_name(p_p); p_length= process_length(p_p);

cout<

allocate(p_name,p_length); //分配内存空间

}

cout<<\要查看内存分配请在提示命令出现后输入'3'回车\ } break;

case 2: //a=2回收内存空间

cout<<\输入要回收分区的进程名\cin>>p_name;

reclaim(p_name); //回收内存空间 break;

case 3: //a=3显示内存情况

cout<<\输出空闲区表:\

cout<<\--\

cout<<\起始地址 分区大小 标志(0-已分配,1-未分配)\for(i=0;i

printf(\].length, Free_table[i].flag); cout<<\已分配分区表:\

cout<<\--\