




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 . . . 操作系統(tǒng)課程設(shè)計(jì)總結(jié)報(bào)告 學(xué)期 2011-2012學(xué)年第二學(xué)期 學(xué)院 軟件學(xué)院 學(xué)號(hào) 20103823 白雪嬌 2012 年 7月 1日本學(xué)期開設(shè)了操作系統(tǒng)課程設(shè)計(jì)。一、 進(jìn)程控制1.1目的: 利用簡單的結(jié)構(gòu)和控制方法模擬進(jìn)程結(jié)構(gòu)、進(jìn)程狀態(tài)和進(jìn)程控制。1.2容: 用PCB表示整個(gè)進(jìn)程實(shí)體,利用隨機(jī)數(shù)方法或鍵盤控制方法模擬進(jìn)程執(zhí)行中產(chǎn)生的事件?;蛘呃檬髽?biāo)或者鍵盤中斷的基于圖形接口方式的進(jìn)程控制管理。1.3數(shù)據(jù)結(jié)構(gòu):typedef struct LNodeint data;struct LNode *next;LNode;1.4算法設(shè)計(jì)與流程圖: 算法:創(chuàng)建進(jìn)程:輸入進(jìn)程的名稱,先
2、判斷進(jìn)程名是否已存在,若已存在,則創(chuàng)建進(jìn)程失敗,需重新操作,創(chuàng)建進(jìn)程成功后,新進(jìn)程進(jìn)入就緒隊(duì)列。若執(zhí)行態(tài)為空,將進(jìn)程插入執(zhí)行態(tài)。阻塞進(jìn)程:若當(dāng)前有執(zhí)行進(jìn)程,則將其阻塞,并將進(jìn)程加入阻塞態(tài),若就緒隊(duì)列不為空,則就緒隊(duì)列第一個(gè)進(jìn)程插入執(zhí)行態(tài);若當(dāng)前無執(zhí)行進(jìn)程 ,則阻塞失敗。喚醒進(jìn)程:若當(dāng)前阻塞態(tài)不為空,則將阻塞隊(duì)列第一個(gè)進(jìn)程插入就緒態(tài);若當(dāng)前阻塞態(tài)為空,則喚醒失敗。時(shí)間片到:若當(dāng)前有執(zhí)行態(tài)進(jìn)程,則插入就緒隊(duì)?wèi)B(tài),并將就緒態(tài)第一個(gè)進(jìn)程進(jìn)入執(zhí)行態(tài);若當(dāng)前無執(zhí)行進(jìn)程,則無執(zhí)行進(jìn)程。結(jié)束進(jìn)程:若當(dāng)前有執(zhí)行進(jìn)程,則結(jié)束進(jìn)程,若當(dāng)前就緒態(tài)不為空,則就緒態(tài)第一個(gè)進(jìn)程進(jìn)入執(zhí)行態(tài);若當(dāng)前無執(zhí)行進(jìn)程 ,則結(jié)束進(jìn)程失敗。
3、 流程圖: 開始輸入執(zhí)行命令輸入b輸入t輸入C N N N執(zhí)行態(tài)插入就緒態(tài)輸入進(jìn)程名 Y Y Y執(zhí)行態(tài)轉(zhuǎn)為阻塞態(tài)將進(jìn)程插入就緒態(tài)就緒態(tài)第一個(gè)結(jié)點(diǎn)插入執(zhí)行態(tài)就緒態(tài)第一個(gè)結(jié)點(diǎn)插入執(zhí)行態(tài)執(zhí)行態(tài)為空 N顯示進(jìn)程信息顯示進(jìn)程信息將進(jìn)程插入執(zhí)行態(tài)Y顯示進(jìn)程信息輸入w Y N執(zhí)行態(tài)為空阻塞態(tài)為空 Y N N Y結(jié)束進(jìn)程阻塞態(tài)插入就緒態(tài)就緒態(tài)第一個(gè)結(jié)點(diǎn)插入執(zhí)行態(tài)顯示進(jìn)程信息顯示進(jìn)程信息結(jié)束1.5小結(jié):通過命令的選擇,來執(zhí)行不同的功能,但是沒有做到存的分配與回收。通過本實(shí)驗(yàn),對(duì)進(jìn)程的執(zhí)行過程有了深刻的了解。二、請(qǐng)求分頁存儲(chǔ)區(qū)管理2.1目的: 實(shí)現(xiàn)分頁式存儲(chǔ)地址轉(zhuǎn)換過程,在此基礎(chǔ)上實(shí)現(xiàn)請(qǐng)求分頁的地址轉(zhuǎn)換。分頁式存
4、儲(chǔ)管理系統(tǒng)是存非連續(xù)存儲(chǔ)管理中基本的方法,可以通過把一個(gè)作業(yè)分成多個(gè)頁面分配到不連續(xù)的存塊中去。實(shí)驗(yàn)可以通過位示圖的方式來模擬存的使用情況,為每個(gè)作業(yè)建立頁表用于完成正確的地址轉(zhuǎn)換。2.2容: 利用鍵盤輸入本模擬系統(tǒng)的物理塊的大小,作業(yè)的頁表中的塊號(hào);完成邏輯地址轉(zhuǎn)換成相應(yīng)的物理地址的過程。2.3數(shù)據(jù)結(jié)構(gòu) int Length; /頁表長度int Size; /存棧的大小int Memory; /存的大小int Map100; /FIFO位視圖int yebiao1002; /FIFO頁表int Mat=0; /FIFO計(jì)數(shù)器int Ming=0; /FIFO命中次數(shù)int Que=0; /F
5、IFO缺頁次數(shù)int Stack100; /FIFO存棧int Head=0; /FIFO頭指針int Map1100; /LRU位視圖int yebiao11002; /LRU頁表int Mat1=0; /LRU計(jì)數(shù)器int Ming1=0; /LRU命中次數(shù)int Que1=0; /LRU缺頁次數(shù)int Stack1100; /LRU存棧int Head1=0; /LRU頭指針int date15;int dat=0;int Map2100; /OPT位視圖int yebiao21002; /OPT頁表int Mat2=0; /OPT計(jì)數(shù)器int Ming2=0; /OPT命中次數(shù)int
6、Que2=0; /OPT缺頁次數(shù)int Stack2100; /OPT存棧int Head2=0; /OPT頭指針int t,w;2.4算法設(shè)計(jì)與流程圖:算法:建立位示圖,顯示存的分配,產(chǎn)生一組0和1的隨機(jī)數(shù)。輸入塊的大小,通過位示圖分配存空間建立相應(yīng)的頁表;輸入邏輯地址,計(jì)算出頁號(hào)和邏輯地址轉(zhuǎn)換成相應(yīng)的物理地址。然后檢查狀態(tài)位,判斷頁號(hào)是否在存,若是,則命中,若不是,則產(chǎn)生缺頁中斷,分別用FIFO算法和LRU算法請(qǐng)求調(diào)頁,并計(jì)算缺頁率。 流程圖:開始輸入頁表長度length輸入棧的大小size輸入內(nèi)存大小 memory隨機(jī)生成位示圖輸入邏輯地址logical根據(jù)頁塊計(jì)算出物理地址根據(jù)頁表號(hào)入
7、棧(內(nèi)存)命中? Y N改變棧頂指針棧滿? Y N塊號(hào)入棧改變棧頂指針置換計(jì)算置換次數(shù)計(jì)算缺頁數(shù)計(jì)算缺頁率輸出數(shù)據(jù)結(jié)束2.5小結(jié): 通過實(shí)驗(yàn)進(jìn)一步了解相應(yīng)的算法。但是由于對(duì)實(shí)驗(yàn)的理解不是很正確,導(dǎo)致在分配頁表時(shí)出現(xiàn)了錯(cuò)誤。三、設(shè)備管理3.1目的:設(shè)備管理主要包括設(shè)備的分配和回收、同時(shí)實(shí)現(xiàn)設(shè)備獨(dú)立性。3.2容: 假定模擬系統(tǒng)中有A(3臺(tái))、B(2臺(tái))、C三種設(shè)備,采用安全分配方式。1、設(shè)備管理子系統(tǒng)涉與到系統(tǒng)設(shè)備表(SDT)、通道控制表(CHCT)、控制器控制表(COCT)和設(shè)備控制表(DCT)來體現(xiàn)輸入輸出系統(tǒng)的四級(jí)結(jié)構(gòu)和三級(jí)控制。我們模擬這樣的數(shù)據(jù)結(jié)構(gòu)來完成對(duì)外圍設(shè)備的管理。(1)添加設(shè)備:
8、增加對(duì)應(yīng)的設(shè)備控制表和系統(tǒng)設(shè)備表中的表項(xiàng),如果需要新建對(duì)應(yīng)的控制器控制表。(2)刪除設(shè)備:刪除對(duì)應(yīng)的設(shè)備控制表和系統(tǒng)設(shè)備表中的表項(xiàng),如果需要?jiǎng)h除對(duì)應(yīng)的控制器控制表。2、設(shè)備分配必須滿足設(shè)備的獨(dú)立性要求。為了實(shí)現(xiàn)設(shè)備獨(dú)立性,要求在驅(qū)動(dòng)程序之上設(shè)計(jì)一層設(shè)備無關(guān)軟件,其主要功能可分為:(1)執(zhí)行所有設(shè)備的公有操作,主要包括:(a)獨(dú)占設(shè)備的分配與回收;(b)將邏輯設(shè)備名映射為物理設(shè)備(LUT),進(jìn)一步可以找到相應(yīng)物理設(shè)備的驅(qū)動(dòng)程序。(2)向用戶層(或文件層)軟件提供統(tǒng)一的接口。例如,對(duì)各種設(shè)備的讀操作,在應(yīng)用程序中都用read; 而對(duì)各種設(shè)備的寫操作,則都使用write。3.3數(shù)據(jù)結(jié)構(gòu):typede
9、f struct LNode char name20;/進(jìn)程名稱 char shebei20; /所需設(shè)備名稱LNode *next;LNode;typedef struct CHCTchar name20;int zhuangtai;LNode *next1;CHCT *rear;CHCT *next2;CHCT;typedef struct COCTchar name20;int zhuangtai;LNode *next1;CHCT *rear;COCT *next2;COCT;typedef struct DCTchar name20;char type20;int zhuangtai
10、;LNode *next1;COCT *rear;DCT;typedef struct SDTchar name20;char type20;DCT *rear;SDT *next1;SDT;SDT *head=new SDT();SDT *heads=head->next1;COCT *headc=new COCT();CHCT *headh=new CHCT();SDT *sd1,*sd2,*sd3,*sd4;DCT *dc1,*dc2,*dc3,*dc4;COCT *co1,*co2,*co3;CHCT *ch1,*ch2;void zhunbei()sd1=new SDT();s
11、trcpy(sd1->name,"K");strcpy(sd1->type,"I");sd2=new SDT();strcpy(sd2->name,"M");strcpy(sd2->type,"I");sd3=new SDT();strcpy(sd3->name,"P");strcpy(sd3->type,"O");sd4=new SDT();strcpy(sd4->name,"T");strcpy(sd4->
12、;type,"O");dc1=new DCT();strcpy(dc1->name,"K");strcpy(dc1->type,"I");dc1->zhuangtai=0;dc2=new DCT();strcpy(dc2->name,"M");strcpy(dc2->type,"I");dc2->zhuangtai=0;dc3=new DCT();strcpy(dc3->name,"P");strcpy(dc3->type,&q
13、uot;O");dc3->zhuangtai=0;dc4=new DCT();strcpy(dc4->name,"T");strcpy(dc4->type,"O");dc4->zhuangtai=0;co1=new COCT();strcpy(co1->name,"COCT1");co1->zhuangtai=0;co2=new COCT();strcpy(co2->name,"COCT2");co2->zhuangtai=0;co3=new COCT();
14、strcpy(co3->name,"COCT3");co3->zhuangtai=0;ch1=new CHCT();strcpy(ch1->name,"CHCT1");ch1->zhuangtai=0;ch2=new CHCT();strcpy(ch2->name,"CHCT2");ch2->zhuangtai=0;sd1->rear=dc1;sd1->next1=sd2;sd2->rear=dc2;sd2->next1=sd3;sd3->rear=dc3;sd3-&g
15、t;next1=sd4;sd4->rear=dc4;sd4->next1=NULL;head->next1=sd1;dc1->next1=new LNode();dc1->next1->next=NULL;dc1->rear=co1;dc2->next1=new LNode();dc2->next1->next=NULL;dc2->rear=co1;dc3->next1=new LNode();dc3->next1->next=NULL;dc3->rear=co2;dc4->next1=new LN
16、ode();dc4->next1->next=NULL;dc4->rear=co3;co1->next1=new LNode();co1->next1->next=NULL;co1->rear=ch1;co1->next2=co2;co2->next1=new LNode();co2->next1->next=NULL;co2->rear=ch2;co2->next2=co3;co3->next1=new LNode();co3->next1->next=NULL;co3->rear=ch2;
17、co3->next2=NULL;headc->next2=co1;ch1->next1=new LNode();ch1->next1->next=NULL;ch1->next2=ch2;ch2->next1=new LNode();ch2->next1->next=NULL;ch2->next2=NULL;headh->next2=ch1;3.4算法設(shè)計(jì)與流程圖 算法:系統(tǒng)中有四個(gè)設(shè)備,三個(gè)控制器和兩個(gè)通道。系統(tǒng)設(shè)備表(SDT)、通道控制表(CHCT)、控制器控制表(COCT)和設(shè)備控制表(DCT)來體現(xiàn)輸入輸出系統(tǒng)的四級(jí)結(jié)構(gòu)和
18、三級(jí)控制。添加設(shè)備:輸入設(shè)備名與設(shè)備類型,選擇是否用已有COCT,若是則進(jìn)行選擇,添加設(shè)備成功,若不是則新建COCT,然后選擇CHCT,添加設(shè)備成功。刪除設(shè)備:刪除對(duì)應(yīng)的設(shè)備控制表和系統(tǒng)設(shè)備表,如果需要?jiǎng)h除對(duì)應(yīng)的控制器控制表。申請(qǐng)?jiān)O(shè)備:找到設(shè)備后,根據(jù)DCT中設(shè)備狀態(tài)字段,可知設(shè)備的狀態(tài),若忙,則將進(jìn)程PCB掛到設(shè)備隊(duì)列上;否則判斷COCT是否被占用,若是,則阻塞到COCT隊(duì)列;否則判斷CHCT是否被占用,若是,則阻塞到CHCT隊(duì)列;否則申請(qǐng)?jiān)O(shè)備成功?;厥赵O(shè)備。與分配設(shè)備相反,從右至左進(jìn)行判斷。進(jìn)程回收設(shè)備的時(shí)候,把阻塞進(jìn)程喚醒。流程圖:開始輸入執(zhí)行命令輸入p?輸入d?輸入a?N N N Y
19、Y輸入進(jìn)程名稱輸入設(shè)備名稱輸入設(shè)備名稱、類型設(shè)備獨(dú)立性?刪除該設(shè)備是否新建COCT? Y N Y N輸入設(shè)備名稱輸入設(shè)備類型輸入coct名稱輸入新coct名稱分配設(shè)備分配設(shè)備選擇chct選擇chctCoct是否可刪?創(chuàng)建成功操作結(jié)束顯示設(shè)備 Y N刪除coct操作結(jié)束結(jié)束3.5小結(jié): 通過本實(shí)驗(yàn),我進(jìn)一步了解了設(shè)備獨(dú)立性的原理與其操作過程。 但不足的是沒有進(jìn)行設(shè)備歸還這一功能。四、文件管理4.1目的: 利用交互式命令實(shí)現(xiàn)樹型目錄結(jié)構(gòu)和文件管理。4.2容: 在文件中保存目錄容,創(chuàng)建文件或子目錄可以用命令行命令:MD、CD、RD、MK(創(chuàng)建文件)、DEL(刪除文件)和DIR。目錄項(xiàng)包括文件或目錄名
20、稱、類型(文件、目錄或空目錄項(xiàng))、創(chuàng)建日期以與下一個(gè)目錄項(xiàng)指針、下一級(jí)目錄項(xiàng)指針。4.3數(shù)據(jù)結(jié)構(gòu):typedef struct Filechar name20;struct File *child;struct File *next;char type5;int length;int mapf256;File;File *file;File *file1=new File();int map256;4.4算法設(shè)計(jì)與流程圖 算法: 1、創(chuàng)建初始文件,建立根目錄的“.”和“.”目錄項(xiàng)。2、顯示命令提示符“$”。3、輸入命令后根據(jù)命令含義完成相應(yīng)文件操作:MD:在目錄文件中創(chuàng)建子目錄,同時(shí)搜索當(dāng)前目
21、錄最后一個(gè)目錄項(xiàng),并保存指針信息;CD:根據(jù)當(dāng)前目錄切換到指定目錄;RD:搜索所要?jiǎng)h除的目錄是否為空目錄,若是則刪除;MK:在當(dāng)前目錄中創(chuàng)建文件名稱;DEL:搜索所要?jiǎng)h除的文件是否存在,若是則刪除;DIR:列出當(dāng)前目錄的所有目錄項(xiàng)。 流程圖:開始輸入命令輸入md?輸入dir?輸入Cd? N N N Y Y Y在目錄文件中創(chuàng)建子目錄列出當(dāng)前目錄項(xiàng)轉(zhuǎn)到指定目錄輸入del?輸入rd? N N Y Y Y在當(dāng)前目錄中創(chuàng)建文件刪除文件刪除空目錄結(jié)束4.5小結(jié): 本實(shí)驗(yàn)?zāi)M了windows創(chuàng)建目錄文件以與刪除的過程。通過實(shí)驗(yàn)的編寫,我對(duì)這一原理加深了了解。五、進(jìn)程調(diào)度5.1目的: 在實(shí)驗(yàn)一的基礎(chǔ)上實(shí)現(xiàn)先來
22、先服務(wù)FCFS、短作業(yè)優(yōu)先以與時(shí)間片輪轉(zhuǎn)調(diào)度算法。5.2容: 我們可以根據(jù)創(chuàng)建進(jìn)程的系統(tǒng)時(shí)鐘,取相對(duì)時(shí)鐘作為進(jìn)程的到達(dá)時(shí)間,利用隨機(jī)數(shù)產(chǎn)生每個(gè)進(jìn)程的估計(jì)運(yùn)行時(shí)間。利用模擬系統(tǒng)中提供的算法分別計(jì)算其相應(yīng)的周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間。具體過程:1、利用絕對(duì)時(shí)間和相對(duì)時(shí)鐘產(chǎn)生一組進(jìn)程的到達(dá)時(shí)刻和運(yùn)行時(shí)間。2、實(shí)現(xiàn)FCFS算法:根據(jù)進(jìn)程的到達(dá)時(shí)間的先后次序來完成對(duì)若干進(jìn)程的調(diào)度。3、實(shí)現(xiàn)算法:根據(jù)當(dāng)前時(shí)間已經(jīng)到達(dá)進(jìn)程的需要運(yùn)行時(shí)間選取其中時(shí)間最小的進(jìn)程最先運(yùn)行。4、實(shí)現(xiàn)時(shí)間片輪轉(zhuǎn)算法:首先要求確定時(shí)間片的大小,依據(jù)進(jìn)程的到達(dá)時(shí)間依次加入隊(duì)列,每次分配一個(gè)時(shí)間片大小的時(shí)間,如果沒有完成參與下一次的競爭,當(dāng)最后需要一個(gè)小于等于時(shí)間片的時(shí)間時(shí)本進(jìn)程完成,同時(shí)退出隊(duì)列。5、計(jì)算每種算法調(diào)度后,系統(tǒng)的平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。5.3數(shù)據(jù)結(jié)構(gòu):typedef struct Progresschar name10; float time_reach; /到達(dá)系統(tǒng)時(shí)間 float ti
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒保教知識(shí)與能力-教師資格《幼兒保教知識(shí)與能力》模擬題10
- 2025年電力控制設(shè)備項(xiàng)目建議書
- 第二章第二節(jié)《編輯圖像》教學(xué)設(shè)計(jì) 2023-2024學(xué)年 泰山版初中信息技術(shù)七年級(jí)下冊(cè)
- 2025年甘肅能源化工職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫一套
- 第19課 資本主義國家的新變化 教學(xué)設(shè)計(jì)-2023-2024學(xué)年高一下學(xué)期統(tǒng)編版(2019)必修中外歷史綱要下
- 機(jī)器學(xué)習(xí)原理與應(yīng)用電子教案 5.1線性回歸
- 第二單元 遼宋夏金元時(shí)期:民族關(guān)系的發(fā)展與社會(huì)變化 大單元教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版七年級(jí)歷史下冊(cè)
- 4體育與身體形態(tài)D 教學(xué)設(shè)計(jì)-八年級(jí)體育與健康
- 2025年廣西生態(tài)工程職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案
- 肋骨骨折治療方法與護(hù)理
- 脫碳塔CO2脫氣塔設(shè)計(jì)計(jì)算
- 《駱駝祥子》通讀指導(dǎo)手冊(cè)
- 股東會(huì)會(huì)議系列文件(通知、議程、簽到表、表決票、決議)
- 非法占用農(nóng)田建房舉報(bào)信范文
- 伐樹工程施工合同范本
- 數(shù)據(jù)挖掘(第2版)PPT全套完整教學(xué)課件
- 工程開工報(bào)告(5篇)
- 配電箱試驗(yàn)項(xiàng)目
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第一章運(yùn)動(dòng)技能學(xué)習(xí)與控制概述
- 溫室大棚花卉苗圃采暖方案空氣源熱泵
- BEC商務(wù)英語高級(jí)考試歷年真題
評(píng)論
0/150
提交評(píng)論