-
大小: 4.16MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-09-29
- 語(yǔ)言: C/C++
- 標(biāo)簽: 實(shí)驗(yàn)報(bào)告??操作系統(tǒng)??
資源簡(jiǎn)介
含本人實(shí)驗(yàn)報(bào)告,有具體流程圖,實(shí)驗(yàn)課上寫的,有更好的想法可以提出,大家一起學(xué)習(xí),賺點(diǎn)積分不容易

代碼片段和文件信息
//?操作系統(tǒng)_實(shí)驗(yàn)四(動(dòng)態(tài)分區(qū)分配算法).cpp?:?定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//
//判斷是否有空閑空間,進(jìn)行回收
//空閑區(qū)登記表,分配算法,回收算法
#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;??//內(nèi)存中空閑分區(qū)的個(gè)數(shù)
static?int?ProcessNum;?//需要分配的進(jìn)程個(gè)數(shù)
static?int?FreePartition[MAXNUMBER];??//空閑分區(qū)對(duì)應(yīng)的內(nèi)存
static?int?ProcessNeed[MAXNUMBER];??//需要分配的進(jìn)程大小
static?int?LeftFreePartition[MAXNUMBER];
static?int?LeftProcessNeed[MAXNUMBER];
static?int?start[MAXNUMBER];//用來(lái)保存每一空閑區(qū)的起始地址
static?char?ProcessName[MAXNUMBER];
static?char?NameProcessToPartition[MAXNUMBER][MAXNUMBER];//用來(lái)保存每一分區(qū)內(nèi)進(jìn)程分配情況
typedef?struct
{
int?partitionSize;//該進(jìn)程所需空間大小
int?id;
}sortNeed;
void?input()
{
cout<<“請(qǐng)選擇實(shí)現(xiàn)的算法:“< cout<<“*****??1?-?首次適應(yīng)算法?????*****“< cout<<“*****??2?-?循環(huán)首次適應(yīng)算法?*****“< cout<<“*****??0?-?結(jié)束?????????????*****“< 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<<“***********首次適應(yīng)算法***********“< initial();
int?ij;
for?(i?=?0;i {
for?(j?=?0;j {
if?(LeftProcessNeed[i]?<=?LeftFreePartition[j]?&&?LeftFreePartition!=0)??//當(dāng)系統(tǒng)內(nèi)存分區(qū)足夠大的時(shí)候,即分配給進(jìn)程資源
{
LeftFreePartition[j]?-=?LeftProcessNeed[i];???//扣除分配給進(jìn)程的資源
LeftProcessNeed[i]?=?0;??//當(dāng)且僅當(dāng)系統(tǒng)內(nèi)存分區(qū)足夠時(shí)才執(zhí)行,即當(dāng)前進(jìn)程大小置0
NameProcessToPartition[i][j]?=?ProcessName[i];??//存儲(chǔ)各個(gè)進(jìn)程所在的分區(qū)位置
break;???//很重要,一個(gè)進(jìn)程分區(qū)完后,應(yīng)該立即break,進(jìn)行下一個(gè)進(jìn)程的判斷
}
}
}
display();
}
void?NextFit()
{
cout<<“***********循環(huán)首次適應(yīng)算法***********“< 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;??//當(dāng)j遍歷到分區(qū)末尾的時(shí)候,返回首位置
}
isWhile?=?false;
}
else
nextPoint++;
}
}
display();
}
void?selectAlgorithm(int?chooseAlgorithm)
{
switch(chooseAlgorithm)
{
case?0:break;
case?1:FirstFit();break;
case?2:NextFit();break;
default:cout<<“請(qǐng)輸入
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????4884??2018-11-07?16:00??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\1.1.cpp
?????文件???????4487??2018-11-07?14:13??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\1.1.vcproj
?????文件???????1403??2018-11-07?16:02??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\1.1.vcproj.C27.ACER.user
?????文件????????663??2018-11-07?14:29??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\1.1.exe.em
?????文件????????728??2018-11-07?14:29??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\1.1.exe.em
?????文件????????621??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\1.1.exe.intermediate.manifest
?????文件??????65662??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\1.1.obj
?????文件????3211264??2018-11-07?14:29??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\1.1.pch
?????文件???????6076??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\BuildLog.htm
?????文件?????????65??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\mt.dep
?????文件??????12081??2018-11-07?14:29??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\stdafx.obj
?????文件?????183296??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\vc90.idb
?????文件?????282624??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\Debug\vc90.pdb
?????文件???????1159??2018-11-07?14:13??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\ReadMe.txt
?????文件????????208??2018-11-07?14:13??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\stdafx.cpp
?????文件????????233??2018-11-07?14:13??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\stdafx.h
?????文件????????498??2018-11-07?14:13??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1\targetver.h
?????文件????1625088??2018-11-07?16:02??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1.ncb
?????文件????????875??2018-11-07?14:13??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1.sln
????..A..H.??????8192??2018-11-07?16:02??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\1.1.suo
?????文件??????46080??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\Debug\1.1.exe
?????文件?????407464??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\Debug\1.1.ilk
?????文件?????666624??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.1\Debug\1.1.pdb
?????文件???????6944??2018-11-07?15:59??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.2\1.2\1.2.cpp
?????文件???????4487??2018-11-07?14:57??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.2\1.2\1.2.vcproj
?????文件???????1403??2018-11-07?16:01??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.2\1.2\1.2.vcproj.C27.ACER.user
?????文件????????663??2018-11-07?15:58??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.2\1.2\Debug\1.2.exe.em
?????文件????????728??2018-11-07?15:58??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.2\1.2\Debug\1.2.exe.em
?????文件????????621??2018-11-07?15:59??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.2\1.2\Debug\1.2.exe.intermediate.manifest
?????文件??????73926??2018-11-07?15:59??實(shí)驗(yàn)4?主存空間的分配與回收(1)——首次適應(yīng)算法FF和循環(huán)首次適應(yīng)算法NF\1.2\1.2\Debug\1.2.obj
............此處省略91個(gè)文件信息
評(píng)論
共有 條評(píng)論