freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

最新進(jìn)程模擬調(diào)度算法課程設(shè)計-展示頁

2025-07-03 01:16本頁面
  

【正文】 for(i=0。 finish=NULL。 ready=NULL。 } /*新進(jìn)程的開始時間按最小,插在隊首,并修改就緒隊首ready指針*/} void create() { PCB *p。 } /*新進(jìn)程找到位置,插在r和p1之間*/ else { snext=p1。 if(r!=p1) { rnext=s。 p1=p1next。amp。 /*使用指針r是指向p1前面的進(jìn)程*/ b=1。 /*指針s指向新要插入的進(jìn)程*/ p1=ready。 int b。 } getchar()。 while(p != NULL) { printf( %10s%10d%10s%10d %c\n, pname, pcputime, pstarttime, pneedtime, pstate)。 /*輸出就緒進(jìn)程的信息*/ p=pnext。 /*輸出執(zhí)行的進(jìn)程的信息*/ p=ready。 printf( NAME CPUTIME STARTTIME NEEDTIME STATUS\n)。 //就緒、執(zhí)行、結(jié)束指針int N。 /*指針*/}PCB。 /*要求運行時間*/ char state。 /*占用cpu時間*/ char starttime[5]。.算法流程圖.程序代碼include include include typedef struct node{ char name[10]。先來先服務(wù)調(diào)度算法是一種不可搶占的算法,先進(jìn)入就緒隊列的進(jìn)程,先被處理機(jī)運行。(5)短作業(yè)優(yōu)先法:對短進(jìn)程優(yōu)先調(diào)度的算法,它是從后備隊列中選擇一個或者若干個進(jìn)程,將處理機(jī)分配給它,使它立即執(zhí)行并一直執(zhí)行到完成, 或發(fā)生某事件而被阻塞放棄處理機(jī)時再重新調(diào)度。 (4) 多級反饋隊列法:又稱反饋循環(huán)隊列或多隊列策略, 主要思想是將就緒進(jìn)程分為兩級或多級,系統(tǒng)相應(yīng)建立兩個或多個就緒進(jìn)程隊列, 較高優(yōu)先級的隊列一般分配給較短的時間片。原來的進(jìn)程就要處于等待的時間段上。挑到一個任務(wù)后,需要若干步驟才能做完,這些步驟中有些需要處理器參與,有些不需要(如磁盤控制器的存儲過程)。處理器同一個時間只能處理一個任務(wù)。該算法核心是確定進(jìn)程的優(yōu)先級。(2)優(yōu)先數(shù)算法:即進(jìn)程的執(zhí)行順序由高優(yōu)先級到低優(yōu)先級。處理機(jī)調(diào)度就是從就緒隊列中,按照一定的算法選擇一個進(jìn)程并將 處理機(jī)分配給它運行,以實現(xiàn)進(jìn)程并發(fā)地執(zhí)行。(2)就緒:進(jìn)程已經(jīng)準(zhǔn)備好,一旦有處理器就可運行。進(jìn)程是動態(tài)概念,必須程序運行才有 進(jìn)程的產(chǎn)生。二、 通過編寫程序?qū)崿F(xiàn)進(jìn)程或作業(yè)先來先服務(wù)、高優(yōu)先權(quán)、按時間片輪轉(zhuǎn)、短作業(yè)優(yōu)先、多級反饋隊列調(diào)度算法,使學(xué)生進(jìn)一步掌握進(jìn)程調(diào)度的概念和算法,加深對處理機(jī)分配的理解。本次課程設(shè)計用結(jié)構(gòu)體Process代替PCB的功能。本次實驗在VC++,短作業(yè)優(yōu)先調(diào)度算法,高優(yōu)先權(quán)調(diào)度算法,時間片輪轉(zhuǎn)調(diào)度算法和多級反饋隊列調(diào)度算法。分配處理機(jī)的任務(wù)是由處理機(jī)調(diào)度程序完成的。一.課程概述 程序能夠完成以下操作:創(chuàng)建進(jìn)程:先輸入進(jìn)程的數(shù)目,再一次輸入每個進(jìn)程的進(jìn)程名、運行總時間和優(yōu)先級,先到達(dá)的先輸入;進(jìn)程調(diào)度:進(jìn)程創(chuàng)建完成后就選擇進(jìn)程調(diào)度算法,并單步執(zhí)行,每次執(zhí)行的結(jié)果都從屏幕上輸出來。在多道程序環(huán)境下,主存中有著多個進(jìn)程,其數(shù)目往往多于處理機(jī)數(shù)目,要使這多個進(jìn)程能夠并發(fā)地執(zhí)行,這就要求系統(tǒng)能按某種算法,動態(tài)地把處理機(jī)分配給就緒隊列中的一個進(jìn)程,使之執(zhí)行。由于處理機(jī)是最重要的計算機(jī)資源,提高處理機(jī)的利用率及改善系統(tǒng)必(吞吐量、響應(yīng)時間),在很大程度上取決于處理機(jī)調(diào)度性能的好壞,因而,處理機(jī)調(diào)度便成為操作系統(tǒng)設(shè)計的中心問題之一。 為了描述和管制進(jìn)程的運行,系統(tǒng)為每個進(jìn)程定義了一個數(shù)據(jù)結(jié)構(gòu)——進(jìn)程控制塊PCB(Process Control Block),PCB中記錄了操作系統(tǒng)所需的、用于描述進(jìn)程的當(dāng)前情況以及控制進(jìn)程運行的全部信息,系統(tǒng)總是通過PCB對進(jìn)程進(jìn)行控制,亦即,系統(tǒng)是根據(jù)進(jìn)程的PCB而不是任何別的什么而感知進(jìn)程的存在的,PCB是進(jìn)程存在的惟一標(biāo)志。一、 用C語言(或C++)編程實現(xiàn)操作模擬操作系統(tǒng)進(jìn)程調(diào)度子系統(tǒng)的基本功能;運用多種算法實現(xiàn)對進(jìn)程的模擬調(diào)度。三、 實現(xiàn)用戶界面的開發(fā): 進(jìn)程概念:進(jìn)程是被獨立分配資源的最小單位。進(jìn)程的狀態(tài)模型: (1)運行:進(jìn)程已獲得處理機(jī),當(dāng)前處于運行狀態(tài)。處理機(jī)調(diào)度:在多道程序設(shè)計系統(tǒng)中,內(nèi)存中有多道程序運行,他們相互爭奪處理機(jī) 這一重要的資源。進(jìn)程調(diào)度算法的功能:記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況選擇占有處理機(jī)的進(jìn)程進(jìn)行進(jìn)程的上下文切換進(jìn)程調(diào)度的算法:(1)先來先服務(wù)算法:如果早就緒的進(jìn)程排在就緒隊列的前面,遲就緒的進(jìn)程排在 就緒隊列的后面,那么先來先服務(wù)總是把當(dāng)前處于就緒隊列之首的那個進(jìn)程調(diào) 度到運行狀態(tài)。系統(tǒng)或用戶按某種原則為進(jìn)程指定一個優(yōu)先級來表示該進(jìn)程所享有的確調(diào)度優(yōu)先權(quán)。(3)時間片輪轉(zhuǎn)算法:固定時間片,每個進(jìn)程在執(zhí)行一個時間片后,輪到下一進(jìn)程執(zhí)行,知道所有的進(jìn)程執(zhí)行完畢。處理器在處理多任務(wù)的時候,就要看請求的時間順序,如果時間一致,就要進(jìn)行預(yù)測。不需要處理器處理的時候,這部分時間就要分配給其他的進(jìn)程。經(jīng)過周密分配時間,宏觀上就象是多個任務(wù)一起運行一樣,但微觀上是有先后的,就是時間片輪換。 處理器調(diào)度先從高級就緒進(jìn)程隊列中選取可占有處理器的進(jìn)程, 只有在選不到時, 才從較低 級的就緒進(jìn)程隊列中選取。二.設(shè)計方案.先來先服務(wù)調(diào)度.算法思想先來先服務(wù)調(diào)度算法的思想是按照進(jìn)程進(jìn)入就緒隊列的先后順序調(diào)度并分配處理機(jī)執(zhí)行。一旦一個進(jìn)程占有了處理機(jī),它就一直運行下去,直到該進(jìn)程完成工作或者因為等待某事件而不能繼續(xù)運行時才釋放處理機(jī)。 /*進(jìn)程名*/ int cputime。 //進(jìn)程開始時間 int needtime。 /*狀態(tài)*/ struct node *next。PCB *ready, *run, *finish。 //進(jìn)程數(shù)量void print() //輸出函數(shù){ PCB *p。 if(run != NULL) printf( %10s%10d%10s%10d %c\n, runname, runcputime, runstarttime, runneedtime, runstate)。 while(p != NULL) { printf( %10s%10d%10s%10d %c\n, pname, pcputime, pstarttime, pneedtime, pstate)。 } p=finish。 /*輸出結(jié)束隊列的信息*/ p=pnext。 /*使用getchar()函數(shù)可以讓輸出時停留畫面, 等待人按回車?yán)^續(xù)*/} void insert(PCB *q) /*插入新進(jìn)程,把進(jìn)程按進(jìn)程到來時間大小排序*/{ PCB *p1,*s,*r。 s=q。 /*指針p1指向原來的進(jìn)程隊列的隊首*/ r=p1。 while((p1!=NULL)amp。b) if(strcmp(p1starttime,sstarttime)0) { r=p1。 } /*新進(jìn)程的開始時間大,則p1 指向下一個進(jìn)程繼續(xù)比*/ else b=0。 snext=p1。 ready=s。 int i。 run=NULL。 printf(Please enter the name and time and starttime of PCB:\n)。iN。 /*為新進(jìn)程開辟空間*/ scanf(%s,pname)。pneedtime)。 //輸入進(jìn)程開始時間 pcputime=0。W39。 /*就緒隊首不為NULL,插入新進(jìn)程*/ else
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1