资源简介
含本人实验报告,有具体流程图,实验课上写的,有更好的想法可以提出,大家一起学习,赚点积分不容易
代码片段和文件信息
// 操作系统_实验四(动态分区分配算法).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++、mfc实现
- 磁盘调度c++模拟实现计算机操作系统
- Opencv+MFC框架图像处理
- 电子线路设计CAD实验报告(proteus)
- 编译原理课程实验报告词法分析器及
- 东北大学C++课程设计实验、代码及实
- 操作系统课设源代码 模拟进程的并
- vs+mssql实现医药管理信息系统实验报告
- BS架构实现的学生成绩管理
- 64位操作系统下win10、win7,VC6的所有问
- MFC课程设计图书管理系统实验报告内
- 操作系统课程设计之死锁检测
- 操作系统课程设计 哲学家进餐问题完
- VC++MP3播放器课程设计实验报告
- 2010-2011华南理工大学操作系统课程设
- 操作系统进程间通信,用mfc实现
- 2013-2014华南理工大学操作系统课程设
- 华中科技大学计算机学院C语言实验报
- 操作系统实验 请求分页存储管理(包
- 湖南大学2018数据结构实验报告/代码
- AES加密解密程序(C++)+实验报告
- 进程/作业调度:时间片轮转调度算法
- 嵌入式实时操作系统μC/OS-III(英文
- C语言优秀大作业-种地要浇水II-附赠实
- 操作系统课程设计:进程/作业调度
- 操作系统 进程调度 多级队列反馈
- 自己动手写操作系统 于渊 高清带书签
- 编译原理词法分析器实验报告含源代
评论
共有 条评论