xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 68KB
    文件類(lèi)型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-09
  • 語(yǔ)言: 其他
  • 標(biāo)簽: 操作系統(tǒng)??

資源簡(jiǎn)介

進(jìn)程調(diào)度算法包括先來(lái)先服務(wù)調(diào)度算法FCFS、最短作業(yè)時(shí)間優(yōu)先SJF(搶占式 和非搶占式)、最高響應(yīng)比調(diào)度HRN算法4種。(每個(gè)人必須做非搶占式SJF, 然后在后面的三種中任選一種,即每個(gè)人必須做2種調(diào)度算法的模擬。)

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include
#define?DELAY?100???????
using?namespace?std;

unsigned?short?TIME?=?0;?//當(dāng)前時(shí)間?
unsigned?short?NUM?=?0;?//進(jìn)程數(shù)量?
char?TYPE?=?‘1‘;???????//算法類(lèi)型

//進(jìn)程控制塊PCB?
typedef?struct?PCB?{
char?name[16];
char?state;?//[R]Run[F]Finish[P]Pause[N]New?
unsigned?short?t_arrive;?//到達(dá)時(shí)間
unsigned?short?t_start;?//開(kāi)始時(shí)間
unsigned?short?t_finish;?//完成時(shí)間
unsigned?short?t_service;?//服務(wù)時(shí)間
unsigned?short?t_run;?//運(yùn)行時(shí)間
unsigned?short?t_wait;?//等待時(shí)間
struct?PCB?*next;
}?pcb;

pcb?*now?=?NULL?//現(xiàn)在運(yùn)行的進(jìn)程
*head?=?NULL;?//pcb鏈頭部指針?

void?fcfs();?//先到先服務(wù)?
void?sjf();?//短作業(yè)優(yōu)先?

void?init();??????//初始化,完成pcb錄入?
pcb?*sort(pcb*);?//對(duì)init()錄入的pcb按到達(dá)時(shí)間排序?
void?timer();????//定時(shí)器,每一個(gè)延遲自我調(diào)用一次?
void?result();???//打印結(jié)果?

?//先到先服務(wù)算法
void?fcfs()?{
if?(now->t_arrive>TIME)?{//還未到達(dá),則是無(wú)進(jìn)程狀態(tài)
printf(“[時(shí)間:%d]\t無(wú)進(jìn)程運(yùn)行\(zhòng)n“?TIME);
return;
}
if?(now->state?==?‘N‘)?{//N新進(jìn)程改為R正在運(yùn)行進(jìn)程。設(shè)置開(kāi)始時(shí)間為time,并打印。
now->state?=?‘R‘;
now->t_start?=?TIME;
printf(“[時(shí)間:%d]\t進(jìn)程:%s?首次運(yùn)行\(zhòng)n“?TIME?now->name);
}
else?if?(now->state?==?‘R‘)?{//R正在運(yùn)行進(jìn)程的話
(now->t_run)++;//運(yùn)行時(shí)間自動(dòng)加一
if?(now->t_run?>=?now->t_service)?{//運(yùn)行結(jié)束時(shí)
now->state?=?‘F‘;//標(biāo)記結(jié)束
now->t_finish?=?TIME;//標(biāo)記結(jié)束時(shí)間
printf(“[時(shí)間:%d]\t進(jìn)程:%s?任務(wù)完成\n“?TIME?now->name);//打印
now?=?now->next;//跳轉(zhuǎn)到下一個(gè)進(jìn)程
if?(now?!=?NULL)?fcfs();
}
else?//打印運(yùn)行狀態(tài)
printf(“[時(shí)間:%d]\t進(jìn)程:%s?正在運(yùn)行,已運(yùn)行時(shí)間:%d\n“?TIME?now->name?now->t_run);
}
}

void?sjf()?{
if?(now->t_arrive>TIME)?{//所有進(jìn)程都完畢,新進(jìn)程進(jìn)程還未到達(dá),則是無(wú)進(jìn)程狀態(tài)
printf(“[時(shí)間:%d]\t無(wú)進(jìn)程運(yùn)行\(zhòng)n“?TIME);
return;
}
if?(now->state?==?‘N‘)?{//N新進(jìn)程改為R正在運(yùn)行進(jìn)程。設(shè)置開(kāi)始時(shí)間為time,并打印。
now->state?=?‘R‘;
now->t_start?=?TIME;
printf(“[時(shí)間:%d]\t進(jìn)程:%s?首次運(yùn)行\(zhòng)n“?TIME?now->name);
}
else?if?(now->state?==?‘R‘)?{//R正在運(yùn)行的進(jìn)程
(now->t_run)++;//運(yùn)行時(shí)間自動(dòng)加一
if?(now->t_run?>=?now->t_service)?{//運(yùn)行結(jié)束時(shí)
now->state?=?‘F‘;//標(biāo)記結(jié)束
now->t_finish?=?TIME;//標(biāo)記結(jié)束時(shí)間
printf(“[時(shí)間:%d]\t進(jìn)程:%s?任務(wù)完成\n“?TIME?now->name);//打印

pcb?*p?=?head//檢索指針,從頭檢索。
*p_min?=?NULL;//最小進(jìn)程
unsigned?short?t_min?=?9999;
while?(p?!=?NULL?&&?p->t_arrive?<=?TIME)?{//從【現(xiàn)在時(shí)間及以前】并且未結(jié)束的進(jìn)程中,選出服務(wù)時(shí)間最小的進(jìn)程?
if?(p->state?==?‘F‘)?{//當(dāng)前檢索進(jìn)程已經(jīng)結(jié)束,則檢索指針指向下一個(gè)進(jìn)程檢索。
p?=?p->next;
continue;
}
if?(p->t_service? t_min?=?p->t_service;
p_min?=?p;
}
p?=?p->next;//檢索下一個(gè)
}

now?=?p_min;//跳轉(zhuǎn)到最短進(jìn)程
if?(now?!=?NULL)?sjf();
}
else?//打印運(yùn)行狀態(tài)
printf(“[時(shí)間:%d]\t進(jìn)程:%s?正在運(yùn)行,已運(yùn)行時(shí)間:%d\n“?TIME?now->name?now->t_run);
}
}



//格式化輸出結(jié)果
void?result()?{
pcb?*p?=?head;
double?zhouzhuan?=?0?pingjunzhouzhuan?=?0;
printf(“\n=========運(yùn)行結(jié)果=========\n\n“);
printf(“名稱(chēng)?到達(dá)時(shí)間?開(kāi)始時(shí)間?完成時(shí)間?服務(wù)時(shí)間?周轉(zhuǎn)時(shí)間?帶權(quán)周轉(zhuǎn)時(shí)間\n“);
while?(p?!=?NULL)
{
printf(“?%s\t%d\t?%d\t?%d\t?%d\t?%d\t?%.2f\n“?p->name?p->t_arrive
p->t_start?p->t_finish?p->t_service?p->t_finish?-?p->t_arrive
1.0*(p->t_finish?-?p->t_arrive)?/?p->t_service);

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2017-06-15?18:35??os\
?????文件????????5346??2017-04-11?16:05??os\os.cpp
?????文件???????71945??2017-04-11?16:02??os\運(yùn)行結(jié)果.docx

評(píng)論

共有 條評(píng)論

相關(guān)資源