操作系統(tǒng)編程進程或作業(yè)先來先服務(wù)高優(yōu)先權(quán)按時間片輪轉(zhuǎn)調(diào)度算法_第1頁
操作系統(tǒng)編程進程或作業(yè)先來先服務(wù)高優(yōu)先權(quán)按時間片輪轉(zhuǎn)調(diào)度算法_第2頁
操作系統(tǒng)編程進程或作業(yè)先來先服務(wù)高優(yōu)先權(quán)按時間片輪轉(zhuǎn)調(diào)度算法_第3頁
操作系統(tǒng)編程進程或作業(yè)先來先服務(wù)高優(yōu)先權(quán)按時間片輪轉(zhuǎn)調(diào)度算法_第4頁
操作系統(tǒng)編程進程或作業(yè)先來先服務(wù)高優(yōu)先權(quán)按時間片輪轉(zhuǎn)調(diào)度算法_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

湖南農(nóng)業(yè)大學科學技術(shù)師范學院學生實驗報告姓名:湯黎波年級專業(yè)班級06級計算機教育班日期2023年12月8日成績歷課程皺名稱栗計算灰機撿操作殃系統(tǒng)喂實驗般名稱簡編程悔進程仆或作妙業(yè)先軟來先蠻服務(wù)滿、高木優(yōu)先類權(quán)、擠按時蒸間片翻輪轉(zhuǎn)科調(diào)度以算法餡(4銀學時磚)顧實驗獸類型掃驗證貸設(shè)計像綜合在創(chuàng)新搭【日實驗稍目的竹、痕要求誠】秀實訂驗?zāi)枯叺模撼矗?捧)通蠻過編閉寫程喪序?qū)嵃璎F(xiàn)進奉程或魯作業(yè)取先來桑先服朽務(wù)、顫高優(yōu)變先權(quán)著、按鋒時間蹈片輪撥轉(zhuǎn)調(diào)培度算足法,昌使學完生進擾一步攪掌握零進程奪調(diào)度新的概勵念和暑算法個,加狼深對努處理趕機分褲配的李理解鞏。分(2哈)了戰(zhàn)解W鈔in允do慮ws愿20肯00翁/X柏P中絮進程烤(線樓程)比的調(diào)陶度機仍制。注(3拌)學儉習使渾用W祖in化do凳ws瞎20浮00旁/X燥P中局進程儉(線智程)乎調(diào)度化算法霉,掌嬌握相摧應(yīng)的咽與調(diào)米度有張關(guān)的胸Wi趙n3嫂2寒AP駝I函蝶數(shù)。筒實驗麥要求櫻:懂(1假)經(jīng)朝調(diào)試爽后程督序能慨夠正崗常運芹行。蹤(2解)采陸用多嫩進程紛或多證線程備方式之運行儀,體童現(xiàn)了猴進程倆或作嬸業(yè)先外來先民服務(wù)私、高根優(yōu)先待權(quán)、窮按時盜間片采輪轉(zhuǎn)隔調(diào)度佳的關(guān)性系。伶(3告)程教序界厲面美蒼觀。叢【誦實驗寒內(nèi)容侍】顧在W楊in匹do床ws片X嘆P、榮W懶in扁do斃ws拍20襪00屋等操龜作系簽統(tǒng)下攔,使聽用鐵C請語言竹,利愈用相蝦應(yīng)的永WI睛N3數(shù)2燙AP熱I函距數(shù),著編寫督程序介實現(xiàn)雨進程香或作機業(yè)先君來先世服務(wù)境、高切優(yōu)先帳權(quán)、妙按時驕間片必輪轉(zhuǎn)間調(diào)度勞算法色。鋪【動實驗阿環(huán)境收】腥(含位主要請設(shè)計捏設(shè)備乳、器效材、貓軟件庸等童)羞P站c電法腦一孝臺密【實感驗遵步驟遮、詢過程予】辭(含跨原理遍圖倚、筍流程看圖釘、關(guān)啦鍵代攔碼某,或井實驗就過程恭中的太記錄并、數(shù)根據(jù)椅等)悔定義千:坊

乳1更)先稅來先傻服務(wù)鍋算法惹:如塊果早狠就緒稅的進抹程排猴在就放緒隊老列的墳前面介,遲壽就緒譜的進核程排融在就下緒隊咐列的需后面叉,那箱么先渣來先歌服務(wù)預(yù)(F略CF霜S:休fi裳rs里t威co莫me迎f擱ir瀉st感s丑er講vi累ce嫁)總員是把頑當前丹處于擋就緒復(fù)隊列廟之首指的那公個進琴程調(diào)蓋度到畏運行也狀態(tài)皆?;?司)輪濾轉(zhuǎn)法哪就是啞按一態(tài)定時啊間片衫(書記為相q)斗輪番脫運行歡各個蠅進程是。如扮果眼q說是一擇個定誘值,禾則輪氧轉(zhuǎn)法恐是一償種對章各進勸程機賄會均傍等的材調(diào)度怒方法傻。奧3)崗優(yōu)先哥級調(diào)伯度的址基本策思想種是,練把當其前處食于就鉛緒隊艘列中杯優(yōu)先絨級最瘡高的德進程咬投入博運行商,而裂不管扁各進皇程的純下一吐個柜CP趨U粗周期挪的長嘗短和洲其他棍因素歲。室實驗辯步驟斯:畫(1膝)需脈求分楚析:滑了解域基本猶原理截,確娃定程誕序的丑基本索功能睜,查貴找相私關(guān)資卡料,紫畫出綿基本漂的數(shù)諸據(jù)流輕圖;小(2跑)概揚要設(shè)帥計:掩確定戶程序勇的總軋體結(jié)娃構(gòu)、管模塊題關(guān)系片和總麥體流狀程;在(3坑)詳庭細設(shè)欺計:生確定費模塊迫內(nèi)部膠的流電程和你實現(xiàn)像算法蘿;菜(4蟻)上沃機編帥碼和廢調(diào)試爬;桃(5罰)運府行測掀試;狠(6豈)編晝寫實張驗報岡告。幟流程信圖:童(先錘來先同服務(wù)濕流程睛圖)當(體高優(yōu)常先權(quán)倍流程肌圖)癢(帝按時組間片字輪轉(zhuǎn)臂調(diào)度恩)灑程序靠說明填及實討現(xiàn)親:單

肢1歡)先堤來先蟻服務(wù)絹調(diào)度各算法晴:墳株高相響應(yīng)芽比優(yōu)陡先實吹現(xiàn)進龍程調(diào)掏度.塞(用盒C語欠言實酬現(xiàn))雖,賣2辭)種優(yōu)先竄級調(diào)著度程價序:里揪

勵該更程序過由主犬程序巨、構(gòu)俊造隊期列子狐程序或、打醋印子報程序躁、運呼行子愧程序激構(gòu)成米。開

溉3前)牽時間賽片輪旋轉(zhuǎn)法請程序腳:淋

勁在思此程懸序中挖由于冤程序顧比較開小,渴未進籃行分逮模塊栽設(shè)計怨。直朱接采初用單法一模甲塊。說普

靜1先難來先航服務(wù)響#i態(tài)n鉛cl接ud注e<三st受di旺o.擾h>宋fl曬oa牢t析t,摘d;距/任*定櫻義兩虎個全姐局變奶量*電/嶼st統(tǒng)ru嘩ct請招/*夜定義濁一個女結(jié)構(gòu)題體數(shù)鉤組,廁包括范進程懷的信征息*裁/益{脂in墾t您id犬;衰fl船oa憲t鉤Ar伶ri氏ve華Ti沈me無;課fl叢oa贈t項Re傾qu占es莖tT秋im眉e;琴fl棕oa接t蔬St披ar浴tT階im打e;淋fl笑oa簽t以En夕dT股im輸e;攜fl可oa堅t攻Ru哪nT谷im慰e;榆fl樣oa鐮t滾DQ糖Ru爸nT杠im趟e;叔in浮t咐St院at負us擴;暴}a叔rr讓ay唇Ta遣sk袖[4哲];崇丟/*倒定義倆初始位化的畏結(jié)構(gòu)述體數(shù)梅組*蹄/GetTask()/*給結(jié)構(gòu)體數(shù)組賦值,輸入到達,服務(wù)時間*/

{inti;

floata;

for(i=0;i<4;i++)

{arrayTask[i].id=i+1;

printf("inputthenumber");

printf("inputthetheArriveTimeofarrayTask[%d]:",i);/*用戶輸入進程的時間,初始為零*/

scanf("%f",&a);

arrayTask[i].ArriveTime=a;

printf("inputtheRequestTimeofarrayTask[%d]:",i);

scanf("%f",&a);

arrayTask[i].RequestTime=a;

arrayTask[i].StartTime=0;

arrayTask[i].EndTime=0;

arrayTask[i].RunTime=0;

arrayTask[i].Status=0;/*開始默認的標志位零*/

}

}

intfcfs()/*定義FCFS中尋找未執(zhí)行的進程的最先到達時間*/

{

inti,j,w=0;/*在結(jié)構(gòu)體數(shù)組中找到一個未執(zhí)行的進程*/

for(i=0;i<4;i++)

{

if(arrayTask[i].Status==0)

{

t=arrayTask[i].ArriveTime;

w=1;

}

if(w==1)

break;

}

for(i=0;i<4;i++)/*查找數(shù)組中到達時間最小未執(zhí)行的進程*/

{

if(arrayTask[i].ArriveTime<t&&arrayTask[i].Status==0)

t=arrayTask[i].ArriveTime;

}/*返回最小到達時間的數(shù)組的下標*/

for(i=0;i<4;i++)

{

if(arrayTask[i].ArriveTime==t)

returni;

}

}

intsjf()/*定義FCFS中尋找未執(zhí)行的進程的最先到達時間*/

{

inti,x=0,a=0,b=0;/*判斷是不是第一個執(zhí)行的進程*/

floatg;

for(i=0;i<4;i++)

{

if(arrayTask[i].Status==1)

{g=arrayTask[i].EndTime;

x=1;

}

}

if(x==0)/*第一個執(zhí)行的進程按FCFS*/

{

t=arrayTask[0].ArriveTime;

for(i=0;i<4;i++)

{

if(arrayTask[i].ArriveTime<t)

{t=arrayTask[i].ArriveTime;

a=i;

}

}

returna;}

else

{

for(i=0;i<4;i++)

{if(arrayTask[i].EndTime>g)

g=arrayTask[i].EndTime;

}

for(i=0;i<4;i++)

{if(arrayTask[i].Status==0&&arrayTask[i].ArriveTime<=g)

{t=arrayTask[i].RequestTime;

a=i;

b=1;}/*判斷有沒有進程在前個進程完成前到達*/

}

if(b!=0)/*有進程到達則按SJF*/

{for(i=0;i<4;i++)

{

if(arrayTask[i].Status==0&&arrayTask[i].ArriveTime<=g&&arrayTask[i].RequestTime<t)

{t=arrayTask[i].RequestTime;

a=i;}

}

returna;}

else{/*否則按FCFS*/

for(i=0;i<4;i++)

{if(arrayTask[i].Status==0)

t=arrayTask[i].ArriveTime;

}

for(i=0;i<4;i++)

{

if(arrayTask[i].Status==0&&arrayTask[i].ArriveTime<t)

{t=arrayTask[i].ArriveTime;

a=i;

}

}

returna;}

}

}

new(ints)/*定義執(zhí)行進程后相關(guān)數(shù)據(jù)的修改*/

{

inti,g=0;

for(i=0;i<4;i++)

{

if(arrayTask[i].Status==0)

continue;

else

{

g=1;

break;

}

}

if(g==0)/*當處理的是第一個未執(zhí)行的進程時執(zhí)行*/

{

arrayTask[s].StartTime=arrayTask[s].ArriveTime;

健ar判ra旋yT陳as心k[勺s]莫.E桐nd圍Ti單me腦=a敬rr煎ay販Ta景sk迅[s拜].噸Re稼qu斗es永tT懶im算e+猶ar這ra庸yT滅as含k[虧s]明.A膜rr場iv抓eT專im紐e;

富ar刃ra戚yT圓as濫k[示s]肢.R黨un胞Ti傭me纖=a吵rr喇a(chǎn)y斃Ta泛sk燒[s哪].映Re墨qu仁es端tT掃im敢e;

才ar容ra墻yT畜as慰k[謙s]嘉.S觸ta避tu吐s=價1;

飼g=響2;

邪}

貓if幫(g義==歲1)歌勻/*尤當處間理的廢不是鞠第一摘個未薯執(zhí)行戲的進富程時飛執(zhí)行她*/

兆{

映ar楊ra信yT惰as柜k[板s]帥.S洋ta哀tu絨s=快1;

鋼fo粉r(棒i=胖0;何i<瑞4;垃i+秒+)

件{

戒if瀉(a固rr每ay竄Ta魔sk足[i得].逃St詠at省us闖==削1)

輩d=熊ar粱ra剪yT糠as訂k[膜i]各.E典nd披Ti瀉me沙;

掃}

府fo材r(衰i=界0;絞i<紛4;媽i+屑+)靠衫/*列查找吳最后痛執(zhí)行忽的進徹程的別完成韻時間謠*/

懂{

熱if秤(a仍rr義ay早Ta竟sk怕[i高].械En港dT合im痛e>段d&俗&a調(diào)rr昏ay貿(mào)Ta蹄sk鄭[i紀].垮St嬸at史us溫==踩1)

乏d=蝦ar炕ra蘿yT躬as小k[迷i]遷.E群nd惑Ti賞me惑;

漸}

特if嗓(a超rr驚ay黎Ta謎sk晴[s僑].關(guān)Ar停ri杜ve號Ti躲me體<d錄)霸/*暗判斷羅修改淺的進羨程的隆到達謀時間笑是否妄在前脹一個浮執(zhí)行速的進箭程的買完成捧時間坑前面濫*/

盼ar券ra杏yT禽as級k[武s]執(zhí).S卸ta請rt籠Ti喘me令=d校;

帥el況se

顧ar缸ra典yT校as千k[營s]體.S曲ta褲rt雀Ti融me打=a史rr呆ay查Ta儀sk霞[s筋].堡Ar件ri舟ve填Ti摧me昂;

要ar委ra冬yT失as謹k[慮s]拔.E舌nd茫Ti望me港=a該rr啟ay袍Ta見sk敏[s留].撈St另ar廊tT絞im期e+種ar哥ra慘yT候as刻k[治s]粘.R潔eq子ue限st璃Ti浩me別;

反ar沸ra騰yT犁as膜k[玻s]濟.R窩un恐Ti港me違=a崇rr肺ay芬Ta勇sk菌[s闖].應(yīng)En艇dT夕im鏟e-寶ar狹ra辨yT倘as迷k[禍s]萌.A證rr責iv讀eT胸im小e;

勾}

皂ar迎ra勢yT慘as圖k[架s]都.D鉤QR纏un外Ti館me來=a算rr會ay練Ta魯sk苗[s仔].惱Ru害nT阻im紗e/培ar壩ra殘yT補as鐮k[司s]取.R貼eq疑ue賽st槽Ti紋me夜;

繁}

將Pr餅in侍tr詠es懇ul女t(盒in孫t盡j)叼/舒*定梁義打蜓印函息數(shù)*喂/

頓{

起pr蹤in嶺tf害("伴%d割\t余",族ar榜ra圍yT劍as留k[評j]籮.i垃d)梁;

暮pr杜in挪tf百("探%永5.借2f調(diào)\t潛",鞋ar訂ra毫yT切as碧k[昆j]渡.A刑rr報iv碰eT系im隊e)縱;

投pr僻in煩tf孔("削%溝5.培2f菊\t曲",嗚ar焦ra鼓yT涌as傳k[柿j]弊.R循eq掛ue極st刷Ti劈me咬);

賠pr暮in遇tf股("洗%論5.攔2f撓\t莊",尖ar哨ra捆yT肥as嫁k[為j]胞.S誦ta緣rt仔Ti演me終);

幕pr烘in普tf詞("微%太5.指2f袖\t介",話ar窄ra辭yT鈴as鑒k[常j]盞.E叉nd夾Ti董me狼);

恭pr司in殘tf授("瞎%今5.骨2f圖\t鐘",哈ar消ra叫yT鼓as白k[通j]傾.R敗un淚Ti劇me慰);

蝶pr鄉(xiāng)in溝tf缺("汽%總5.經(jīng)2f京\n該",爆ar牙ra俊yT慶as掌k[美j]洽.D余QR那un瞇Ti給me嚷);

炒}

培ma范in歷()

增{澤in仍t役i,鞏b,絞k,丹a,站c=影0;

孤in匯t瓶d[毫4]蜂;

家cl鉆rs炭cr堤()旨;

箏pr域in日tf余("頁\t察F剪.鼻FC查FS玩\算n"乳);

圾pr遮in雨tf向("宇\t仇S蜂.守SF兆J

\關(guān)n"壞);

以pr悅in趴tf乞("托\(zhòng)t仰Q暗.蜘EX惑IT毯\役n"委);

皮fo晌r(叼i=早0;驢;i湊++慈)

饞{i殺f(貼c)

綿br托ea斷k;

于pr禽in哈tf沿("嬌pl壁ea電se勾i因np碌ut投t另he為n害um果be邁r令a:雹\n舅")憶;

史sc后an丸f(姜"%沃d"漸,&肉a)貌;

兩sw呼it貌ch置(a絕)

幻{

棋ca亮se弓Q飛:浸c=梯1;

拖br胡ea應(yīng)k;

積ca特se細F尺:p稠ri饞nt書f(逆"p學le競as授e賠in植pu臥t修th限e壞di理ff單er逃en姑t-罵Ar糞ri亮ve出Ti客me決o觀f臭ar灶ra炸yT著as催ks撤\n虜")無;

甜Ge踢tT焰as蘋k(添);

硬pr瀉in唱tf目("名**拌**戚**抓**唐**察**卻**以**雨**蒼**膛**皺**蟲**門**笛*t乓he鏈r表e魯su虜lt琴o雕f必fc長fs笨\n扒")年;

群pr厘in登tf浪("拼Nu厚mb宰er揚\t作Ar述ri千ve滴\t記Se鑼rv盾er礙\t認St狗ar旋t\葵tF記in商is晴h\破tT拴ur塘no旨ve添\t尿Ta核ke牛p報ow恭er丹t禮ur耕no戒ve灶r明ti侍me籮\n鞏")蕩;

櫻fo劑r(頸b=域0;叛b<盆4;床b+械+)占賽/*料調(diào)用紅兩個廣函數(shù)廳改變心結(jié)構(gòu)賽體數(shù)黑的值滑*/

翅{

串k=銀fc快fs淺()戚;

雅d[淚b]凡=k吐;

驚ne戰(zhàn)w(繼k)姐;

紐}

悼fo循r(燒b=念0;宵b<乞4;直b+墾+)

即Pr披in膠tr況es窗ul餃t(哲d[賢b]內(nèi));饞/*丹調(diào)用果打印珍函數(shù)歡打出裁結(jié)果兇*/

早co雨nt洗in富ue就;

警ca爐se捎S鍛:父pr前in暈tf泥("贊pl臟ea籌se慧i掏np榴ut幻t繭he裙d有if察fe魂re薄nt混-R愚eq吹ue腎st典Ti狀me居o隊f詠ar宏ra痰yT畝as楊ks貢\n魚")號;

扣Ge蹄tT標as陜k(拉);

辜pr聾in遲tf躍("量**品**盡**它**敘**餓**姑**絲**勸**運**最**海**兇**鄉(xiāng)**壁**犬th盜e隨re苦su汗lt消o品f底sj兵f\怠n"軟);

越pr乖in額tf止("題Nu誰mb譽er刻\t往Ar作ri巷ve量\t式Re倦qu旦es疑t\犁tS積ta烘rt效\t省En剪d\腔tR夜un固\t鹿DQ牧Ru級n禮ti各me粗\n瓶")溜;

艦fo我r(盆b=氏0;聯(lián)b<釋4;括b+良+)

亭{

騎k=鍋sj刷f(用);

種d[副b]兔=k績;

浴ne列w(慎k)柿;

餐}

夫fo跨r(刃b=毯0;葬b<遼4;收b+榴+)

至Pr扒in暖tr腰es秤ul坦t(豎d[菌b]刮);

懼co孩nt鳥in拾ue綠;

襲de憐fa兆ul急t:螞pr卷in云tf武("鋒th瘋e紫nu麗mb都er邀E粗rr蟲or捉.p瓣le飾as稿e叛in盆pu惰t身an口ot慶he敞r棍nu懂mb撕er居!\吧n"扶);

致}

填}

婚}2時間片輪轉(zhuǎn)法:

#include"string.h"

#include

"stdio.h"

#include

"conio.h"

#include

"graphics.h"

#define

NULL

0

typedef

struct

quen

/*定義結(jié)構(gòu)*/

{

char

pname[8];

int

time1;

int

time2;

char

state;

struct

quen

*next;

}

QUEN;

main()/*主程序*/

{

QUEN

*q,*p,*head,*m;

char

str[8],f;

int

t,d,n;

clrscr();

textmode(C80);

textbackground(0);

textcolor(15);

printf("Enterthemaxnumberofnodes(n):\n");/*輸入進程數(shù)*/

scanf("%d",&n);

d=n;

if(d>0)

{

printf("enterthepname:");

scanf("%s",str);

printf("enter

the

need

time:");

scanf("%d",&t);

head=p=(QUEN

*)malloc(sizeof(QUEN));

strcpy(p->pname,str);

p->time1=t;

p->time2=0;

p->state='R';

p->next=NULL;

head=p;

getchar();

--d;}

while(d>0)

{/*構(gòu)建隊列表*/

printf("enter

the

pname:");

scanf("%s",str);

printf("enter

need

time:");

scanf("%d",&t);

q=(QUEN

*)malloc(sizeof(QUEN));

strcpy(q->pname,str);

q->time1=t;

q->time2=0;

q->state='R';

q->next=NULL;

p->next=q;

p=q;

--d;

p->next=head;

q=head;}

printf("processnameneedtimerunnedstatic\n");

do{

printf("%s%d%d%c\n",q->pname,q->time1,q->time2,q->state);

q=q->next;

}while(q!=head);

printf("\n");

do{

if(head->time2<head->time1)

{head->time2++;

if(head->time2==head->time1)

{

head->state='E';

q=head;

textbackground(0);

printf("Therunningprocessis%s\n",q->pname);

printf("processnamelefttimerunnedstatic\n");

do{

textcolor(15);

/*輸入隊列表*/

printf("%s%d%d%c\n",q->pname,q->time1,q->time2,q->state);

q=q->next;}

while(q!=head);

printf("\n");

head=head->next;

q=head;

p->next=head;

}

else{

printf("Therunningprocessis%s\n",q->pname);

printf("processnamelefttimerunnedstatic\n");

do{

printf(“%s%d%d%c\n",q->pname,q->time1,q->time2,q->state);

q=q->next;}while(q!=head);

printf("\n");

head=head->next;

q=head;

p=p->next;}

printf("Isitneedingnewprocess?(yorn)\n");/*是否加入新的進程*/

getchar();

scanf("%c",&f);

if(f=='Y'||f=='y'){

getchar();

printf("Enterthenewpname:");

scanf("%s",str);

printf("Enterthenewneededtime:");

scanf("%d",&t);

m=(QUEN

*)malloc(sizeof(QUEN));

strcpy(m->pname,str);

m->time1=t;

m->time2=0;

m->state='R';

m->next=NULL;

if(q->next->state=='E')

{p=m;

head=m;

p->next=head;

q=head;}

else{p->next=m;

m->next=head;

p=m;}}

}}while(q->next->state!='E');

printf("Theprocessesarefinished\n");

}

3優(yōu)先級調(diào)度方法:

#include

<stdio.h>

#include

"conio.h"

typedef

struct

pcb/*定義結(jié)構(gòu)*/

{charname[5];

structpcb*next;

int

needtime;

int

priority;

charstate[5];

}NODE;

NODE

*create_process(int

n)/*創(chuàng)建隊列*/

{NODE

*head,*s,*t;

int

time,i=0,j;

char

pname[5];

head=(NODE

*)malloc(sizeof(NODE));

printf("please

input

process

name:");

scanf("%s",pname);

strcpy(head->name,pname);

printf("please

input

need

time:");

scanf("%d",&time);

head->needtime=time;

printf("please

input

priority:");

scanf("%d",&j);

head->priority=j;

strcpy(head->state,"ready");

head->next=NULL;

t=head;

for(i=1;i<n;i++)

{

s=(NODE*)malloc(sizeof(NODE));

printf("pleaseinputprocessname:");

getchar();

gets(pname);

strcpy(s->name,pname);

printf("pleaseinputneedtime:");

canf("%d",&time);

s->needtime=time;

printf("pleaseinputpriority:");

scanf("%d",&j);

s->priority=j;

strcpy(s->state,"ready");

s->next=NULL;

t->next=s;

t=s;

}

return

head;

}

pri_process(NODE*p)/*輸出進程隊列*/

{int

i;

NODE

*q;

q=p->next;

printf("\nname\tneedtime\tpriority\tstate\n");

while(q!=NULL)

{printf("%5s\t%2d\t%2d\t%5s\n",

q->name,q->needtime,q->priority,q->state);

q=q->next;

}

}

NODE

*order(NODE

head_sort)/*對進程的優(yōu)先級進行排序*/

{NODE

*p,*s,*q,*head,*r,*t;

int

m,pr;

char

name[5];

head=head_sort;

p=head->next;

r=p;

t=p;

q=p->next;

while(r!=NULL)

{

while(q!=NULL)

{if(p->priority<q->priority)

{m=p->priority;

p->priority=q->priority;

q->priority=m;

strcmp(name,p->name);

strcmp(p->name,q->name);

strcmp(q->name,name);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論