91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 431KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-16
  • 語言: 其他
  • 標簽: 操作系統(tǒng)??

資源簡介

操作系統(tǒng)實驗二 時間片輪轉(zhuǎn)RR進程調(diào)度算法(內(nèi)含源代碼和詳細實驗報告),詳細介紹:http://blog.csdn.net/xunciy/article/details/79239096

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
using?namespace?std;

//存放每個進程信息的結(jié)構(gòu)體
typedef?struct{
????char?name;//進程名字
????int?ArrivalTime;//到達時間
????int?ServiceTime;//服務(wù)時間
????int?FinishedTime;//完成時間
????int?WholeTime;//周轉(zhuǎn)時間
????double?WeightWholeTime;//帶權(quán)周轉(zhuǎn)時間
}RR;

static?queueRRqueue;??//用來模擬進程執(zhí)行RR調(diào)度算法的隊列
static?double?SumWT=0SumWWT=0AverageWT?=0AverageWWT=0;//平均周轉(zhuǎn)時間、平均帶權(quán)周轉(zhuǎn)時間
static?int?q;??//時間片數(shù)
static?int?n;??//進程個數(shù)
static?RR?RRarray[100];??//進程結(jié)構(gòu)體
static?RR?temp;??//進程結(jié)構(gòu)

void?Enter();//輸入時間片、到達時間、服務(wù)時間等
void?RRfunction();//執(zhí)行RR調(diào)度算法
void?display();//顯示各時間執(zhí)行情況,以及各個時間值

int?main(){
????Enter();
????RRfunction();
????display();
????return?0;
}

//輸入時間片、到達時間、服務(wù)時間等
void?Enter(){
????int?ij;
????cout<<“Enter?n:?“;
????cin>>n;
????cout<<“Enter?TimeSlice?q:?“;
????cin>>q;

????for?(i=0;i??????RRarray[i].name=i+65;//自動將進程名字順序編號為A、B、C、D、E等
????}

????cout<<“Enter?ArrivalTime:?“;
????for?(i=0;i??????cin>>RRarray[i].ArrivalTime;
????}

????cout<<“Enter?ServiceTime:?“;
????for?(i=0;i??????cin>>RRarray[i].ServiceTime;
????}

????//根據(jù)達時間排序
????for(i=0;i????????for(j=i+1;j????????????if(RRarray[i].ArrivalTime?>?RRarray[j].ArrivalTime)?{
????????????????temp?=?RRarray[i];
????????????????RRarray[i]?=?RRarray[j];
????????????????RRarray[j]?=?temp;
????????????}
????????}
????}
}

//執(zhí)行RR調(diào)度算法
void?RRfunction(){
????char?Moment[100];???//存儲每個時間片p對應(yīng)的進程名稱
????RRqueue.push(RRarray[0]);???//第一個進程進隊列

????int?MomentPoint?=?0;
????int?CurrentTime=0;
????int?tempTime;???//控制CurrentTime的累加時間,當前進程的服務(wù)時間小于時間片q的時候,起到重要作用
????int?i=1jkp;??//指向還未處理的進程的下標
????int?finalNumber?=?0;???//執(zhí)行RR算法后,進程的個數(shù)
????int?Time[50];

????//判斷第一個進程的服務(wù)時間是否大于時間片,如果大于CurrentTime=q,如果小于CurrentTime=服務(wù)時間
????if?(RRarray[0].ServiceTime>=q)
????????CurrentTime?=?q;
????else
????????CurrentTime?=?RRarray[0].ServiceTime;

????while(!RRqueue.empty()){
????????for?(j=i;j????????????if?(RRarray[j].name!=NULL?&&?CurrentTime?>=?RRarray[j].ArrivalTime){
????????????????RRqueue.push(RRarray[j]);
????????????????i++;
????????????}
????????}
????????if?(RRqueue.front().ServiceTime????????????tempTime?=?RRqueue.front().ServiceTime;
????????else
????????????tempTime?=?q;

????????RRqueue.front().ServiceTime?-=?q;???//進程每執(zhí)行一次,就將其服務(wù)時間?-q

????????//將隊首進程的名稱放入數(shù)組中
????????Moment[MomentPoint]?=?RRqueue.front().name;
????????MomentPoint++;
????????Time[finalNumber]?=?tempTime;
????????finalNumber++;


????????if?(RRqueue.front().ServiceTime?<=?0)??//把執(zhí)行完的進程退出隊列
????????????RRqueue.pop();???//如果進程的服務(wù)時間小于等于,即該進程已經(jīng)服務(wù)完了,將其退棧
????????else{
????????????//將隊首移到隊尾
????????????RRqueue.push(RRqueue.front());
????????????RRqueue.pop();
????????}
????????CurrentTime?+=?tempTime;

????}

????//進程各時間進程狀態(tài),計算完成時間
????cout<<“Time?0:?“;
????Time[finalNumber]=0;
????int?time?=?Time[0];
????f

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-02-02?14:31??實驗二??時間片輪轉(zhuǎn)RR進程調(diào)度算法\
?????目錄???????????0??2018-02-02?14:27??實驗二??時間片輪轉(zhuǎn)RR進程調(diào)度算法\2.RR\
?????文件????????5556??2017-12-14?11:29??實驗二??時間片輪轉(zhuǎn)RR進程調(diào)度算法\2.RR\RR.cpp
?????文件?????1075201??2017-12-14?11:29??實驗二??時間片輪轉(zhuǎn)RR進程調(diào)度算法\2.RR\RR.exe
?????文件???????43166??2017-12-14?11:29??實驗二??時間片輪轉(zhuǎn)RR進程調(diào)度算法\2.RR\RR.o
?????文件??????141289??2017-12-28?22:10??實驗二??時間片輪轉(zhuǎn)RR進程調(diào)度算法\實驗二??時間片輪轉(zhuǎn)RR進程調(diào)度算法.docx

評論

共有 條評論

相關(guān)資源