;// 记录进程号 int IsInMem;// 记录进程是否在内存 int Total;// 记录某进程所需的总页数 int Snum; // 记录该进程的段数 Segment Segments[10]; }; // 进程数组的定义 Process Processes[Pro_sum_size]; Segment Segments[Seg_sum_size]; Page Pages[Mem_Size]; 2 、使用一维数组存储驻留集 int Res_Set [Res_Set_Size]; . 3 、函数介绍 Init(); //最初的内存初始化 Apply_Mem();// 手工输入进程个数、段数以及段内地址的赋值函数 Alloc_Mem(); //系统分配内存 Check_Mem(); //查看内存 Finish_Pro(); //手动结束进程,释放相应空间 Print_Table();// 段表和页表的打印 Addr_Exchange(); //地址转换函数 FIFO_Strategy(); //先进先出策略处理中断 Menu();// 一个功能菜单函数一、程序运行时的初值和运行结果 1、输入: (1)创建进程: 1.共三个段,其中 1号段 8个页, 2号段 8个页, 3号段 8个页。 2.创建两个进程: P1:2个段,1号段,调入内存,共5个页,1、2、4、5页调入驻留集, 3号页不调入; 2号段,不调入,两个页,分别为 2号页和 6号页。 P2:1 个段, 3 号段,调入内存,共 5 个页, 1、2、3、4、5 ,全部调入驻留集。(2)地址映射: P2:3 123 P1:1 2050 P1: 2 256 2、运行结果.. 输入进程号和相应的内存需求后,显示每个进程的段表和页表: (此时驻留集已满!) 查看内存,结果如下: . 进行地址映射: 结束进程,释放空间: