赞
踩
对分区的管理法可以是下面三种算法之一: 首次适应算法 循环首次适应算法 最佳适应算法
#include<stdio.h> #define n 10 /*假定系统允许的最大作业数为n,假定模拟实验中n值为10*/ struct struct void allocate(char J,float xk) /*给J作业,采用最佳分配算法分配xk大小的空间*/ for(i=0;i<m;i++) /*寻找空间大于xk的最小空闲区登记项k*/ /*找到可用空闲区,开始分配:若空闲区大小与要求分配的空间差小于minisize大小,则空闲区全部分配;若空闲区大小与要求分配的空间差大于minisize大小,则从空闲区划出一部分分配*/ if(i>=n) /*无表目可填写已分配分区*/ /*修正空闲区表*/ return; void reclaim(char J) /*寻找已分配表中对应登记项*/ if(s>=n)/*在已分配表中找不到名字为J的作业*/ /*修改已分配表*/ /*取得归还分区的起始地址S和长度L*/ /*寻找回收分区的空闲上下邻,上邻表目k,下邻表目j*/ if(k!=-1) int main( ) /*空闲分区表初始化:*/ /*已分配表初始化:*/ while(1) scanf("%d",&a); case 1: /*a=1分配主存空间*/ case 2: /*a=2回收主存空间*/ case 3: /*a=3显示主存情况*/ default:printf("没有该选项\n"); return 1; }/*主函数结束*/ |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。