-
大小: 896KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-25
- 語言: C/C++
- 標(biāo)簽: 操作系統(tǒng)??作業(yè)調(diào)度??LLF??
資源簡介
含本人實驗報告,有具體流程圖,實驗課上寫的,有更好的想法可以提出,大家一起學(xué)習(xí),賺點積分不容易 C語言編寫,調(diào)試過可運行,含實驗報告,含具體流程圖 ,有注釋和變量解釋,環(huán)境為VS2008

代碼片段和文件信息
//?oslab1.cpp?:?定義控制臺應(yīng)用程序的入口點。
//
#include?“stdafx.h“
int?numa=0numb=0;//存放已經(jīng)運行的次數(shù)
int?deadtimea[10]={20406080100120140160180};//存放時間軸上A任務(wù)的截止時間
int?deadtimeb[10]={50100150200};//存放時間軸上B任務(wù)的截止時間
int?runtimea=10runtimeb=25;//存放當(dāng)前任務(wù)A、B還需要運行的時間,A、B任務(wù)的運行時間的初始值分別為10和25
int?clock=0;//clock中存放當(dāng)前時間
int?step=5;//用來存放時間跨度,每次增加5,即每隔5個時間單位進行一次最低松弛度優(yōu)先算法的調(diào)度
int?softa=0softb=0;//softa和softb分別用來存放當(dāng)前任務(wù)A和任務(wù)B的松弛度
bool?runa=falserunb=false;
//通過布爾量runa和runb來定義一些規(guī)則,runb為true表示B任務(wù)正在運行,為false表示當(dāng)前不允許B任務(wù)執(zhí)行,
//runa同理,在程序中可以靈活使用
void?softai()//最低松弛度優(yōu)先算法的核心部分
{
if(softa==0)//表示如果當(dāng)前A任務(wù)已經(jīng)到達了臨界條件即A任務(wù)松弛度為0時,此時要搶占處理機來執(zhí)行任務(wù)A
{
runb=false;
}
if(softb==0)//表示如果當(dāng)前B任務(wù)已經(jīng)到達了臨界條件即B任務(wù)松弛度為0時,此時要搶占處理機來執(zhí)行任務(wù)B
{
runa=false;
}
if(deadtimea[numa]-clock>20)//表示如果任務(wù)A當(dāng)前周期內(nèi)的運行任務(wù)已經(jīng)完成,而且尚未進入下一周期,則任務(wù)A放棄處理機,讓任務(wù)B執(zhí)行任務(wù)
{
runb=true;
}
if(deadtimeb[numb]-clock>25)//表示如果任務(wù)B當(dāng)前周期內(nèi)的運行任務(wù)已經(jīng)完成,而且尚未進入下一周期,則任務(wù)B放棄處理機,讓任務(wù)A執(zhí)行任務(wù)
{
runa=true;
}
if(softa {
runa=true;
runtimea-=step;
if(runtimea==0)
{
runtimea=10;
numa++;
}
}
else?
{
runb=true;
runtimeb-=step;
if(runtimeb==0)
{
runb=false;
runtimeb=25;
numb++;
}
}
}
void?display()//對表格中的每一項進行打印,包括“當(dāng)前時間、截止時間、運行時間、松弛度”
{
printf(“%5d%11d%11d%9d?%6d%11d%11d\n“clockdeadtimea[numa]runtimeasoftadeadtimeb[numb]runtimebsoftb);
}
int?_tmain(int?argc?_TCHAR*?argv[])
{
int?timeatimeb;//用來存放任務(wù)的周期
int?deadtime;//存放調(diào)度的最終截止時間
printf(“請輸入任務(wù)A的周期:\n“);
scanf(“%d“&timea);
printf(“請輸入任務(wù)A每周期的運行時間:\n“);
scanf(“%d“&runtimea);
printf(“請輸入任務(wù)B的周期:\n“);
scanf(“%d“&timeb);
printf(“請輸入任務(wù)B每周期的運行時間:\n“);
scanf(“%d“&runtimeb);
printf(“該調(diào)度算法從0時刻開始,請輸入調(diào)度運行時間:\n“);
scanf(“%d“&deadtime);
for(int?i=0;i<10;i++)
{
deadtimea[i]=timea*(i+1);//deadtimea[i]存放時間軸上A任務(wù)的截止時間
deadtimeb[i]=timeb*(i+1);//deadtimeb[i]存放時間軸上B任務(wù)的截止時間
}
printf(“*********************A*****************************B***************\n“);
printf(“當(dāng)前時間?必須完成時間?運行時間?松弛度?必須完成時間?運行時間?松弛度\n“);
while(clock<=deadtime)//在deadtime內(nèi)進行最低松弛度優(yōu)先的調(diào)用
{
softa=deadtimea[numa]-runtimea-clock;//計算當(dāng)前A任務(wù)的松弛度
softb=deadtimeb[numb]-runtimeb-clock;//計算當(dāng)前B任務(wù)的松弛度
display();//每調(diào)用一次算法,打印當(dāng)前任務(wù)的運行時間、截止時間等
softai();//調(diào)用最低松弛度優(yōu)先算法
clock+=step;//時間增加
}
getchar();
getchar();
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????31232??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\Debug\oslab1.exe
?????文件?????378340??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\Debug\oslab1.ilk
?????文件?????470016??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\Debug\oslab1.pdb
?????文件???????9508??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\BuildLog.htm
?????文件?????????65??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\mt.dep
?????文件????????663??2018-12-12?14:26??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\oslab1.exe.em
?????文件????????728??2018-12-12?14:26??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\oslab1.exe.em
?????文件????????621??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\oslab1.exe.intermediate.manifest
?????文件??????11038??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\oslab1.obj
?????文件????3211264??2018-12-12?14:26??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\oslab1.pch
?????文件??????12149??2018-12-12?14:26??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\stdafx.obj
?????文件??????68608??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\vc90.idb
?????文件?????126976??2018-12-12?15:33??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug\vc90.pdb
?????文件???????2992??2018-12-12?15:35??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\oslab1.cpp
?????文件???????4495??2018-12-12?14:15??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\oslab1.vcproj
?????文件???????1403??2018-12-12?16:52??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\oslab1.vcproj.C25.ACER.user
?????文件???????1177??2018-12-12?14:15??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\ReadMe.txt
?????文件????????211??2018-12-12?14:15??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\stdafx.cpp
?????文件????????233??2018-12-12?14:15??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\stdafx.h
?????文件????????498??2018-12-12?14:15??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\targetver.h
?????文件?????207872??2018-12-12?14:15??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1.ncb
?????文件????????884??2018-12-12?14:15??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1.sln
????..A..H.?????11264??2018-12-12?16:52??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1.suo
?????文件?????223819??2018-12-21?09:52??實驗9——最低松弛度優(yōu)先算法\實驗報告9.docx
?????文件??????65536??2018-12-12?16:08??實驗9——最低松弛度優(yōu)先算法\繪圖1.vsd
?????目錄??????????0??2018-12-21?09:13??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1\Debug
?????目錄??????????0??2018-12-21?09:13??實驗9——最低松弛度優(yōu)先算法\oslab1\Debug
?????目錄??????????0??2018-12-21?09:13??實驗9——最低松弛度優(yōu)先算法\oslab1\oslab1
?????目錄??????????0??2018-12-21?09:13??實驗9——最低松弛度優(yōu)先算法\oslab1
?????目錄??????????0??2018-12-21?09:52??實驗9——最低松弛度優(yōu)先算法
............此處省略3個文件信息
評論
共有 條評論