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