}
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<<\--\