青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品


/*********************************/
程序名稱:進(jìn)程調(diào)度算法:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法的實(shí)現(xiàn)
copyright@ pengkuny
主頁:http://www.shnenglu.com/pengkuny
完成日期:2006.12.01
參考資料:湯子瀛<<計(jì)算機(jī)操作系統(tǒng)>>
/********************************/
//?時(shí)間片輪轉(zhuǎn)調(diào)度算法
#include<iostream>
#include
<cstdio>
#include
<cmath>
#include
<cstring>

using?namespace?std;
enum?STATUS?{RUN,READY,WAIT,FINISH};

struct?PCBNode
{????????
????
int??processID;??????????????//進(jìn)程ID
????STATUS??status;??????????????//進(jìn)程狀態(tài)
????int??priorityNum;??????????//優(yōu)先數(shù)
????int??reqTime;?????????????//總的需要運(yùn)行時(shí)間
????int??remainTime;??????????//剩下需要運(yùn)行時(shí)間
????int??arriveTime;??????????//進(jìn)入就緒隊(duì)列時(shí)間
????int??startTime;???????????//開始運(yùn)行時(shí)間
????int??finishTime;??????????//結(jié)束運(yùn)行時(shí)間
????int??totalTime;???????????//周轉(zhuǎn)時(shí)間
????float??weightTotalTime;??????//帶權(quán)周轉(zhuǎn)時(shí)間????
}
;

struct?QueueNode?
{
????
int?ID;??????????//進(jìn)程ID
????struct?QueueNode?*?next;???//隊(duì)列中下一個(gè)進(jìn)程指針
}
;

struct?LinkQueue
{
????QueueNode?
*head;//隊(duì)首
}
;
void Fcfs(LinkQueue& Q, int& totalTimeSum, int& weightTotalTimeSum,PCBNode * ProcessTable);
bool?RR_Run(LinkQueue&?Q,QueueNode*?q,?QueueNode*?p,?const?int?Round,int&?currentTime,PCBNode?*?ProcessTable);
//分配時(shí)間片給q所指進(jìn)程,p為剛退出的進(jìn)程
void?RoundRobin(LinkQueue&?Q,const?int?Round,?int&?totalTimeSum,?int&?weightTotalTimeSum,PCBNode?*?ProcessTable);
//時(shí)間片輪轉(zhuǎn)調(diào)度,調(diào)用RR_Run(),時(shí)間片大小設(shè)為Round
void?InitialQueue(LinkQueue&?Q,PCBNode?*?ProcessTable,const?int?processnum);
//初始化就緒隊(duì)列
void?Input(PCBNode?*?ProcessTable,?const?int?processnum);
//從input.txt文件輸入數(shù)據(jù)

int?main()
{
????LinkQueue?Q;
//就緒隊(duì)列
????Q.head?=?NULL;
????
const?int?processnum?=?16;//進(jìn)程數(shù)
????const?int?Round?=?1;??????//時(shí)間片大小
????int?totalTimeSum?=?0;?????//周轉(zhuǎn)時(shí)間
????int????WeightTotalTimeSum?=?0;//帶權(quán)周轉(zhuǎn)時(shí)間
????PCBNode?*?ProcessTable=new?PCBNode[processnum];???//進(jìn)程表

????Input(ProcessTable,?processnum);
????InitialQueue(Q,?ProcessTable,?processnum);
????RoundRobin(Q,?Round,?totalTimeSum,WeightTotalTimeSum,ProcessTable);????
????cout
<<"時(shí)間片輪調(diào)度的平均周轉(zhuǎn)時(shí)間為:"<<totalTimeSum/processnum<<endl;
????cout
<<"時(shí)間片輪調(diào)度的平均帶權(quán)周轉(zhuǎn)時(shí)間為:"<<WeightTotalTimeSum/processnum<<endl;

????Input(ProcessTable,?processnum);
????InitialQueue(Q,?ProcessTable,?processnum);
????Fcfs(Q,?totalTimeSum,WeightTotalTimeSum,ProcessTable);
????cout
<<"先來先服務(wù)的平均周轉(zhuǎn)時(shí)間為:"<<totalTimeSum/processnum<<endl;
????cout
<<"先來先服務(wù)的平均帶權(quán)周轉(zhuǎn)時(shí)間為:"<<WeightTotalTimeSum/processnum<<endl;

????delete?[]?ProcessTable;
????
return?0;
}


void?RoundRobin(LinkQueue&?Q,const?int?Round,?int&?totalTimeSum,?int&?weightTotalTimeSum,PCBNode?*?ProcessTable)
{
????totalTimeSum?
=?0;???//總的周轉(zhuǎn)時(shí)間
????weightTotalTimeSum?=?0;//平均周轉(zhuǎn)時(shí)間
????int?currentTime?=?0;???//當(dāng)前時(shí)間
????QueueNode*?p;
????QueueNode
*?q;
????QueueNode
*?r;
????
bool?finish?=?false;//調(diào)用RR_Run()后,該進(jìn)程是否已經(jīng)做完退出
????
????p?
=?Q.head;
????q?
=?p->next;
????
while?(q?!=?NULL)//從隊(duì)首開始依次分配時(shí)間片
????{
????????
do
????????
{????????
????????????cout
<<"**********************"<<endl;
????????????cout
<<"在時(shí)間片"<<(currentTime+1)/Round<<"內(nèi),活動(dòng)進(jìn)程為:??"<<q->ID<<endl;
????????????cout
<<"進(jìn)程"<<q->ID<<"?現(xiàn)在需要的時(shí)間片為:??"<<ProcessTable[q->ID].remainTime<<endl;
????????????finish?
=?RR_Run(Q,?q,?p,?Round,?currentTime,?ProcessTable);//分配時(shí)間片給q進(jìn)程
????????????cout<<endl;
????????????
????????????
if?(!finish)//若是進(jìn)程在本時(shí)間片內(nèi)做完,則跳出do…while循環(huán)
????????????{????????????
????????????????
if?(q->next?==?NULL)?
????????????????
{
????????????????????r?
=?Q.head->next;
????????????????}

????????????????
else
????????????????
{
????????????????????r?
=?q->next;
????????????????}

????????????}

????????????
else?//否則計(jì)算周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間
????????????{
????????????????totalTimeSum?
+=?ProcessTable[q->ID].totalTime;
????????????????weightTotalTimeSum?
+=?ProcessTable[q->ID].weightTotalTime;

????????????????delete?q;?
//從隊(duì)列中刪除q進(jìn)程
????????????????q?=?p;
????????????}

????????}
while?(!finish?&&??(ProcessTable[r->ID].arriveTime?>?currentTime?+?Round));
????????
//下一個(gè)進(jìn)程很晚才來,則繼續(xù)給當(dāng)前進(jìn)程分配時(shí)間片
????????
????????p?
=?q;
????????q?
=?q->next;

????????
if?(q?==?NULL?&&?Q.head->next!=NULL)
????????
{
????????????p?
=?Q.head;
????????????q?
=?p->next;
????????}
?
????}
?
????delete?Q.head;
????Q.head?
=?NULL;
}


bool?RR_Run(LinkQueue&?Q,QueueNode*?q,?QueueNode*?p,?const?int?Round,int&?currentTime,PCBNode?*?ProcessTable)
{
????
if?(ProcessTable[q->ID].remainTime?<=?Round)//在此時(shí)間片內(nèi)能夠做完,之后退出進(jìn)程調(diào)度
????{
????????ProcessTable[q
->ID].finishTime?=?currentTime?+?ProcessTable[q->ID].remainTime;
????????ProcessTable[q
->ID].totalTime?+=?ProcessTable[q->ID].remainTime;
????????ProcessTable[q
->ID].weightTotalTime?=?ProcessTable[q->ID].totalTime/ProcessTable[q->ID].reqTime;????????

????????currentTime?
=?ProcessTable[q->ID].finishTime;
????????
????????p
->next?=?q->next;
????????cout
<<endl;
????????cout
<<"進(jìn)程"<<q->ID<<"完成!"<<endl;

????????
return?true;
????}

????
else//此時(shí)間片內(nèi)做不完
????{
????????ProcessTable[q
->ID].remainTime?=?ProcessTable[q->ID].remainTime?-?Round;
????????ProcessTable[q
->ID].totalTime?+=?Round;
????????currentTime?
+=?Round;
????????
????????
return?false;
????}

}



void?Fcfs(LinkQueue&?Q,?int&?totalTimeSum,?int&?weightTotalTimeSum,PCBNode?*?ProcessTable)
{
????totalTimeSum?
=?0;
????weightTotalTimeSum?
=?0;//平均周轉(zhuǎn)時(shí)間
????QueueNode*?p;
????QueueNode
*?q;
????
????p?
=?Q.head->next;
????
if?(p?!=NULL?)?
????
{
????????ProcessTable[p
->ID].startTime?=?ProcessTable[p->ID].arriveTime;
????????ProcessTable[p
->ID].finishTime?=?ProcessTable[p->ID].arriveTime?+?ProcessTable[p->ID].reqTime;
????}

????
????
for(q=p->next;?q!=NULL;?q=q->next)
????
{
????????
????????
if?(ProcessTable[q->ID].arriveTime?<?ProcessTable[p->ID].finishTime)
????????
{
????????????ProcessTable[q
->ID].startTime?=?ProcessTable[p->ID].finishTime;
????????????ProcessTable[q
->ID].finishTime?=?ProcessTable[p->ID].finishTime?+?ProcessTable[q->ID].reqTime;
????????}

????????
else//下個(gè)進(jìn)程到達(dá)時(shí)間較晚
????????{
????????????ProcessTable[q
->ID].startTime?=?ProcessTable[q->ID].arriveTime;
????????????ProcessTable[q
->ID].finishTime?=?ProcessTable[q->ID].arriveTime?+?ProcessTable[q->ID].reqTime;
????????}

????????p?
=?q;
????}

????
????
for(q=Q.head->next;?q!=NULL;?q=q->next)
????
{
????????ProcessTable[q
->ID].totalTime?=?ProcessTable[q->ID].finishTime?-?ProcessTable[q->ID].arriveTime;
????????ProcessTable[q
->ID].weightTotalTime?=?ProcessTable[q->ID].totalTime/ProcessTable[q->ID].reqTime;????????
????????totalTimeSum?
+=?ProcessTable[q->ID].totalTime;
????????weightTotalTimeSum?
+=?ProcessTable[q->ID].weightTotalTime;
????}
????
????
????
int?t?=?0;
????
for(q=Q.head->next;?q!=NULL;?q=q->next)
????
{
????????cout
<<"*********************"<<endl;
????????
while?(?t<ProcessTable[q->ID].finishTime?)
????????
{
????????????cout
<<"時(shí)刻"<<t<<":??進(jìn)程"<<q->ID<<"活動(dòng)"<<endl;
????????????t
++;
????????}

????????
if?(q->next?!=?NULL)
????????
{????
????????????cout
<<"時(shí)刻"<<t<<":??進(jìn)程"<<q->ID<<"結(jié)束活動(dòng),開始下一個(gè)進(jìn)程."<<endl;
????????????cout
<<"進(jìn)程"<<q->ID<<"的周轉(zhuǎn)時(shí)間為:?"<<ProcessTable[q->ID].totalTime<<endl;
????????????cout
<<"進(jìn)程"<<q->ID<<"的帶權(quán)周轉(zhuǎn)時(shí)間為:?"<<ProcessTable[q->ID].weightTotalTime<<endl<<endl;
????????}

????????
else
????????
{
????????????cout
<<"時(shí)刻"<<t<<":??進(jìn)程"<<q->ID<<"結(jié)束活動(dòng)."<<endl<<endl;
????????????cout
<<"進(jìn)程"<<q->ID<<"的周轉(zhuǎn)時(shí)間為:?"<<ProcessTable[q->ID].totalTime<<endl;
????????????cout
<<"進(jìn)程"<<q->ID<<"的帶權(quán)周轉(zhuǎn)時(shí)間為:?"<<ProcessTable[q->ID].weightTotalTime<<endl<<endl;????????????
????????}

????}

????cout
<<"所有進(jìn)程結(jié)束活動(dòng)."<<endl<<endl;

????p?
=?Q.head;
????
for(q=p->next;?q!=NULL;?q=q->next)
????
{
????????delete?p;
????????p?
=?q;
????}

}



void?InitialQueue(LinkQueue&?Q,?PCBNode?*?ProcessTable,const?int?processnum)
{
????
//初始化
????
????
for?(int?i=0;i<processnum;i++)
????
{
????????ProcessTable[i].processID
=i;
????????ProcessTable[i].reqTime
=ProcessTable[i].remainTime;
????????ProcessTable[i].finishTime
=0;
????????ProcessTable[i].startTime
=0;????
????????ProcessTable[i].status
=WAIT;
????????ProcessTable[i].totalTime
=0;
????????ProcessTable[i].weightTotalTime
=0;????????
????}

????
????Q.head?
=?new?QueueNode;
????Q.head
->next?=?NULL;
????QueueNode?
*?p;
????QueueNode?
*?q;
????
for?(i=0;i<processnum;i++)
????
{????
????????p?
=?new?QueueNode;
????????p
->ID?=?i;
????????p
->next?=?NULL;
????????
if?(i?==?0)
????????
{
????????????Q.head
->next?=?p;????????????
????????}

????????
else
????????????q
->next?=?p;
????????
????????q?
=?p;
????}

}



void?Input(PCBNode?*?ProcessTable,?const?int?processnum)
{
????FILE?
*fp;????????//讀入線程的相關(guān)內(nèi)容
????if((fp=fopen("input.txt","r"))==NULL)
????
{
????????cout
<<"can?not?open?file!"<<endl;
????????exit(
0);
????}
????????
????
for(int?i=0;i<processnum;i++)
????
{
????????fscanf(fp,
"%d?%d?%d",&ProcessTable[i].arriveTime,&ProcessTable[i].remainTime,&ProcessTable[i].priorityNum);
????}

????fclose(fp);
}




建議輸入數(shù)據(jù):input.txt
0????4????? 0
1? ? 35???? 1
2????10???? 2
3? ? 5????? 3
6?? ?9????? 4
7?? ?21???? 5
9??? 35???? 6
11 ?23???? 7
12? 42???? 8 ?
13?? 1????? 9
14?? 7???? 10
20? ?5???? 11
23? ?3???? 12
24? ?22??? 13
25?? 31??? 14
26?? 1???? 15
posted on 2006-12-04 12:16 哈哈 閱讀(16699) 評論(39)  編輯 收藏 引用

評論:
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-03 16:17 | phoenix
怎么運(yùn)行不了的?  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-03 19:46 | pengkuny
@phoenix
什么現(xiàn)象?
我試了一下,是不是"can't open the file"?
你只要添加一個(gè)input.txt文件就可以運(yùn)行了,文件內(nèi)容為:(我建議輸入的數(shù)據(jù)).
  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-04 13:21 | phoenix
不是"can't open the file"
是 “Fcfs(Q, totalTimeSum,WeightTotalTimeSum,ProcessTable);”這里的'Fcfs' : undeclared identifier
還有“void Fcfs(LinkQueue& Q, int& totalTimeSum, int& weightTotalTimeSum,PCBNode * ProcessTable)
{ ”
這里的'Fcfs' : redefinition; different type modifiers

這個(gè)怎么辦?還有我可以加你QQ么?
  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-04 13:47 | pengkuny
@phoenix
sorry,起先忘了函數(shù)聲明Fcfs;已經(jīng)加上去了,
不過這些錯(cuò)誤自己應(yīng)該能夠調(diào)試修改過來吧
當(dāng)然可以加QQ拉  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-04 13:56 | phoenix
希望能得到快點(diǎn)的回復(fù)~~呵呵`~謝謝!  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-04 13:57 | phoenix
哦哦~~我加你QQ啰~~  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-04 14:05 | phoenix
還有我想問你哦~~我的VC6.0里沒有stdafx.h這個(gè)函數(shù)~~有些程序就運(yùn)行不了~~怎么辦?  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-04 14:15 | pengkuny
@phoenix
vc里怎么可能沒有呢?那就奇怪了.#include<stdafx.h>
實(shí)在沒有,到別人那里拷貝一份,放到原來的文件夾下就可以了——我想  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-05 22:09 | 小山日志
stdafx.h 是用來加速編譯速度的頭文件,通常編譯VC工程時(shí)把你需要的頭文件在這里包含,不用也行。特別是這樣的小工程... ... ^_^  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-05 23:46 | pengkuny
@小山日志
沒錯(cuò),避免重復(fù)編譯.
一般沒必要加  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-01-08 09:29 | phoenix
你好,我想問問你那里還保存有我前幾天用郵箱發(fā)給你的進(jìn)程調(diào)度么?
我想讓你幫我分析一下里面的代碼,我有些問題搞不懂。比如,我想知道
源代碼前面的“PCB,*PCBptr,**PCBpp;”這幾個(gè)是什么意思,PCBpp為什么要用兩個(gè)**?方便的話,可以在QQ上回復(fù)我么,我一直在線的。謝謝!  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-03-09 18:49 | fangyi
你好,請問你能不能再加上一種調(diào)度算法,優(yōu)先級調(diào)度算法,謝謝你哦!!!  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-03-09 19:18 | pengkuny
@fangyi
那不能,優(yōu)先級調(diào)度算法倒是有,不過是別人做的,
要的話email給我:pengkuny@163.com  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-03-10 13:03 | fangyi
那太感謝了,我的emai是zhuangfangyi@163.com  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-03-11 09:35 | fangyi
已經(jīng)收到你的郵件了,真的很感謝,我加你qq,交個(gè)朋友吧!  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法[未登錄] 2007-05-20 20:21 |
@pengkuny有你在真好呀解決了很多問題呀哈哈 謝謝了??!
  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-16 13:32 | 小亮
請問可不可以提供一個(gè)用C或C++寫的多級反饋隊(duì)列調(diào)度算法啊?謝謝  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-16 13:48 | pengkuny
@小亮
你聯(lián)系方式都沒有,叫我怎么提供?  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-17 13:25 | vicky
可否將 高優(yōu)先權(quán)優(yōu)先調(diào)度算法 和 多級反饋隊(duì)列調(diào)度算法的C代碼給我呢?萬分感謝~
我郵箱是mxw_0925@sohu.com  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-17 13:56 | 小亮
請問可不可以提供一個(gè)用C或C++寫的多級反饋隊(duì)列調(diào)度算法和多級反饋隊(duì)列調(diào)度算法的C代碼完整程序啊?對不起,之前忘記給郵箱地址了,我郵箱地址是du198573@126.com,急需,請多多指教,萬分感激!謝謝!@pengkuny
  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-17 14:04 | 小亮
請問可不可以提供一個(gè)用C或C++寫的多級反饋隊(duì)列調(diào)度算法和多級反饋隊(duì)列調(diào)度算法的C代碼完整程序啊?對不起,之前忘記給郵箱地址了,我郵箱地址是du198573@126.com,急需,請多多指教,萬分感激!謝謝,可以的話也可以加我QQ:404101489  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-18 11:53 | 小亮
@pengkuny
感謝這么快就幫我寫好了多級反饋隊(duì)列調(diào)度算法,如果能附加N-S流程圖就更加完美了,不過還是真的要感謝你!  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-18 16:32 | 小亮
感謝這么快就幫我寫好了多級反饋隊(duì)列調(diào)度算法,如果能附加N-S流程圖就更加完美了,不過還是真的要感謝你!希望有時(shí)間可以發(fā)個(gè)N-S流程圖給我,謝謝!du198573@126.com  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-18 22:50 | pengkuny
@小亮
沒空, 我現(xiàn)在一大堆考試 一大堆實(shí)驗(yàn) 天天凌晨5,6點(diǎn)才睡覺, 煩死了, 呵呵  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-06-19 12:10 | 小亮
@pengkuny
沒關(guān)系拉,那你自己要注意休息拉!  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-07-05 17:41 | 寶貝疙瘩
能不能在這2天內(nèi)幫我寫一個(gè)先來先服務(wù)的程序,簡單點(diǎn)的,每句后面有注釋,最后些上思路的?謝謝啊~~  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-07-05 18:10 | pengkuny
@寶貝疙瘩
幫你寫?
Oh, come on!

十天之后再說吧,我最近考試煩死了.
  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-07-05 18:13 | pengkuny
@寶貝疙瘩
我這篇文章里不是已經(jīng)給出先來先服務(wù)的源代碼了嗎?
  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-12-02 11:44 | *幻&.
你好俸哦.......
偶像........  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法[未登錄] 2007-12-06 13:06 | kevin
偶像厲害啊!?。。。?
能不能順便提供個(gè)提供一個(gè)用C或C++寫的多級反饋隊(duì)列調(diào)度算法啊?謝謝

我的郵箱是tanyongshan18@126.com  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2007-12-24 00:08 | betty
input.txt文件是什么意思  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2008-10-24 10:35 | wuming
誰需要這個(gè)程序就聯(lián)系我 發(fā)郵件 ludinghui125@163.com  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2009-04-09 10:57 | 做實(shí)驗(yàn)不容易
可以把修改了的程序貼上來不?不要加那個(gè)intput.txt文件的.  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2009-04-20 10:37 | 殲擊機(jī)
#include<conio.h>
#include<iostream.h>
#include<fstream.h>

#define N 20

typedef struct pcb/*進(jìn)程控制塊定義*/
{
char pname[N]; /*進(jìn)程名*/
int runtime; /*運(yùn)行時(shí)間*/
int arrivetime; /*到達(dá)時(shí)間*/
char state; /*進(jìn)程狀態(tài)*/
struct pcb *next; /*鏈接指針*/
}PCB;

PCB head_input;//就緒隊(duì)列
PCB head_run;
PCB * pcb_input;

static char R='r',C='c';
unsigned long current; /*記錄系統(tǒng)當(dāng)前時(shí)間的變量*/

void inputprocess(); /*建立進(jìn)程函數(shù)*/
int readyprocess(); /*建立就緒隊(duì)列函數(shù)*/
int readydata(); /*判斷進(jìn)程是否就緒函數(shù)*/
int runprocess(); /*運(yùn)行進(jìn)程函數(shù)*/

ofstream fout;

/*定義建立就緒隊(duì)列函數(shù)*/
int readyprocess()
{
while(1)
{
if(readydata()==0)/*判斷是否就緒函數(shù)*/
return 1;
else
runprocess();/*運(yùn)行進(jìn)程函數(shù)*/
}
}

/*定義判斷就緒隊(duì)列是否有進(jìn)程函數(shù)*/
int readydata()
{
if(head_input.next==NULL)
{
if(head_run.next==NULL)
return 0;//就緒隊(duì)列和運(yùn)行隊(duì)列都沒有進(jìn)程時(shí),返回0,最終程序結(jié)束
else
return 1;//就緒隊(duì)列為空,運(yùn)行隊(duì)列非空,返回上級循環(huán),繼續(xù)運(yùn)行
}

PCB *p1,*p2,*p3;

p1=head_run.next;
p2=&head_run;
while(p1!=NULL)
{
p2=p1;
p1=p2->next;
}
p1=p2;//p1指向run隊(duì)列的最后一個(gè)進(jìn)程

p3=head_input.next;//p3指向就緒隊(duì)列的第一個(gè)進(jìn)程
p2=&head_input;

while(p3!=NULL)
{//遍歷就緒隊(duì)列
if(((unsigned long)p3->arrivetime<=current)&&(p3->state==R))
{//若符合條件(p3所指進(jìn)程的時(shí)間)
cout<<"Time slice is "<<current<<" (time "<<(current+500)/1000<<"); Process "<<p3->pname<<" start,\n";
fout<<"Time slice is "<<current<<" (time "<<(current+500)/1000<<"); Process "<<p3->pname<<" start,\n";
p2->next=p3->next;

//將p3所指進(jìn)程,放到p1所指進(jìn)程之后
p3->next=p1->next;
p1->next=p3;

p3=p2;
}
p2=p3;
p3=p3->next;
}
return 1;
}

/*定義運(yùn)行進(jìn)程函數(shù)*/
int runprocess()
{
PCB *p1,*p2;
if(head_run.next==NULL)
{//若運(yùn)行隊(duì)列為空,時(shí)間+1,跳出函數(shù)
current++;
return 1;
}
else
{
p1=head_run.next;//p1指向運(yùn)行隊(duì)列的第一個(gè)進(jìn)程
p2=&head_run;
while(p1!=NULL)
{//遍歷運(yùn)行隊(duì)列

p1->runtime--;//p1所指進(jìn)程運(yùn)行時(shí)間-1
current++;//時(shí)間+1

if(p1->runtime<=0)
{//p1所指進(jìn)程運(yùn)行時(shí)間=0,輸出并刪除
cout<<"Time slice is "<<current<<" (time "<<(current+500)/1000<<"); Process "<<p1->pname<<" end. \n";
fout<<"Time slice is "<<current<<" (time "<<(current+500)/1000<<"); Process "<<p1->pname<<" end. \n";
p1->state=C;
p2->next=p1->next;
delete p1;
p1=NULL;
}
else
{
p2=p1;
p1=p2->next;
}
}
return 1;
}
}


/*定義建立進(jìn)程函數(shù)*/
void inputprocess()
{

PCB *p1,*p2;
int num; /*要建立的進(jìn)程數(shù)*/
unsigned long max=0;

cout<<"How many processes do you want to run:";
fout<<"How mant processes do you want to run:";
cin>>num;
fout<<num<<endl;

p1=&head_input;
p2=p1;
p1->next=new PCB;
p1=p1->next;

for(int i=0;i<num;i++)
{
cout<<"No."<<i+1<<" process input pname:";
fout<<"No."<<i+1<<" process input pname:";
cin>>p1->pname;
fout<<p1->pname<<endl;

cout<<" runtime:";
fout<<" runtime:";
cin>>p1->runtime;
fout<<p1->runtime<<endl;

cout<<" arrivetime:";
fout<<" arrivetime:";
cin>>p1->arrivetime;
fout<<p1->arrivetime<<endl;

p1->runtime=(p1->runtime)*1000;
p1->arrivetime=(p1->arrivetime)*1000;
p1->state=R;
if((unsigned long)(p1->arrivetime)>max)
max=p1->arrivetime;
p1->next=new PCB;
p2=p1;
p1=p1->next;
}

delete p1;
p1=NULL;
p2->next=NULL;
}



void main()
{
fout.open("result.txt");
cout<<"\ntime 1=1000 time slice\n";
fout<<"\ntime 1=1000 time slice\n";

current=0;
inputprocess();
readyprocess();

cout<<flush;
getch();
fout.close();
}  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2009-05-03 12:53 | 創(chuàng)意產(chǎn)品
謝謝,學(xué)習(xí)了  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2009-06-09 20:43 | 課程設(shè)計(jì)
請問這個(gè)是有界面的嘛?請問能不能發(fā)一個(gè)有界面的,先來先服務(wù)、時(shí)間片輪轉(zhuǎn)調(diào)度算法???謝謝~~lily88zl@yahoo.com.cn  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2009-08-21 10:56 | Cavendish
@phoenix
重新定義 采用相同的模型定義  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2009-08-21 10:57 | Cavendish
@課程設(shè)計(jì)
加上一個(gè)界面編輯器 自己編輯一個(gè)就好了  回復(fù)  更多評論
  
# re: 進(jìn)程調(diào)度:先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法 2010-04-15 17:04 | 捏捏
input.txt添加到哪里啊?
@pengkuny
  回復(fù)  更多評論
  

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            你懂的视频一区二区| 亚洲永久视频| 国产午夜一区二区三区| 国产精品视频xxxx| 国产伦精品一区二区| 国产精品久久久久一区二区三区 | 日韩性生活视频| 亚洲精品日韩在线| 在线亚洲欧美视频| 亚洲欧美在线一区二区| 欧美亚洲在线| 久久综合精品一区| 欧美大胆a视频| 亚洲美女在线一区| 亚洲午夜久久久| 欧美在线观看你懂的| 久久精品成人| 欧美国产日韩精品免费观看| 欧美日韩亚洲一区二区三区在线观看| 国产精品久久99| 国产一区二区你懂的| 亚洲高清久久| 中日韩美女免费视频网址在线观看| 亚洲免费影视| 久久频这里精品99香蕉| 亚洲国产精品久久久久秋霞蜜臀 | 国产一区99| 亚洲国产精品久久精品怡红院 | 亚洲精品一区在线| 亚洲愉拍自拍另类高清精品| 久久九九全国免费精品观看| 欧美激情一区二区三区| 国产美女精品免费电影| 亚洲福利在线观看| 亚洲欧美成人一区二区在线电影| 久久免费视频网| 亚洲精品在线一区二区| 欧美一级午夜免费电影| 免费黄网站欧美| 国产精品免费看| 亚洲国产欧美不卡在线观看| 亚洲欧美国产高清va在线播| 久久婷婷激情| 在线亚洲激情| 久久综合久色欧美综合狠狠| 国产精品99一区二区| 在线成人免费观看| 亚洲欧美不卡| 亚洲缚视频在线观看| 亚洲欧美日韩精品| 能在线观看的日韩av| 国产日韩欧美中文| 日韩一二三区视频| 久久这里有精品15一区二区三区| 99国产精品99久久久久久粉嫩| 久久精品99国产精品日本| 国产精品成人v| 亚洲人成免费| 久久嫩草精品久久久精品一| 亚洲午夜电影在线观看| 免费在线观看成人av| 国产亚洲免费的视频看| 亚洲夜晚福利在线观看| 欧美承认网站| 亚洲尤物视频在线| 欧美日韩一区二区三区在线看| 亚洲高清在线| 久久久欧美精品sm网站| 亚洲一二三区在线观看| 欧美激情欧美激情在线五月| 永久免费毛片在线播放不卡| 欧美一区二区三区免费看| 亚洲精品资源美女情侣酒店| 蜜桃av一区二区三区| 黄色日韩网站| 久久精品一本| 亚洲影院在线观看| 欧美色道久久88综合亚洲精品| 91久久在线| 欧美.www| 久久久精品性| 国产综合久久久久久| 久久gogo国模裸体人体| 在线视频日韩| 欧美三区视频| 99精品视频网| 亚洲三级电影全部在线观看高清| 久久一区二区三区超碰国产精品| 国产中文一区| 久久久久久久一区| 香蕉av777xxx色综合一区| 国产精品女主播| 亚洲欧美久久| 一本色道久久99精品综合| 欧美日韩久久精品| 99re热精品| 亚洲破处大片| 欧美精品观看| 一本在线高清不卡dvd| 亚洲国产日韩美| 欧美金8天国| 一级日韩一区在线观看| 亚洲精品在线视频| 欧美揉bbbbb揉bbbbb| 亚洲视频在线观看免费| 日韩一级黄色片| 欧美性做爰毛片| 午夜精品久久久久久久久久久久久 | 国产精品99一区| 亚洲欧美在线x视频| 在线视频精品| 国产精品视频网址| 久久成人免费| 久久久久欧美精品| 亚洲国产美女精品久久久久∴| 亚洲第一网站| 欧美日本三区| 亚洲欧美日韩一区| 午夜精品视频在线观看一区二区| 国产一区二区三区在线免费观看 | 久久人人看视频| 亚洲国产美国国产综合一区二区| 亚洲盗摄视频| 欧美巨乳在线| 亚洲你懂的在线视频| 午夜精品福利一区二区三区av| 国产无一区二区| 免费看的黄色欧美网站| 欧美国产高潮xxxx1819| 亚洲一二三区在线| 亚洲欧美日韩在线高清直播| 国内精品美女在线观看| 欧美激情91| 欧美日韩在线视频观看| 欧美一站二站| 久久综合激情| 亚洲视频第一页| 先锋影院在线亚洲| 91久久国产精品91久久性色| 99re国产精品| 国产一区免费视频| 亚洲国产日韩欧美在线图片| 国产精品久久久久久模特| 久久久久一区二区| 欧美精品v国产精品v日韩精品 | 免费视频久久| 欧美日韩亚洲国产一区| 久久成人av少妇免费| 老司机67194精品线观看| 中文久久精品| 久久国产黑丝| 一区二区三区视频在线观看| 亚洲欧美中文在线视频| 亚洲人精品午夜在线观看| 亚洲一区二区三区涩| 亚洲国产成人高清精品| 亚洲视频在线二区| 亚洲电影免费在线观看| 亚洲图片欧美日产| 亚洲国产成人91精品 | 久久亚洲精品一区| 亚洲一区二区三区免费视频| 久久久噜噜噜久久中文字幕色伊伊| 99综合视频| 久久久久久**毛片大全| 亚洲系列中文字幕| 久久综合九色欧美综合狠狠| 亚洲欧美在线aaa| 欧美成人免费大片| 久久精品国产久精国产爱| 欧美日韩国产在线看| 久久这里只有精品视频首页| 欧美视频在线观看视频极品| 欧美xx69| 国产视频在线观看一区二区三区| 91久久在线观看| 极品av少妇一区二区| 亚洲亚洲精品三区日韩精品在线视频| 亚洲东热激情| 欧美亚洲一级片| 亚洲线精品一区二区三区八戒| 久久综合伊人77777蜜臀| 欧美在线一区二区三区| 欧美日韩在线高清| 亚洲福利视频专区| 又紧又大又爽精品一区二区| 午夜国产精品视频| 亚洲一级免费视频| 欧美黄色一级视频| 牛牛影视久久网| 国产一区二区三区在线观看网站| 亚洲一级在线观看| 国产精品99久久久久久人| 欧美风情在线| 欧美大片18| 在线欧美亚洲| 久久久久久久一区| 久久精品视频播放| 国产欧美日韩在线播放| 亚洲午夜精品视频|