試驗二獨占設(shè)備分配與回收_第1頁
試驗二獨占設(shè)備分配與回收_第2頁
試驗二獨占設(shè)備分配與回收_第3頁
試驗二獨占設(shè)備分配與回收_第4頁
試驗二獨占設(shè)備分配與回收_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實驗二獨占設(shè)備分配與回收1、 實驗?zāi)康模杭由顚υO(shè)備管理的理解。深入了解如何分配和回收獨占設(shè)備。2、 實驗預(yù)備知識:設(shè)備獨立性。獨占設(shè)備的特性。系統(tǒng)設(shè)備表和物理設(shè)備表。3、 實驗內(nèi)容:設(shè)計一種獨占設(shè)備分配和回收的方案,要求滿足設(shè)備獨立性。編寫程序?qū)崿F(xiàn)這個方案并進行測試。4、 提示與講解:為了提高操作系統(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è)備表。( 1) 數(shù) 據(jù)結(jié)構(gòu)操作系統(tǒng)設(shè)置“設(shè)

2、備分配表”,用來記錄計算機系統(tǒng)所配置的獨占設(shè)備類型、臺數(shù)以及分配情況。設(shè)備分配表可由 “設(shè)備類表”和 “設(shè)備表”兩部分組成,如下圖:設(shè)備類總臺數(shù)空閑臺 數(shù)設(shè)備表 始址輸入機21打印機11設(shè)備類表設(shè)備物 理名是否分 配占用進 程001未分配002已分配J1003未分配設(shè)備表(2)設(shè)備分配1)當進程申請某類設(shè)備時,系統(tǒng)先查“設(shè)備類表”。2)如果該類設(shè)備的現(xiàn)存臺數(shù)可以滿足申請要求,則從該類設(shè) 備的“設(shè)備表”始址開始依次查該類設(shè)備在設(shè)備表中的登 記項,找出“未分配”的設(shè)備分配給進程。3)分配后要修改設(shè)備類表中的現(xiàn)存臺數(shù),把分配給進程的設(shè) 備標志改為“已分配”且填上占用設(shè)備的進程名。4)然后,把設(shè)備的絕

3、對號與相對號的對應(yīng)關(guān)系通知用戶,以便用戶在分配到的設(shè)備上裝上存儲介質(zhì)。(3)設(shè)備回收當進程執(zhí)行結(jié)束撤離時應(yīng)歸還所占設(shè)備,系統(tǒng)根據(jù)進程名查 設(shè)備表,找出進程占用設(shè)備的登記欄,把標志修改為“未分配”, 清除進程名。同時把回收的設(shè)備臺數(shù)加到設(shè)備類表中的現(xiàn)存臺數(shù) 中。五、參考程序:#define False 0 #define true 1#define n 4#define m 10struct char type10;/ 設(shè)備類名int count;擁有設(shè)備臺數(shù)int remain;空閑臺數(shù),現(xiàn)存的可用設(shè)備臺數(shù)int address;/核類設(shè)備在設(shè)備表中的起始地址equiptypen;設(shè)備類表定義

4、,假定系統(tǒng)有n個設(shè)備類型structint number;設(shè)備絕對號int status;int remain;設(shè)備是否已分配char jobname4;占有設(shè)備的進程名int lnumber;設(shè)備相對號equipmentm;設(shè)備表定義,假定系統(tǒng)有m個設(shè)備allocate(J,type,mm)char *J,*type;int mm;int i,t,j;i=0;while(i<n&&strcmp(equiptypei.type,type)!=0)i+;if(i>=n)cout<< ”無該類設(shè)備,設(shè)備分配失敗"<<endl;retur

5、n False;if(equiptypei.remain<1) cout<< ”該類設(shè)備不足,分配失敗"<<endl;return False;t=equiptypei.address;while(!(equipmentt.remain=0)t+;equiptypei.remain-;equipmentt.remain=1;strcpy(equipmentt.jobname,J);equipmentt.lnumber=mm;return 1;reclaim(J,type)char J,type;int i,t,j,k,nn;i=0;while(i<

6、n&&strcmp(equiptypei.type,type)!=0)i+;if(i>=n)cout<< ”無該類設(shè)備,設(shè)備分配失敗"<<endl;return False;t=equiptypei.address;j=equiptypei.count;k=0;nn=t+j;for(;t<nn;t+)if(strcmp(equipmentt.jobname,J)=0&&equipmentt.remain=1)equipmentt.remain=0;k+;equiptypei.remain=equiptypei.rem

7、ain+k;if(k=0)cout<<"該進程沒有使用該類設(shè)備”<<endl;return 1;main()char J4;int i,mm,a;char type10;strcpy(equiptype0.type,” input”);equiptype0.count=2;equiptype0.remain=2;equiptype0.address=0;strcpy(equiptype1.type,” printer”);equiptype1.count=3;equiptype1.remain=3;equiptype1.address=2;strcpy(equ

8、iptype2.type,”disk”);equiptype2.count=4;equiptype2.remain=4;equiptype2.address=5;strcpy(equiptype3.type,”tape”);equiptype3.count=1;equiptype3.remain=1;equiptype3.address=9;for(i=0;i<10;i+)equipmenti.number=i;equipmenti.remain=0;while(1)cout<<endl<<” 0-退出,1-分配,2-回收,3-顯示” <<endl;c

9、out<<”選擇功能項(03):";cin>>a;switch(a)case 0:exit(0);case 1:cout<<”輸入進程名、進程所需設(shè)備類和設(shè)備相對號cin>>J>>type>>mm;allocate(J,type,mm);break;case 2:cout<<”輸入進程名和進程歸還的設(shè)備類”;cin>>J>>type;reclaim(J,type);break;case 3:cout<<endl<<”輸出設(shè)備類表 "<<endl;cout<<"設(shè)備類型設(shè)備總量空閑設(shè)備臺數(shù)”<<endl;for(i=0;i<n;i+)cout<<equiptypei.type<<equiptypei.count<<equiptypei.remain<<endl;cout<<”輸出設(shè)備表:"<<endl;cout<<"絕對號 好/壞 已/未分配 占用進程名 相對 號” <<endl;for(i=0;i&l

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論