• 大小: 400KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签: 操作系统  

资源简介

操作系统实验四 动态分区分配算法(内含源代码和详细实验报告),详细介绍:http://blog.csdn.net/xunciy/article/details/79239096

资源截图

代码片段和文件信息

#include 
#include 
#include 
using namespace std;

#define MAXNUMBER 100
static int PartitionNum;  //内存中空闲分区的个数
static int FreePartition[MAXNUMBER];  //空闲分区对应的内存

static int ProcessNum; //进程个数
static char ProcessName[MAXNUMBER];//进程名字
static int ProcessNeed[MAXNUMBER];  //进程大小
static char NameProcessToPartition[MAXNUMBER][MAXNUMBER];//各个进程所在分区位置

static int LeftFreePartition[MAXNUMBER];
static int LeftProcessNeed[MAXNUMBER];

typedef struct{
    int partitionSize;
    int id;
}sortNeed;

void Enter();//输入分区数和大小、资源数和大小
void initial();//初始化供4个算法使用
void display();//显示分区结果
void FirstFit();//首次适应算法FF
void NextFit();//循环首次适应算法NF
void BestFit();//最佳适应算法BF
void WorstFit();//最坏适应算法WF

int main(){
    Enter();
    FirstFit();
    NextFit();
    BestFit();
    WorstFit();
    return 0;
}

//输入分区数和大小、资源数和大小
void Enter(){
    int i;
    cout<<“Enter PartitionNum: “;
    cin>>PartitionNum;
    cout<<“Enter FreePartition: “;
    for (i=0;i        cin>>FreePartition[i];
    }
    cout<<“Enter ProcessNum: “;
    cin>>ProcessNum;
    for (i=0;i        ProcessName[i]=i+65;
    }
    cout<<“Enter ProcessNeed: “;
    for (i=0;i        cin>>ProcessNeed[i];
    }
}

//初始化供4个算法使用
void initial(){
    int ij;
    for (i=0;i        for (j=0;j            NameProcessToPartition[i][j] =NULL;
            LeftFreePartition[j] = FreePartition[j];
        }
    }
    for (i=0;i        LeftProcessNeed[i] = ProcessNeed[i];
    }
}

//显示分区结果
void display(){
    int i;
    cout<<“ProcessName: “<<“\t\t“;
    for (i=0;i        cout<    }
    cout<    cout<<“ProcessNeed: “<<“\t\t“;
    for (i=0;i        cout<    }
    cout<
    cout<<“PartitionNum: “<<“\t\t“;
    for (i=0;i        cout<<“P“<    }
    cout<    for (i=0;i        cout<    }
    cout<    for (i=0;i        cout<    }
    cout<    for (i=0;i        for (int j = 0;j            if (NameProcessToPartition[j][i]!=NULL){
                cout<            }
        }
    }
}

//首次适应算法FF
void FirstFit(){
    cout<<“FF“<    initial();
    int ij;
    for (i=0;i        for (j=0;j            //当系统内存分区足够大的时候,即分配给进程资源
            if (LeftProcessNeed[i] <= LeftFreePartition[j] && LeftFreePartition!=0){
                LeftFreePartition[j] -= LeftProcessNeed[i];   //扣除分配给进程的资源
                LeftProcess

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-02-03 16:06  实验四  动态分区分配算法\
     目录           0  2018-02-03 16:06  实验四  动态分区分配算法\FF_NF_BF_WF\
     文件        6771  2017-12-16 22:23  实验四  动态分区分配算法\FF_NF_BF_WF\FF_NF_BF_WF.cpp
     文件     1051772  2017-12-16 22:29  实验四  动态分区分配算法\FF_NF_BF_WF\FF_NF_BF_WF.exe
     文件        6848  2017-12-16 22:29  实验四  动态分区分配算法\FF_NF_BF_WF\FF_NF_BF_WF.o
     文件      120998  2017-12-28 22:39  实验四  动态分区分配算法\实验四  动态分区分配算法.docx

评论

共有 条评论