




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)實驗報告一實驗題目先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF調(diào)度算法實驗?zāi)康耐ㄟ^本次實驗,加深對進(jìn)城概念的理解,進(jìn)一步掌握對進(jìn)城狀態(tài)轉(zhuǎn)變、進(jìn)城調(diào)度策略及對系統(tǒng)性能的評價方法。實驗內(nèi)容編程實現(xiàn)如下內(nèi)容: 1.先來先服務(wù)算法; 2.短進(jìn)程優(yōu)先算法;3.根據(jù)調(diào)度順序計算所有作業(yè)的平均周轉(zhuǎn)時間及平均帶權(quán)周轉(zhuǎn)時間。代碼如下:一、先來先服務(wù)算法代碼#include<stdio.h> #include<stdlib.h> /*author*date 2015-6-1*/ typedef struct process_FCFS float arrivetime;
2、/到達(dá)時間 float servetime; /服務(wù)時間 float finishtime; /完成時間 float roundtime; /周轉(zhuǎn)時間 float daiquantime; /帶權(quán)周轉(zhuǎn)時間 struct process_FCFS *link; /結(jié)構(gòu)體指針 FCFS; FCFS *p,*q,*head=NULL; struct process_FCFS a100; struct process_FCFS *sortarrivetime(struct process_FCFS a,int n) int i,j; struct process_FCFS t; int flag; f
3、or(i=1;i<n;i+) flag=0; for(j=0;j<n-i;j+) if(aj.arrivetime>aj+1.arrivetime) t=aj; aj=aj+1; aj+1=t; flag=1; if(flag=0)/如果排序中沒發(fā)生任何交換,則結(jié)束 break; return a; /先來先服務(wù)算法 void print(struct process_FCFS a,int n) int i; for(i=0;i<n;i+) printf("到達(dá)時間:%f",ai.arrivetime); printf("服務(wù)時間:%f&q
4、uot;,ai.servetime); printf("完成時間:%f",ai.finishtime); printf("周轉(zhuǎn)時間:%f",ai.roundtime); printf("帶權(quán)周轉(zhuǎn)時間:%f",ai.daiquantime); printf("n"); void Fcfs(struct process_FCFS a,int n) int i; a0.finishtime=a0.arrivetime+a0.servetime; a0.roundtime=a0.finishtime+a0.arriveti
5、me; a0.daiquantime=a0.roundtime/a0.servetime; for(i=0;i<n;i+) if(ai.arrivetime<ai-1.finishtime) ai.finishtime=ai-1.finishtime+ai.servetime; ai.roundtime=ai.finishtime-ai.arrivetime; ai.daiquantime=ai.roundtime/ai.servetime; else ai.finishtime=ai.arrivetime+ai.servetime; ai.roundtime=ai.finisht
6、ime-ai.arrivetime; ai.daiquantime=ai.roundtime/ai.servetime; printf("先來先服務(wù)n"); print(a,n); void main() int n,i; printf("請輸入有幾個進(jìn)程n"); scanf("%d",&n); for(i=0;i<n;i+) printf("arrivetime"); scanf("%f",&ai.arrivetime); printf("servetime&q
7、uot;); scanf("%f",&ai.servetime); Fcfs(a,n); 二、短作業(yè)優(yōu)先算法代碼#include<iostream.h>#include<stdio.h>struct pcb char pno; int come_time; /到達(dá)時間 int run_time; /服務(wù)時間;float fcfs(pcb pro,int n) struct pcb temp; int i,j,k; /time為當(dāng)前時間 float weight_time=0,time=0; /記錄周轉(zhuǎn)時間的和 /temp=(pcb)mallo
8、c(sizeof(pcb); cout<<"進(jìn)程調(diào)度情況如下:"<<endl; cout<<"進(jìn)程號 到達(dá)時間 服務(wù)時間 周轉(zhuǎn)時間:"<<endl; /選擇排序過程,按到達(dá)時間升序排列 for(i=0;i<n-1;i+) k=i; for(j=i+1;j<n;j+) if(e_time>e_time) k=j; if(k!=i) temp=proi; proi=prok; prok=temp; for(i=0;i<n;i+) time+=proi.ru
9、n_time; weight_time+=(e_time)/proi.run_time; /(e_time)/proi.run_time為排序后第i個進(jìn)程的周轉(zhuǎn)時間 cout<<proi.pno<<" "<<e_time<<" "<<proi.run_time<<" "<<(e_time)/proi.run_time<<endl; return w
10、eight_time/=n; /返回平均帶權(quán)周轉(zhuǎn)時間 void insert(pcb pro,pcb pro1,int start,int end)/將一pcb類型的元素插入到有序數(shù)組中,最后還保持有序 int i=end; while(i-)>start) if(proi.run_time>pro1.run_time)proi+1=proi; proi=pro1; float sjp(pcb pro,int n) int i,first=0,count,flag20,k,min; float time=0,weight_time=0;/調(diào)度第一個到達(dá)內(nèi)存的進(jìn)程 for(i=1;i
11、<n;i+) if(e_time>e_time) first=i; flagi=0; flagfirst=1; time=(float)profirst.run_time; weight_time=1; cout<<profirst.pno<<" "<<e_time<<" "<<profirst.run_time<<" "<<weight_time<<endl; /
12、pro_temp0=profirst; count=n-1; while(count) k=0; min=32767; /設(shè)置一個較大的閾值, for(i=0;i<n;i+) /找到一個未被訪問的,作業(yè)較短的且已經(jīng)到達(dá)內(nèi)存的作業(yè)調(diào)度 if(i!=first)&&(flagi=0)&&(time>=e_time)&&(min>proi.run_time) k=i; min=proi.run_time; flagk=1; /訪問后置標(biāo)記為訪問 time+=prok.run_time; weight_time+=(ti
13、e_time)/prok.run_time; cout<<prok.pno<<" "<<e_time<<" "<<prok.run_time<<" "<<(e_time)/prok.run_time<<endl; count-; /每調(diào)度一個作業(yè),count減1 return weight_time/=n; void main() pcb pro5='C',2,5,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 配電線路技能鑒定實操培訓(xùn)課件
- 高效節(jié)能電機項目投資估算方案(范文模板)
- 城市污水管網(wǎng)建設(shè)工程安全管理方案(模板)
- 2025年高純氮化鋁粉體項目建議書
- 2025年銀行監(jiān)管及中央銀行服務(wù)項目合作計劃書
- 智慧物流概論 課件 04智慧運輸
- 2025年醫(yī)藥級纖維素醚合作協(xié)議書
- 常用胰島素種類及特點表
- 常用烏頭類中藥的毒性研究概述
- 航空航天零部件制造2025年高精度加工技術(shù)不銹鋼成形技術(shù)研究報告
- 可行性研究報告學(xué)校擴(kuò)建項目可研報告
- 提高VTE規(guī)范預(yù)防率的品管圈
- 便秘的耳穴貼壓技術(shù)
- 國家能源集團(tuán)陸上風(fēng)電項目通 用造價指標(biāo)(2024年)
- 2025年遼陽職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性考試題庫附答案
- 通信光纜線路工程安全技術(shù)交底
- 四新技術(shù)在建筑領(lǐng)域的應(yīng)用
- 七十歲以上老年人三力測試,換領(lǐng)駕照模擬題答案
- 陜西省漢中市2023-2024學(xué)年高二下學(xué)期7月期末考試 英語 含答案
- 跌倒的應(yīng)急處理課件
- 業(yè)務(wù)連續(xù)性管理體系程序文件
評論
0/150
提交評論