




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
試驗六設(shè)備管理試驗?zāi)康睦斫庠O(shè)備管理的概念和任務(wù)。掌握獨占設(shè)備的分派、回收等重要算法的原理并編程實現(xiàn)。試驗內(nèi)容與基本規(guī)定在Windows系統(tǒng)中,編寫程序?qū)崿F(xiàn)對獨占設(shè)備的分派和回收的模擬,該程序中包括:建立設(shè)備類表和設(shè)備表、分派設(shè)備和回收設(shè)備的函數(shù)。試驗匯報內(nèi)容獨占設(shè)備的分派、回收等重要算法的原理。為了提高操作系統(tǒng)的可適應(yīng)性和可擴展性,現(xiàn)代操作系統(tǒng)中都毫無例外地實現(xiàn)了設(shè)備獨立性,又叫做設(shè)備無關(guān)性。設(shè)備獨立性的含義是,應(yīng)用程序獨立于詳細使用的物理設(shè)備。為了實現(xiàn)獨占設(shè)備的分派,系統(tǒng)設(shè)置數(shù)據(jù)表格的方式也不相似,在試驗中只要設(shè)計合理即可。這里僅僅是一種方案,采用設(shè)備類表和設(shè)備表。數(shù)據(jù)構(gòu)造操作系統(tǒng)設(shè)置“設(shè)備分派表”,用來記錄計算機系統(tǒng)所配置的獨占類型、臺數(shù)以及分派狀況。設(shè)備分派表可由“設(shè)備類表”和“設(shè)備表”兩部分構(gòu)成,如下圖設(shè)備分派當進程申請某類設(shè)備時,系統(tǒng)先查“設(shè)備類表”假如該類設(shè)備的現(xiàn)存臺數(shù)可以滿足申請規(guī)定則從該類設(shè)備的“設(shè)備表”始址開始依次查該類設(shè)備在設(shè)備表中的登記項,找出“未分派”的設(shè)備分派給進程。分派后要修改設(shè)備類表中的現(xiàn)存臺數(shù),把分派給進程的設(shè)備標志改為“已分派”且填上占用設(shè)備的進程名。然后把設(shè)備的絕對號與相對號的對應(yīng)關(guān)系告知顧客,以便顧客在分派到的設(shè)備上裝上存儲介質(zhì)。設(shè)備回收當進程執(zhí)行結(jié)束撤離時應(yīng)償還所占設(shè)備,系統(tǒng)根據(jù)進程名查設(shè)備表,找出進程占用設(shè)備的登記欄,把標志修改為“未分派”清除進程名。同步把回收的設(shè)備臺數(shù)加到設(shè)備類表中的現(xiàn)存臺數(shù)中。程序流程圖。主體流程設(shè)備分派設(shè)備回收程序及注釋。#include<stdio.h>#include<string.h>#include<stdlib.h>#definefalse0#definetrue1#definen4/*宏定義用于修改設(shè)備類型數(shù)目*/#definem10/*宏定義用于修改設(shè)備數(shù)目*/struct/*該構(gòu)造體用于定義設(shè)備類表各信息*/{chartype[10];/*設(shè)備類型名*/intcount;/*擁有的設(shè)備總臺數(shù)*/intremain;/*現(xiàn)存的可用設(shè)備臺數(shù)*/intaddress;/*該類設(shè)備設(shè)備表中的起始地址*/}equiptype[n];/*系統(tǒng)設(shè)備類型為n*/struct/*該構(gòu)造體用于定義設(shè)備表各信息*/{intnumber;/*設(shè)備絕對編號*/intlnumber;/*設(shè)備相對編號*/intstatus;/*設(shè)備好壞狀態(tài)*/intremain;/*設(shè)備與否已被分派*/charjobname[4];/*占有設(shè)備的作業(yè)名*/}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)/*若沒有找到欲申請設(shè)備*/{printf("沒有找到欲分派的設(shè)備,分派失敗!");return(false);}if(equiptype[i].remain<1)/*欲申請設(shè)備現(xiàn)存可用臺數(shù)局限性*/{printf("該類設(shè)備數(shù)量局限性分派失敗!");return(false);}t=equiptype[i].address;/*取出該類設(shè)備在設(shè)備表中的起地址賦給t*/while(!(equipment[t].status==1&&equipment[t].remain==0))t++;/*該設(shè)備類型起始地址加一*/equiptype[i].remain--;/*剩余設(shè)備數(shù)減一*/equipment[t].remain=1;/*狀態(tài)改為已分派*/strcpy(equipment[t].jobname,J);/*strcpy為字符串拷貝函數(shù)把J中的字符串拷貝到equipment[t].jobname中*/equipment[t].lnumber=cc;/*設(shè)備相對號寫入cc*/}/**********************子函數(shù)作業(yè)設(shè)備回收*****************************/reclaim(char*J,char*type){inti,t,j,k,nn;i=0;while(i<n&&strcmp(equiptype[i].type,type)!=0)/*查找欲申請償還的設(shè)備類型strcmp函數(shù)用于比較equiptype[i].type與type的大小若相等則返回0*/i++;if(i>=n)/*若沒有找到該類設(shè)備*/{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è)備的作業(yè)與欲回收的作業(yè)相似且狀態(tài)為已分派*/{equipment[t].remain=0;/*則將其狀態(tài)改為未分派*/k++;/*回收設(shè)備計數(shù)*/}equiptype[i].remain=equiptype[i].remain+k;/*該類設(shè)備剩余設(shè)備數(shù)加k*/if(k==0)/*若回收設(shè)備計數(shù)值k為0,*/printf("本作業(yè)沒有占用此類資源!/n");}/**********************主函數(shù)*****************************/voidmain(){charJ[4];inti,mm,a;chartype[10];printf("*******************\n\*******************\n\);printf("設(shè)備類初始化\n");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("請輸入目前空閑設(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){case0:/*a=0程序結(jié)束*/exit(0);case1:/*a=1分派設(shè)備*/printf("請輸入作業(yè)名、作業(yè)所需設(shè)備類型和設(shè)備相對號\n");scanf("%s%s%d",J,type,&mm);allocate(J,type,mm);/*分派設(shè)備*/break;case2:/*a=2回收設(shè)備*/printf("請輸入作業(yè)名和作業(yè)償還的設(shè)備類\n");scanf("%s%s",J,type);/*輸入要回收的作業(yè)名及對應(yīng)的設(shè)備類*/reclaim(J,type);/*回收設(shè)備*/break;case3:/*a=3輸出設(shè)備類表和設(shè)備表的內(nèi)容*/printf("輸出設(shè)備類表!\n");/*輸出設(shè)備類表內(nèi)容*/printf("設(shè)備類型設(shè)備總量空閑好設(shè)備起始地址\n");for(i=0;i<n;i++)printf("%9s%16d%22d%14d\n",equiptype[i].type,equiptype[i].count,equiptype[i].remain,equiptype[i].address);printf("輸出設(shè)備表:\n");
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度無人機銷售業(yè)務(wù)提成管理合同
- 2025年度雇傭放羊與牧民生活改善合同
- 二零二五年度醫(yī)護就業(yè)合同模板(醫(yī)護人員職業(yè)健康)
- 2025年度珠寶首飾店門店轉(zhuǎn)讓合同
- 2025年度設(shè)備安裝安全協(xié)議書與設(shè)備安裝安全措施
- 2025年度餐飲公司員工勞動合同與員工晉升激勵機制
- 二零二五年度正規(guī)職工勞動合同與員工離職補償協(xié)議
- 2025年中國無繩白紗手腕帶市場調(diào)查研究報告
- 2025年度網(wǎng)絡(luò)安全實習生實訓合同
- 二零二五年度摩托車抵押貸款合同
- JC-019粉煤灰檢測報告
- VTE相關(guān)知識考核試題及答案
- 高中語文教學課例《沁園春長沙》課程思政核心素養(yǎng)教學設(shè)計及總結(jié)反思
- 三生公司獎金制度
- 神經(jīng)病學-緒論課件
- 危險化學品全表
- 公路施工技術(shù)全套課件
- 胸痹心痛中醫(yī)診療方案及臨床路徑
- 泛讀2unit2-music
- 中學生防溺水安全教育課件(PPT 44頁)
- 2019版外研社高中英語選擇性必修二Unit 1 Growing up 單詞表
評論
0/150
提交評論