




已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)課程: 計(jì)算機(jī)操作系統(tǒng) 學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 電氣類班 2011年 12月 15日目 錄一、 實(shí)驗(yàn)一 編程實(shí)現(xiàn)銀行家安全算法3二、 實(shí)驗(yàn)二 存儲(chǔ)管理的模擬實(shí)現(xiàn)6三、 實(shí)驗(yàn)三 磁盤調(diào)度算法的模擬實(shí)現(xiàn)15南昌大學(xué)實(shí)驗(yàn)報(bào)告 -(1)編程實(shí)現(xiàn)銀行家安全算法學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期:10.25,11.1 實(shí)驗(yàn)成績: 一、實(shí)驗(yàn)?zāi)康耐ㄟ^實(shí)驗(yàn)加強(qiáng)對(duì)銀行家安全算法的理解和掌握。二、實(shí)驗(yàn)內(nèi)容熟悉避免死鎖發(fā)生的方法,死鎖與安全序列的關(guān)系,編程實(shí)現(xiàn)銀行家算法,要求輸出進(jìn)程的安全序列。三、實(shí)驗(yàn)要求1、需寫出設(shè)計(jì)說明;2、設(shè)計(jì)實(shí)現(xiàn)代碼及說明3、運(yùn)行結(jié)果;四、主要實(shí)驗(yàn)步驟根據(jù)實(shí)驗(yàn)要求設(shè)計(jì)本次實(shí)驗(yàn)流程圖,并根據(jù)實(shí)驗(yàn)流程圖編寫出實(shí)驗(yàn)程序。上機(jī)運(yùn)用C語言進(jìn)行程序輸入,并進(jìn)行程序檢查,找出編程錯(cuò)誤,直到程序運(yùn)行成功為止。分析本次實(shí)驗(yàn)所獲得的收獲。五、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果六、實(shí)驗(yàn)體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議程序基本實(shí)現(xiàn)了銀行家算法的功能,并在其基礎(chǔ)上考慮了輸出顯示的格式的美觀性、輸入錯(cuò)誤要求重新輸入等幾個(gè)方面,盡可能的使程序完整一些。這段程序算是三個(gè)試驗(yàn)中最困難最復(fù)雜的一個(gè),由于能力有限,所以在緊張的的編寫和調(diào)試過程中遇到了許多的問題,通過查詢資料、翻閱課本、向同學(xué)請(qǐng)教、多次調(diào)試等方法逐漸解決了大部分問題,編寫的過程中也有比較一些算法的優(yōu)劣性,找出比較好的算法,收獲非常大。七、參考資料計(jì)算機(jī)操作系統(tǒng) 湯子瀛等 西安電子科技大學(xué)出版社南昌大學(xué)實(shí)驗(yàn)報(bào)告 -(2)存儲(chǔ)管理的模擬實(shí)現(xiàn)學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期:11.8,11.15,11.22 實(shí)驗(yàn)成績: 一、實(shí)驗(yàn)?zāi)康拇鎯?chǔ)管理的主要功能之一是合理地分配空間。請(qǐng)求頁式管理是一種常用的虛擬存儲(chǔ)管理技術(shù)。本實(shí)驗(yàn)的目的是通過請(qǐng)求頁式存儲(chǔ)管理中頁面置換算法模擬設(shè)計(jì),了解虛擬存儲(chǔ)技術(shù)的特點(diǎn),掌握請(qǐng)求頁式管理的頁面置換算法。二、實(shí)驗(yàn)內(nèi)容編程實(shí)現(xiàn)頁面置換算法,要求輸出頁面的置換過程,具體可以編程實(shí)現(xiàn)OPT、FIFO和LRU算法。三、實(shí)驗(yàn)要求1、需寫出設(shè)計(jì)說明;2、設(shè)計(jì)實(shí)現(xiàn)代碼及說明3、運(yùn)行結(jié)果;四、主要實(shí)驗(yàn)步驟根據(jù)實(shí)驗(yàn)要求設(shè)計(jì)出程序圖。根據(jù)程序圖編寫出實(shí)驗(yàn)程序。上機(jī)進(jìn)行程序調(diào)試,并找出錯(cuò)誤,直至程序通過。分析本次實(shí)驗(yàn)所得到的收獲。五、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果#include #include #include #include #define overflow -2#define null 0#define codenum 220 /指令數(shù)#define pagenum 20 /頁數(shù)int n=pagenum,m=3; /n為提供的頁流數(shù),m為用戶可用的物理塊數(shù)typedef struct linkint data;int sign; /訪問位struct link *next;struct link *rear;/總是指向鏈表的最后一個(gè)元素qnode,*qlink;void menu(int *str);int *creatstr() /創(chuàng)建頁流,并保存在strn中int *str;time_t t; intcount=0,m1,m2,m3;str=(int*)malloc(sizeof(int)*(pagenum+10);if(!str)exit(overflow);srand(unsigned)time(&t);while(count=pagenum)m1=rand()%codenum;str+count=m1/10;/str+count=(m1+1)/10;m2=rand()%(m1+1);str+count=m2/10;/str+count=(m2+1)/10;m3=(codenum-1)-rand()%(m1+2);str+count=m3/10;/str+count=(m3+1)/10;return str;/*FIFO算法*int *initstring() /初始化保存每個(gè)頁面進(jìn)行時(shí)的結(jié)果的二維數(shù)組anm int *a,i,j;a=(int *)malloc(sizeof(int*)*(n+1);if(!a) exit(overflow);for(i=0;i=n;i+) ai=(int*)malloc(sizeof(int)*(m+1);if(!ai) exit(overflow);for(i=1;i=n;i+) /初始化保存結(jié)果的數(shù)組,使得一開始都為空for(j=1;j=m;j+)aij=-1;return a;void printresult(int *a,int *str)int i,j;printf(*the orders of pages*n);for(i=1;i=n;i+)printf(%3d,stri);putchar(n);for(i=1;i=m;i+)for(j=1;j=n;j+)if(aji=-1) printf( );else printf(%3d,aji);putchar(n);putchar(n);int search(int *b,int x) /從物理塊中找現(xiàn)在要執(zhí)行的頁面是否已經(jīng)存在內(nèi)存中,找到返回1int i;for(i=1;i=m;i+)if(bi=x) return i;return 0;void fifo(int *str) /先進(jìn)先出置換算法int i,j=0,flag,k;int *a;int count=0; /用來計(jì)算缺頁次數(shù)的a=initstring();for(i=1;i=n;i+)flag=search(ai,stri);/如果沒有找到,情況一是沒有滿,二是當(dāng)物理塊滿了就得置換if(!flag) count+;if(!flag) aij+%m+1=stri;/else 如果找到什么也不做if(i!=n)for(k=1;k=m;k+)ai+1k=aik;printresult(a,str);/輸出結(jié)果;printf(short of pages:%dn,count);/*LRU算法*qlink initlink() /初始化鏈表,其有M個(gè)節(jié)點(diǎn),即可以存放m個(gè)頁面qlink l,q,s;int i;l=(qlink)malloc(sizeof(qnode);if(!l) exit(overflow);q=l;for(i=1;idata=-1;q-next=s;q=s;l-rear=q; /指向尾部,方便操作l-rear-next=null;return l;qlink lsearch(int *a,qlink l,int x,int *pagnum) qlink static k=l; /k-next始終指向下一個(gè)空的物理塊qlink q=l,temp,p;int flag=0,tempx,findid,j,reardata,flag2=0;int static i=1;int static k1=m;int static count=0; /用來計(jì)算缺頁數(shù)reardata=l-rear-data;while(q-next)temp=q;q=q-next;if(q-data=x) /如果新來的頁面內(nèi)存中已有,則將它壓入棧頂,即鏈表的最后一位if(q!=l-rear) /如果找到的不是最后一個(gè)節(jié)點(diǎn) /這個(gè)循環(huán)僅僅在已滿的環(huán)境下有用if(l-rear-data=-1) flag=1;break; /如果沒有滿且新的頁面已存在內(nèi)存中temp-next=q-next;l-rear-next=q;q-next=null;l-rear=q;flag2=2;/else 如果已存在的頁面在鏈尾, 則不動(dòng)/end whileif(flag2!=2)/情況一物理塊未填滿,情況二滿了要置換新的if(l-rear-data=-1) /物理塊沒有放滿if(flag) /新的頁面已存在內(nèi)存中temp-next=q-next;q-next=k-next;k-next=q;k=k-next;elsek=k-next;k-data=x;count+;else /如果滿了,且新來的頁面在內(nèi)存中也沒有,就置換出棧底的元素,即最近最久的tempx=l-next-data;l-next-data=x;l-rear-next=l-next;l-rear=l-next;l-next=l-next-next;l-rear-next=null;count+;/ end if flag2if(reardata=-1) /當(dāng)內(nèi)存中沒有滿的時(shí)候/printf(i1=%dn,i); if(!flag) /如果頁原來沒有在內(nèi)存中 for(p=l-next,j=1;jnext) /將棧的狀態(tài)保存到二維數(shù)組中 aij=p-data; else if(flag)/如果已經(jīng)在內(nèi)存中里 if(i!=n) for(j=1;j=m;j+) ai+1j=aij; /end ifelse/如果滿了if(i=n)/printf(i2=%dn,i); for(j=1;j=m;j+) aij=ai-1j;findid=search(ai,tempx);/*if(findid)*/ aifindid=x; /end else i+;*pagnum=count;return l;void lru(int *str) /實(shí)現(xiàn)方法:棧int *a;int i;int count=0;qlink l;/其中第一個(gè)節(jié)點(diǎn)是最久的,而最后一個(gè)節(jié)點(diǎn)總是最新的l=initlink();/初始化特殊的棧 a=initstring(); /初始化保存結(jié)果的二維數(shù)組for(i=1;inext,i=1;inext)if(x=p-data) return 1;return 0;void nru(int *str)int *a;int flag,i,j;int count=0;qlink pt,r,p;r=initlink();a=initstring();r-rear-next=r-next; /形成循環(huán)隊(duì)列pt=r-next;for(i=1;irear-data=-1) /如果沒有滿pt-data=stri;pt-sign=1;pt=pt-next;else /如果滿了while(pt-sign!=0) /找第一個(gè)訪問位為0的頁pt-sign=0;pt=pt-next; pt-data=stri; /置換pt-sign=1;/end else/end if(!flag)/else 如果已存在內(nèi)存中,就保持不動(dòng)for(p=r-next,j=1;jnext)aij=p-data;/end forprintresult(a,str);printf(short of pages:%dn,count);/*主函數(shù)*void menu(int *str)int co;printf(1.FIFOn);printf(2.LRUn);printf(3.LFUn);printf(4.NRUn);printf(5.exitn);printf(choose(1-5):);scanf(%d,&co);switch(co)case 1:fifo(str);break;case 2:lru(str);break;case 3:lru(str);break;case 4:nru(str);break;case 5:exit(-1);break;int main()/int str=-1,7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1; /頁流/clrscr(); int *str=creatstr(); /用隨機(jī)方法創(chuàng)建頁流/int str=-1,4,7,0,7,1,0,1,2,1,2;menu(str);六、實(shí)驗(yàn)體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議通過本次課程設(shè)計(jì),加深了對(duì)操作系統(tǒng)的認(rèn)識(shí),了解了操作系統(tǒng)中各種資源分配算法的實(shí)現(xiàn),特別是對(duì)虛擬存儲(chǔ),頁面置換有了深入的了解,并能夠用高級(jí)語言進(jìn)行模擬演示。通過查閱相關(guān)資料對(duì)OPT、FIFO和LRU算法有了一定的了解,基本掌握了C語言編寫的基本方法三種頁面置換算法的比較,OPT、FIFO和LRU算法,對(duì)頁面置換有更深一層的了解。使我對(duì)操作系統(tǒng)特別是頁面置換這一部分的認(rèn)識(shí)有了很大的加深。七、參考資料計(jì)算機(jī)操作系統(tǒng) 湯子瀛等 西安電子科技大學(xué)出版社南昌大學(xué)實(shí)驗(yàn)報(bào)告 -(3)磁盤調(diào)度算法的模擬實(shí)現(xiàn)學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期: 11.29,12.6,12.13 實(shí)驗(yàn)成績: 一、實(shí)驗(yàn)?zāi)康耐ㄟ^實(shí)驗(yàn)加強(qiáng)對(duì)磁盤調(diào)度算法的理解和掌握。二、實(shí)驗(yàn)內(nèi)容編寫程序?qū)崿F(xiàn)磁盤調(diào)度算法,具體可以編寫程序?qū)崿F(xiàn)FCFS算法、SSTF算法、SCAN算法和CSCAN算法之二。三、實(shí)驗(yàn)要求1、需寫出設(shè)計(jì)說明;2、設(shè)計(jì)實(shí)現(xiàn)代碼及說明3、運(yùn)行結(jié)果;四、主要實(shí)驗(yàn)步驟根據(jù)實(shí)驗(yàn)要求編寫實(shí)驗(yàn)流程圖。根據(jù)實(shí)驗(yàn)流程圖編寫實(shí)驗(yàn)代碼。上機(jī)進(jìn)行程序輸入,并運(yùn)行,同時(shí)檢查實(shí)驗(yàn)錯(cuò)誤,直至實(shí)驗(yàn)沒有錯(cuò)誤為止。分析此次實(shí)驗(yàn)所獲得的收獲。五、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果六、實(shí)驗(yàn)體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議FCFS是一種簡單的磁盤調(diào)度算法。它根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度。此算法的優(yōu)點(diǎn)是公平、簡單,且每個(gè)進(jìn)程的請(qǐng)求都能依次得到處理,不會(huì)出現(xiàn)某一進(jìn)程的請(qǐng)求長期得不到滿足的情況。但此算法由于未對(duì)尋道進(jìn)行優(yōu)化,致使平均尋道時(shí)間可能較長。SCAN算法不僅考
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《中醫(yī)藥發(fā)展前景》課件
- 2025年駐馬店道路貨物運(yùn)輸駕駛員考試
- 2025年山東貨運(yùn)從業(yè)資格證考試題技巧答案詳解
- 新疆天山職業(yè)技術(shù)大學(xué)《合同法分論》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京師范大學(xué)中北學(xué)院《對(duì)比語言學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 換大門施工方案
- 2024年CAD工程師認(rèn)證考試思維方式的重要性試題及答案
- 2024年酒店經(jīng)營管理師考試復(fù)習(xí)新思路試題及答案
- 電氣工程師考試準(zhǔn)備指南試題及答案
- 2024年焊接工程師考試范圍試題及答案
- 鵪鶉蛋脫殼機(jī)的設(shè)計(jì)
- 行為安全觀察behaviorbasedsafety研究復(fù)習(xí)過程
- 動(dòng)火作業(yè)風(fēng)險(xiǎn)告知牌
- 鍋爐專業(yè)術(shù)語解釋及英文翻譯對(duì)照
- 綜采工作面末采安全技術(shù)措施
- 《小石潭記》作業(yè)設(shè)計(jì)
- 密封圈定位套零件的機(jī)械加工夾具設(shè)計(jì)說明書
- 旅行社等級(jí)評(píng)定申報(bào)材料完整版
- 大粒種子精播機(jī)的設(shè)計(jì)【玉米、大豆快速精密雙行播種機(jī)含9張CAD圖紙】
- CKE2500 250t履帶式起重機(jī)
- 淺談跨文化敏感度及其測量
評(píng)論
0/150
提交評(píng)論