




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
操作系統(tǒng)課程報(bào)告試驗(yàn)六設(shè)備治理學(xué)號 姓名 班級 教師 華僑大學(xué)電子工程系試驗(yàn)?zāi)康?、理解設(shè)備治理的概念和任務(wù)。2、把握獨(dú)占設(shè)備的安排、回收等主要算法的原理并編程實(shí)現(xiàn)。試驗(yàn)內(nèi)容與根本要求1、 在Windows系統(tǒng)中,編寫程序?qū)崿F(xiàn)對獨(dú)占設(shè)備的安排和回收的模擬,該程序中包括:建立設(shè)備類表和設(shè)備表、安排設(shè)備和回收設(shè)備的函數(shù)。試驗(yàn)報(bào)告內(nèi)容1、獨(dú)占設(shè)備的安排、回收等主要算法的原理。為了提高操作系統(tǒng)的可適應(yīng)性和可擴(kuò)展性,現(xiàn)代操作系統(tǒng)中都毫無例外地實(shí)現(xiàn)了設(shè)備獨(dú)立性,又叫做設(shè)備無關(guān)性。設(shè)備獨(dú)立性的含義是:應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。為了實(shí)現(xiàn)獨(dú)占設(shè)備的安排,系統(tǒng)設(shè)置數(shù)據(jù)表格的方式也不一樣,在試驗(yàn)中只要設(shè)計(jì)合理即可。這里僅僅是一種方案,承受設(shè)備類表和設(shè)備〔1〕數(shù)據(jù)構(gòu)造設(shè)備類總臺散空閑臺數(shù)設(shè)備類總臺散空閑臺數(shù)始址1打印機(jī)1rr理名001co?mMS占用進(jìn)稈J1003未安排73T1〔2〕設(shè)備安排
設(shè)笹表當(dāng)進(jìn)程申請某類設(shè)備時(shí),系統(tǒng)先查“設(shè)備類表”假設(shè)該類設(shè)備的現(xiàn)存臺數(shù)可以滿足申請要求,則從該類設(shè)備的“設(shè)備表”始址開頭依次查該類設(shè)備在設(shè)備表中的登記項(xiàng),找出“未安排”的設(shè)備安排給進(jìn)程。安排后要修改設(shè)備類表中的現(xiàn)存臺數(shù),把安排給進(jìn)程的設(shè)備標(biāo)志改為“已安排”且填上占用設(shè)備的進(jìn)程名。然后,把設(shè)備確實(shí)定號與相對號的對應(yīng)關(guān)系通知用戶,以便用戶在安排到的設(shè)備上裝上存儲介質(zhì)。〔3〕設(shè)備回收當(dāng)進(jìn)程執(zhí)行完畢撤離時(shí)應(yīng)歸還所占設(shè)備,系統(tǒng)依據(jù)進(jìn)程名查設(shè)備表,找出進(jìn)程占用設(shè)備的登記欄,把標(biāo)志修改為“未安排”,去除進(jìn)程名。同時(shí)把回收的設(shè)備臺數(shù)加到設(shè)備類表中的現(xiàn)存臺數(shù)中。2、 程序流程圖主程序流程圖:設(shè)備安排:的設(shè)備類型設(shè)備回收:printf〔本作業(yè)沒有占用這類資源/n“〕3、 程序及注釋。#includevstring.h>#definefalse0#definetrue1#definen4改設(shè)備類型數(shù)目*/#definem10改設(shè)備數(shù)目*/
/*宏定義,用于修/*宏定義,用于修struct義設(shè)備類表各信息*/{chartype[10];*/intcount;*/intremain;設(shè)備臺*/intaddress;設(shè)備表中的起始地址*/}equiptype[n];型為n*/struct
/*該構(gòu)造體用于定/*設(shè)備類型名/*擁有的設(shè)備/*現(xiàn)存的可用/*該類設(shè)備在/*/*該構(gòu)造體用于定
*/{intnumber;編號*/intlnumber;對編*/intstatus;狀態(tài)*/intremain;已被分*/charjobname[4];*/}
/*設(shè)備確定/*設(shè)備相/*設(shè)備好壞/*設(shè)備是否/*占有設(shè)equipment[m]; /*系統(tǒng)設(shè)備數(shù)為m*/子函數(shù):作業(yè)設(shè)備安排allocate(char*J,char*type,intcc){inti,t,j;i=0;while(i<n&&strcmp(equiptype[i].type,type)!=0) /*查找欲申請安排的設(shè)備類型,strcmp函數(shù)用于比較equiptype[i].type與type的大小,0*/i++;if(i>=n)/**/{printf(“沒有找到欲安排的設(shè)備,安排失敗!“);return(false);}if(equiptype[i].remain<1)臺數(shù)缺乏*/
/*欲申請?jiān)O(shè)備現(xiàn)存可用{printf(“!“);return(false);}t=equiptype[i].address; /*取出該類設(shè)備在設(shè)備表中的起始地址賦給t*/while(!(equipment[t].status==1&&equipment[t].remain==0))t++;址加一*/equiptype[i].remain--;equipment[t].remain=1;strcpy(equipment[t].jobname,J);
/*該設(shè)備類型起始地/*剩余設(shè)備數(shù)減一*//*狀態(tài)改為已安排*//*strcpy為字符串拷貝函數(shù),把J中的字符串拷貝到equipment[t].jobname中*/equipment[t].lnumber=cc; /*cc*/子函數(shù):作業(yè)設(shè)備回收reclaim(char*J,char*type){i=0;while(i<n&&strcmp(equiptype[i].type,type)!=0) /*歸還的設(shè)備類型,strcmp函數(shù)用于比較equiptype[i].type與type的大小,0*/i++;if(i>=n)/**/printf(“無該類設(shè)備,設(shè)備回收失敗!“);return(false);t=equiptype[i].address; /*取出該類設(shè)備在設(shè)備表中的起始地址賦給t*/j=equiptype[i].count;該類設(shè)備的數(shù)量賦給j*/k=0;nn=t+j;for(;t<nn;t++)
/*取出if(strcmp(equipment[t].jobname,J)==0&&equipment[t].remain==1)/*假設(shè)占用某個(gè)設(shè)備的作業(yè)與欲回收的作業(yè)一樣且狀態(tài)為已安排*/{equipment[t].remain=0; /*則將其狀態(tài)改為未安排*/k++;設(shè)備計(jì)數(shù)*/}equiptype[i].remain=equiptype[i].remain+k;該類設(shè)備剩余設(shè)備數(shù)加k*/if(k==0)/*k0,*/printf(“!/n“);/********************** 主函數(shù)
/*回收/*voidmain(){charJ[4];inti,mm,a;chartype[10];
***************************for(i=0;i<4;i++)類表初始信息*/
/*輸入設(shè)備{printf(“請輸入相應(yīng)設(shè)備名稱:“);scanf(“%s“,&equiptype[i].type);printf(“請輸入相應(yīng)設(shè)備的數(shù)量:“);scanf(“%d“,&equiptype[i].count);printf(“請輸入當(dāng)前空閑設(shè)備數(shù)量:“);scanf(“%d“,&equiptype[i].remain);printf(“請輸入設(shè)備表起始地址:“);scanf(“%d“,&equiptype[i].address);備表*/
}for(i=0;i<10;i++)
/*初始化設(shè){equipment[i].number=i;equipment[i].status=1;equipment[i].remain=0;}while(1)面*/
{printf(“\n0-退出,1-安排,2-回收,3-顯示“);printf(“\n請選擇功能(0-3):“);scanf(“%d“,&a);switch(a)case
/*/*a=0*/exit(0);case1/*a=1*/printf(“\n“);scanf(“%s%s%d“,J,type,&mm);allocate(J,type,mm);/*安排設(shè)備*/
break;case2:/*a=2回收設(shè)備*/printf(“\n“);scanf(“%s%s“,J,type);入要回收的作業(yè)名及對應(yīng)的設(shè)備類*/reclaim(J,type);
/*輸/*回收設(shè)備*/
break;case3:/*a=3輸出設(shè)備類表和設(shè)備表的內(nèi)容*/表內(nèi)容*/
printf(“輸出設(shè)備類表!\n“);
/*輸出設(shè)備類printf(“設(shè)備類型閑好設(shè)備 起始地址\n“);for(i=0;i<n;i++)
設(shè)備總量 空printf(“%9s%16d%22d%14d\n“,equiptype[i].type,equiptype[i].count,equiptype[i].remain,equiptype[i].address);printf(“:\n“);*/
/*輸出設(shè)備表內(nèi)容printf(“確定號\n“);for(i=0;i<m;i++)
好/壞 已/未安排占用作業(yè)printf(“%3d%11d%15d%15s%9d\n“,equipment[i].number,equipment[i].status,equipment[i].remain,equipment[i].jobname,equipment[i].lnumber);}}}4、運(yùn)行結(jié)果以及結(jié)論。初始化輸入:“ :\AUD\tht5iiLK\DebiLfi\thesia.GCE-科河科■科峙濟(jì)鶉耳員科:科托科科躋科科弭躋*** 何文超 *|仆…11151076111 2昇■逋 連電子 MWMMMXXH^WWWWWXWXMMWXlrf設(shè)備類初始化謂輸人相應(yīng)設(shè)備蟲稱小謂輸入相應(yīng)設(shè)暑的敢量:2I前蘭岡設(shè)備叢哉始拠址:C清輯入瑪應(yīng)設(shè)各主?你,b托旳桜命的蠶百:1b入當(dāng)前空閑設(shè)備數(shù)豊b入設(shè)備表就1給地址:5請輒入胡應(yīng)設(shè)備■入當(dāng)前空園設(shè)備歐呈:請輸入設(shè)備表起始他址:?卜退出?1■安排.“回收.3-顯示詢出設(shè)備』設(shè)備莫型ac 1
起対地址2 631好/壞 來安排00000>16 07 QGQ
9BQo9s99s曠退出,1-安排2-回收,曠顯示詣迓窪功能〔3〕丄設(shè)備安排:輸入彩亞名、作業(yè)所需設(shè)備類型和設(shè)備相對號b0魁踏燈收亠顯示輸入彩亞名、作業(yè)所需設(shè)備類型和設(shè)備相對號b0魁踏燈收亠顯示輸入隹並名、作業(yè)所需設(shè)備類型和設(shè)備相對號退出,1/配/-回收,3-顯示輸入祜並名、作業(yè)所需設(shè)備類型和設(shè)備相對號看|備數(shù)夏缺乏,舎配失??!退出七洌己,23-顯示IS了}A所需設(shè)備類型和設(shè)備相對號黠瞬騒捫攵Z示輸入稚亞名.作業(yè)所需設(shè)備類型和設(shè)備相對號請輸入作亞名、作業(yè)所需設(shè)備類型和設(shè)備相對號fjorsewvfvf2沒肓萍到欲23請輸入稚亞名.作業(yè)所需設(shè)備類型和設(shè)備相對號J0a0退岀*疔配,2-回收亠顯示選擇功能<0-3>:jib0輸入隹並名、作業(yè)所需設(shè)備類型和設(shè)備相對號退出,丄為配,2-回收,3-顯示孑-退岀丿-安排?孑-退岀丿-安排?2-回收亠顯示請
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際產(chǎn)品授權(quán)分銷合同
- 辦公家具采購合同一
- 商品買賣合同「樣本」
- 商業(yè)地產(chǎn)買賣合同模板范文
- 公司設(shè)立投資合作合同范本
- 礦山棄渣處理合同范本
- 消防及安全整改合同履行細(xì)則
- 校企合作合同新范本
- 土地使用權(quán)出讓合同及物業(yè)銷售細(xì)則
- 躉船結(jié)構(gòu)培訓(xùn)課件
- 2025年黑龍江民族職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案
- 年產(chǎn)60萬噸摻混肥項(xiàng)目可行性研究報(bào)告申請立項(xiàng)
- 2025年2月《公共安全視頻圖像信息系統(tǒng)管理?xiàng)l例》學(xué)習(xí)解讀課件
- 2025年江蘇省中職《英語》學(xué)業(yè)水平考試高頻必練考試題庫400題(含答案)
- 2025年濟(jì)寧職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 高三一?!吧媾c強(qiáng)弱關(guān)系思辨”審題立意及范文
- 2025年湖南工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2024年七臺河職業(yè)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 小學(xué)數(shù)學(xué)教學(xué)中小組合作學(xué)習(xí)課件
- 2024年晉中職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 2025年茂名市高三年級第一次綜合測試(一模)物理試卷(含答案)
評論
0/150
提交評論