資源簡介
基于linux的設備分配及磁盤調度。
設計內容:
1、參考操作系統有關設備分配的分配策略,模擬給出設備請求到分配的過程,對于外部存儲器設備,分配后要模擬出它的的I/O過程,調用磁盤調度算法。
2、設備分配的過程中,要給設備分配設備控制器,通道都要有。
3、系統的設備最少要有3種,控制器每臺設備最少對應1個和通道系統最少有3個。
3、磁盤調度算法要用先來先服務,電梯調度和循環掃描算法(算法可以選擇)
4、設備管理要有設備控制表,設備分配表,通道控制表,控制器控制表等。
設計要求:
要求在屏幕上輸出各設備的分配過程及信息,如果用到磁盤調度算法時,輸出磁盤調度算法的調度順序及平均尋道長度等,I/O時的尋道內容(磁道號)可手工給出。..

代碼片段和文件信息
#include?
#include?
#include?
#include?
#define??MAX???100
#define?maxsize?1000?//定義最大數組域
typedef?struct?pcb/*進程*/
{
int?pcbID; /*進程名稱*/
struct?pcb?*next;
}PCB;
?
typedef?struct?chct//通道控制表
{
????int?chctID;
????int?status;//設備狀態
????PCB?*block;//阻塞隊列
}CHCT;
?
typedef?struct?coct//控制器控制表
{
????int?coctID;
????int?status;//設備狀態
????CHCT?*chct;//控制器所連接的通道
????PCB?*block;//阻塞隊列
????struct?coct?*next;//控制器隊列
}COCT;
?
typedef?struct?dct//設備控制表
{
????int?dctID;
????int?status;//設備狀態
????int?processid;//占用進程ID
????PCB?*block;//阻塞隊列指針
????COCT?*coct;//與設備控制器相關連的控制器控制表
????struct?dct*?next;//同類設備的不同設備
}DCT;
typedef?struct?sdt//系統設備表
{
????char?type;//系統設備表類型
????char?name[MAX];//系統設備表名稱
????DCT?*dct;//DCT設備控制表
????struct?sdt?*next;//驅動入口地址
}SDT;
/*設置全局變量???3個通道、3個設備控制器、4個設備*/
CHCT?*CH1*CH2*CH3;//兩個通道ch1ch2
COCT?*coct_head;//控制器控制表頭部
SDT?*sdt_head;
void?init()
{
????PCB?*ch1pcbblock*ch2pcbblock*ch3pcbblock*co1pcbblock
????*co2pcbblock*co3pcbblock
????*d1pcbblock*d2pcbblock
????*d3pcbblock*d4pcbblock;//各個設備的等待隊列
????COCT*CO1*CO2*CO3;
????DCT?*dct1*dct2*dct3*dct4;
????SDT?*sdt1*sdt2*sdt3*sdt4;
????CH1=(CHCT*)malloc(sizeof(CHCT));
????CH2=(CHCT*)malloc(sizeof(CHCT));
????CH3=(CHCT*)malloc(sizeof(CHCT));
????CH1->status=0;
????CH2->status=0;
????CH3->status=0;
????CH1->chctID?=?1;
????CH2->chctID?=?2;
????CH3->chctID?=?3;
????ch1pcbblock=(PCB*)malloc(sizeof(PCB));
????ch2pcbblock=(PCB*)malloc(sizeof(PCB));
????ch3pcbblock=(PCB*)malloc(sizeof(PCB));
????ch1pcbblock->next=NULL;
????ch2pcbblock->next=NULL;
????ch3pcbblock->next=NULL;
????CH1->block=ch1pcbblock;
????CH2->block=ch2pcbblock;
????CH3->block=ch3pcbblock;
????coct_head=(COCT*)malloc(sizeof(COCT));
????coct_head->next=NULL;
????CO1=(COCT*)malloc(sizeof(COCT));
????CO2=(COCT*)malloc(sizeof(COCT));
????CO3=(COCT*)malloc(sizeof(COCT));
????CO1->status=0;
????CO2->status=0;
????CO3->status=0;
????coct_head->next=CO1;
????CO1->next=CO2;
????CO2->next=CO3;
????CO3->next=NULL;
????co1pcbblock=(PCB?*)malloc(sizeof(PCB));
????co1pcbblock->next=NULL;
????co2pcbblock=(PCB?*)malloc(sizeof(PCB));
????co2pcbblock->next=NULL;
????co3pcbblock=(PCB?*)malloc(sizeof(PCB));
????co3pcbblock->next=NULL;
????CO1->coctID?=?1;
????CO2->coctID?=?2;
????CO3->coctID?=?3;
????//隨機分配起始時的通道和控制的連接情況
????CO1->chct=CH1;
????CO2->chct=CH1;
????CO3->chct=CH2;
????CO1->block=co1pcbblock;
????CO2->block=co2pcbblock;
????CO3->block=co3pcbblock;
?
????d1pcbblock=(PCB?*)malloc(sizeof(PCB));
????d2pcbblock=(PCB?*)malloc(sizeof(PCB));
????d3pcbblock=(PCB?*)malloc(sizeof(PCB));
????d4pcbblock=(PCB?*)malloc(sizeof(PCB));
????d1pcbblock->next=NULL;
????d2pcbblock->next=NULL;
????d3pcbblock->next=NULL;
????d3pcbblock->next=NULL;
?
????dct1=(DCT?*)malloc(sizeof(DCT));
????dct2=(DCT?*)malloc(sizeof(DCT));
????dct3=(DCT?*)malloc(sizeof(DCT));
????dct4=(DCT?*)malloc(sizeof(DCT)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6455??2019-01-05?12:38??16140Y06班第五組基于Linux的設備分配及磁盤調度\1614010923+王楚+任務書.rar
?????文件?????600167??2019-01-05?12:39??16140Y06班第五組基于Linux的設備分配及磁盤調度\1614010923+王楚+說明書.rar
?????文件???????6702??2019-01-05?11:56??16140Y06班第五組基于Linux的設備分配及磁盤調度\1614010940+劉樹敏+任務書.zip
?????文件?????109221??2019-01-05?12:53??16140Y06班第五組基于Linux的設備分配及磁盤調度\1614010940+劉樹敏+說明書.zip
?????文件???????6454??2019-01-05?10:59??16140Y06班第五組基于Linux的設備分配及磁盤調度\1614010947+王康+任務書.rar
?????文件??????68569??2019-01-05?12:38??16140Y06班第五組基于Linux的設備分配及磁盤調度\1614010947+王康+說明書(1).rar
?????文件???????6455??2019-01-05?12:38??16140Y06班第五組基于Linux的設備分配及磁盤調度\1614010951+王強+任務書.rar
?????文件?????297624??2019-01-05?12:38??16140Y06班第五組基于Linux的設備分配及磁盤調度\1614010951+王強+說明書.rar
?????文件??????20070??2019-01-04?07:23??16140Y06班第五組基于Linux的設備分配及磁盤調度\基于Linux的設備分配及磁盤調度源代碼.cpp
?????目錄??????????0??2019-01-05?12:53??16140Y06班第五組基于Linux的設備分配及磁盤調度
-----------?---------??----------?-----??----
??????????????1121717????????????????????10
- 上一篇:圖像拼接技術及其實現
- 下一篇:NTSYS-PC分子生物學分析軟件
評論
共有 條評論