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

代码片段和文件信息
// 操作系统_实验四(动态分区分配算法).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.em
文件 728 2018-11-07 14:29 实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.1\1.1\Debug\1.1.exe.em
文件 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.em
文件 728 2018-11-07 15:58 实验4 主存空间的分配与回收(1)——首次适应算法FF和循环首次适应算法NF\1.2\1.2\Debug\1.2.exe.em
文件 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个文件信息
相关资源
- 操作系统c语言模拟文件管理系统844
- 操作系统课设 读写者问题 c语言实现
- ROS操作系统入门讲义
- 实验报告:数据结构长整数四则运算
- Linux操作系统下C语言编程从零开始
- 操作系统存储管理实验报告c/c++
- 编译原理实验报告+代码+使用说明
- 操作系统课程设计(银行家算法)附
- 现代操作系统第三版高清
- c++版学生成绩管理系统实验报告及源
- C++操作系统课设-进程管理
- 语法分析c语言实现程序代码+实验报告
- plo编译器 c语言 含测试 以及实验报告
- C语言内存分配详解
- 哲学家进餐问题的c++模拟实现
- 操作系统课程设计(生产者-消费者存
- 操作系统——5个实验.zip
- 中值滤波_均值滤波c语言实现_工程文
- 直方图均衡化_c语言实现_源代码+实验
- SVM分类算法实验报告+C语言程序 加强
- 操作系统进程管理实验
- 计算机网络课程设计之Ping程序含C++原
- C++网络嗅探器源代码及实验报告
- 操作系统—页面置换算法C++实现
- 地图着色mfc
- 操作系统 内存管理 模拟 图形界面
- 银行家算法c语言实现+实验报告
- 基于AT89C51的8*8点阵字符显示的实验报
- 银行家算法 mfc 含源代码 界面 操作系
- 操作系统生产者消费者问题MFC动态实
评论
共有 条评论