ROM[k]=1;
printf(" 插 入 成 功 , 进 程 %s 的 初 始 地 址 为 %d, 结 束 地 址
为%d\n",a.ProgressName,a.Startaddress,a.Startaddress+a.ProgressSize-1);
p=i+a.ProgressSize;
return;
}
}
}
for(i=0; i
int main()
{
int choose1,choose;
char ProgressName[10];
PCB a;
init();
printf("\t 主存空间的分配与回收\n");
printf("---------------------------------------\n");
printf("\t1、首次适应算法\n");
printf("\t2、循环首次适应算法\n");
printf("---------------------------------------\n");
printf("请选择分配算法:");
scanf("%d",&choose1);
system("cls");
while(1)
{
w:system("cls");
printf("当前分配算法:");
if(choose1 == 1)
printf("首次适应算法\n");
else
printf("循环首次适应算法\n");
printf("---------------------------------------\n");
printf("\t1、插入进程\n");
printf("\t2、删除进程\n");
printf("\t3、显示进程的信息\n");
printf("\t4、显示空闲区\n");
printf("---------------------------------------\n");
printf("请输入:");
scanf("%d",&choose);
system("cls");
switch(choose)
{
case 1:
printf("请输入进程名:");
scanf("%s",&a.ProgressName);
printf("请输入进程的大小:");
scanf("%d",&a.ProgressSize);
for(int i = 0; i < count; i++)
if(strcmp(num[i].ProgressName,a.ProgressName)==0)
{
printf("已存在同名进程,无法插入。\n");
system("pause");
goto w;