资源简介

含本人实验报告,有具体流程图,实验课上写的,有更好的想法可以提出,大家一起学习,赚点积分不容易

资源截图

代码片段和文件信息

// 操作系统_实验四(动态分区分配算法).cpp : 定义控制台应用程序的入口点。
//
//判断是否有空闲空间,进行回收
//空闲区登记表,分配算法,回收算法
#include “stdafx.h“
#include 
#include 
#include 
using namespace std;

#define MAXNUMBER 100

void input();
void display();
void FirstFit();
void NextFit();
void BestFit();
void WorstFit();
void selectAlgorithm(int chooceAlgorithm);
void display();
void indata();
void shifang();

static int PartitionNum;  //内存中空闲分区的个数
static int ProcessNum; //需要分配的进程个数
static int FreePartition[MAXNUMBER];  //空闲分区对应的内存
static int ProcessNeed[MAXNUMBER];  //需要分配的进程大小
static int LeftFreePartition[MAXNUMBER];
static int LeftProcessNeed[MAXNUMBER];
static int start[MAXNUMBER];//用来保存每一空闲区的起始地址
static char ProcessName[MAXNUMBER];
static char NameProcessToPartition[MAXNUMBER][MAXNUMBER];//用来保存每一分区内进程分配情况


typedef struct
{
int partitionSize;//该进程所需空间大小
int id;
}sortNeed;



void input()
{
cout<<“请选择实现的算法:“< cout<<“*****  1 - 首次适应算法     *****“< cout<<“*****  2 - 循环首次适应算法 *****“< cout<<“*****  0 - 结束             *****“< int chooseAlgorithm = 5;
while(chooseAlgorithm)
{
cout<<“chooseAlgorithm = “;
cin>>chooseAlgorithm;
selectAlgorithm(chooseAlgorithm);
}
}




void initial()
{
for (int i=0;i {
LeftFreePartition[i] = FreePartition[i];
for (int j =0;j {
NameProcessToPartition[i][j] =NULL;
}
}
for (int i = 0;i {
LeftProcessNeed[i] = ProcessNeed[i];
}
//start[0]=0;
//for (int i=1;i //{
// start[i]=start[i-1]+FreePartition[i-1];
//}
}



void FirstFit()
{
cout<<“***********首次适应算法***********“< initial();

int ij;
for (i = 0;i {
for (j = 0;j {
if (LeftProcessNeed[i] <= LeftFreePartition[j] && LeftFreePartition!=0)  //当系统内存分区足够大的时候,即分配给进程资源
{
LeftFreePartition[j] -= LeftProcessNeed[i];   //扣除分配给进程的资源
LeftProcessNeed[i] = 0;  //当且仅当系统内存分区足够时才执行,即当前进程大小置0

NameProcessToPartition[i][j] = ProcessName[i];  //存储各个进程所在的分区位置

break;   //很重要,一个进程分区完后,应该立即break,进行下一个进程的判断
}
}
}

display();

}


void NextFit()
{
cout<<“***********循环首次适应算法***********“< initial();
int inextPoint = 0;
bool isWhile;
for (i = 0;i {
isWhile = true;
while(isWhile)
{
if (LeftFreePartition[nextPoint] >= LeftProcessNeed[i])
{
LeftFreePartition[nextPoint] -= LeftProcessNeed[i];
LeftProcessNeed[i] = 0;
NameProcessToPartition[i][nextPoint] = ProcessName[i];
nextPoint++;
if (nextPoint > PartitionNum - 1)
{
nextPoint = 0;  //当j遍历到分区末尾的时候,返回首位置
}
isWhile = false;
}
else
nextPoint++;
}
}
display();
}



void selectAlgorithm(int chooseAlgorithm)
{
switch(chooseAlgorithm)
{
case 0:break;
case 1:FirstFit();break;
case 2:NextFit();break;
default:cout<<“请输入

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4884  2018-11-07 16:00  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\1.1.cpp

     文件       4487  2018-11-07 14:13  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\1.1.vcproj

     文件       1403  2018-11-07 16:02  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\1.1.vcproj.C27.ACER.user

     文件        663  2018-11-07 14:29  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\1.1.exe.embed.manifest

     文件        728  2018-11-07 14:29  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\1.1.exe.embed.manifest.res

     文件        621  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\1.1.exe.intermediate.manifest

     文件      65662  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\1.1.obj

     文件    3211264  2018-11-07 14:29  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\1.1.pch

     文件       6076  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\BuildLog.htm

     文件         65  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\mt.dep

     文件      12081  2018-11-07 14:29  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\stdafx.obj

     文件     183296  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\vc90.idb

     文件     282624  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\vc90.pdb

     文件       1159  2018-11-07 14:13  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\ReadMe.txt

     文件        208  2018-11-07 14:13  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\stdafx.cpp

     文件        233  2018-11-07 14:13  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\stdafx.h

     文件        498  2018-11-07 14:13  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\targetver.h

     文件    1625088  2018-11-07 16:02  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1.ncb

     文件        875  2018-11-07 14:13  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1.sln

    ..A..H.      8192  2018-11-07 16:02  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1.suo

     文件      46080  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\Debug\1.1.exe

     文件     407464  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\Debug\1.1.ilk

     文件     666624  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\Debug\1.1.pdb

     文件       6944  2018-11-07 15:59  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.2\1.2\1.2.cpp

     文件       4487  2018-11-07 14:57  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.2\1.2\1.2.vcproj

     文件       1403  2018-11-07 16:01  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.2\1.2\1.2.vcproj.C27.ACER.user

     文件        663  2018-11-07 15:58  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.2\1.2\Debug\1.2.exe.embed.manifest

     文件        728  2018-11-07 15:58  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.2\1.2\Debug\1.2.exe.embed.manifest.res

     文件        621  2018-11-07 15:59  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.2\1.2\Debug\1.2.exe.intermediate.manifest

     文件      73926  2018-11-07 15:59  实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.2\1.2\Debug\1.2.obj

............此处省略91个文件信息

评论

共有 条评论