




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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ǎn)單的結(jié)構(gòu)和控制方法模擬進(jìn)程結(jié)構(gòu)、進(jìn)程狀態(tài)和進(jìn)程控制。1.2內(nèi)容:用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 *n ext;LNode;1.4算法設(shè)計(jì)及流程圖:算法:創(chuàng)建進(jìn)程:輸入進(jìn)程的名稱,先判斷進(jìn)程名是否
2、已存在,若已存在,則創(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í)行命令輸入C輸入tN輸入 b輸入進(jìn)程名執(zhí)行態(tài)插入就緒態(tài)執(zhí)行態(tài)轉(zhuǎn)為 阻塞態(tài)將進(jìn)程插入就緒態(tài)執(zhí)行態(tài)為空N就緒態(tài)第一個(gè)結(jié)就緒態(tài)第一個(gè)點(diǎn)插入執(zhí)行態(tài)結(jié)點(diǎn)插入執(zhí)行態(tài)顯示進(jìn)程信息阻塞態(tài)插入就結(jié)束進(jìn)程緒態(tài)1.5小結(jié):通過命令的選擇,來執(zhí)行不同的功能,但是沒有做到內(nèi)存的分配與回收。通過本實(shí)驗(yàn),對(duì)進(jìn)程的執(zhí)行過程有了深刻的了解。二、請(qǐng)求分頁(yè)存儲(chǔ)區(qū)管理2.1目的:實(shí)現(xiàn)分頁(yè)式存儲(chǔ)地址轉(zhuǎn)換過程,在此基礎(chǔ)上實(shí)現(xiàn)請(qǐng)求分頁(yè)的地址轉(zhuǎn) 換。分頁(yè)式存儲(chǔ)管理系統(tǒng)是內(nèi)存非連續(xù)存儲(chǔ)管理中基本的方法,可 以通過把一個(gè)作業(yè)分成多個(gè)頁(yè)面分配到不連續(xù)的內(nèi)存塊中去。實(shí)驗(yàn) 可以通過位示圖的方式來模擬內(nèi)存的使用情況,為每個(gè)作業(yè)建立頁(yè) 表用于完成正確
4、的地址轉(zhuǎn)換。2.2內(nèi)容:利用鍵盤輸入本模擬系統(tǒng)的物理塊的大小,作業(yè)的頁(yè)表中的塊號(hào); 完成邏輯地址轉(zhuǎn)換成相應(yīng)的物理地址的過程。2.3數(shù)據(jù)結(jié)構(gòu)int Len gth; /頁(yè)表長(zhǎng)度int Size; / 內(nèi)存棧的大小int Memory; / 內(nèi)存的大小int Map100; /FIFO 位視圖int yebiao1002; /FIFO 頁(yè)表int Mat=0; /FIFO計(jì)數(shù)器int Min g=0; /FIFO命中次數(shù)int Que=0; /FIFO缺頁(yè)次數(shù)int Stack100; /FIFO內(nèi)存棧int Head=0; /FIFO頭指針int Map1100; /LRU位視圖int yebi
5、ao11002; /LRU頁(yè)表int Mat1=0; /LRU計(jì)數(shù)器int Ming仁0; /LRU命中次數(shù)int Que 1=0; /LRU缺頁(yè)次數(shù)int Stack1100; /LRU內(nèi)存棧int Head1=0; /LRU頭指針int date15;int dat=0;int Map2100; /OPT位視圖int yebiao21002; /OPT頁(yè)表int Mat2=0; /OPT計(jì)數(shù)器int Min g2=0; /OPT命中次數(shù)int Que2=0; /OPT缺頁(yè)次數(shù)int Stack2100; /OPT內(nèi)存棧int Head2=0; /OPT頭指針int t,w;2.4算法設(shè)計(jì)及
6、流程圖:建立位示圖,顯示內(nèi)存的分配,產(chǎn)生一組 0和1的隨機(jī)數(shù)。輸入塊的大小,通過位示圖分配內(nèi)存空間建立相應(yīng)的頁(yè)表;輸入邏輯地址,計(jì)算出頁(yè)號(hào)和邏輯地址轉(zhuǎn)換成相應(yīng)的物理地址。然后檢查狀態(tài)位,判斷頁(yè)號(hào)是否在內(nèi)存,若是,則命中,若不是,則 產(chǎn)生缺頁(yè)中斷,分別用FIFO算法和LRU算法請(qǐng)求調(diào)頁(yè),并計(jì)算 缺頁(yè)率。流程圖:2.5小結(jié):通過實(shí)驗(yàn)進(jìn)一步了解相應(yīng)的算法。但是由于對(duì)實(shí)驗(yàn)的理解不是很正 確,導(dǎo)致在分配頁(yè)表時(shí)出現(xiàn)了錯(cuò)誤。三、設(shè)備管理3.1目的:設(shè)備管理主要包括設(shè)備的分配和回收、同時(shí)實(shí)現(xiàn)設(shè)備獨(dú)立性。3.2內(nèi)容:假定模擬系統(tǒng)中有A( 3臺(tái))、B(2臺(tái))、C三種設(shè)備,采用安全分 配方式。1、設(shè)備管理子系統(tǒng)涉及
7、到系統(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è)備:增加對(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è)備
8、(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):typedef struct LNodechar n ame20;進(jìn)程名稱char shebei20; / 所需設(shè)備名稱LNode *n ext;LNode;typedef struct CHCTchar n ame20; int zhua ngtai; LNode *n extl;CHCT *rear;CHCT *n ext2; CHCT;typedef struct COCT c
9、har n ame20; int zhua ngtai; LNode *n ext1;CHCT *rear;COCT *n ext2; COCT;typedef struct DCTchar n ame20; char type20; int zhua ngtai; LNode *n ext1;COCT *rear;DCT;typedef struct SDTchar n ame20;char type20;DCT *rear;SDT *n ext1;SDT;SDT *head=new SDT();SDT *heads=head-> next1;COCT *headc=new COCT(
10、);CHCT *headh=new CHCT();SDT *sd1,*sd2,*sd3,*sd4;DCT *dc1,*dc2,*dc3,*dc4;COCT *co1,*co2,*co3;CHCT *ch1,*ch2;void zhu nbei()sd仁new SDT(); strcpy(sd1-> name,"K"); strcpy(sd1->type,T);sd2=new SDT(); strcpy(sd2-> name,"M"); strcpy(sd2->type,"l");sd3=new SDT(); s
11、trcpy(sd3-> name,"P"); strcpy(sd3->type,"0");sd4=new SDT(); strcpy(sd4->n ame,"T"); strcpy(sd4->type,"0");de仁new DCT(); strcpy(dc1-> name,"K"); strcpy(dc1->type,T); dc1->zhua ngtai=O;dc2=new DCT(); strcpy(dc2-> name,"M&qu
12、ot;); strcpy(dc2->type,"l"); dc2->zhua ngtai=O;dc3=new DCT(); strcpy(dc3-> name,' 'P"); strcpy(dc3->type,"0"); dc3->zhua ngtai=O;dc4=new DCT(); strcpy(dc4-> name,"T"); strcpy(dc4->type,"0"); dc4->zhua ngtai=O;co仁new COCT();
13、 strcpy(co1-> name,"COCT1"); co1->zhua ngtai=O;co2=new COCT(); strcpy(co2-> name,"COCT2");co2->zhua ngtai=O; co3=new COCT();strcpy(co3-> name,"COCT3"); co3->zhua ngtai=O;ch1= new CHCT();strcpy(ch1-> name,"CHCT1"); ch1->zhua ngtai=O;ch2=
14、new CHCT();strcpy(ch2-> name,"CHCT2");ch2->zhua ngtai=O;sd1->rear=dc1;sd1-> next 1= sd2;sd2->rear=dc2;sd2-> next 仁 sd3;sd3->rear=dc3;sd3-> next仁sd4;sd4->rear=dc4;sd4-> next仁NULL;head->n ext1=sd1; del- >n ext1= new LNode(); dc1-> next1-> next=NULL;
15、dc1->rear=co1;dc2-> next仁 new LNode(); dc2-> next1-> next=NULL; dc2->rear=co1;dc3-> next仁 new LNode(); dc3-> next1-> next=NULL; dc3->rear=co2;dc4->n ext1= new LNode(); dc4-> next1-> next=NULL; dc4->rear=co3;col- >n ext1= new LNode();col- >n ext1-> next
16、=NULL;co1->rear=ch1;col- >n ext2=co2; co2->n ext1= new LNode(); co2-> next1-> next=NULL;co2->rear=ch2;co2->n ext2=co3;co3->n ext1= new LNode(); co3->n ext1-> next=NULL; co3->rear=ch2;co3-> next2=NULL;headc- >n ext2=co1;chi- >n ext1= new LNode(); chi- >n e
17、xt1-> next=NULL; ch1-> next2=ch2;ch2-> next 仁new LNode();ch2-> next1-> next=NULL;ch2-> next2=NULL;headh->n ext2=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)和三級(jí)控制。添加設(shè)備:輸入設(shè)備名及設(shè)備類型,選擇是否用已有 COCT,若是 則進(jìn)行選擇,添加設(shè)備成功,若不是則新建 COCT,然 后
18、選擇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)程喚醒。流程圖:開始結(jié)束3.5小結(jié):通過本實(shí)驗(yàn),我進(jìn)一步了解了設(shè)備獨(dú)立性的原理及其操作過程。 但不足的是沒有進(jìn)行設(shè)備歸還這一功能。四、文件管理4.1目的:利用交互式命令實(shí)現(xiàn)樹
19、型目錄結(jié)構(gòu)和文件管理。4.2內(nèi)容:在文件中保存目錄內(nèi)容,創(chuàng)建文件或子目錄可以用命令行命令:MD、CD、RD、MK (創(chuàng)建文件)、DEL (刪除文件)和 DIR。目 錄項(xiàng)包括文件或目錄名稱、類型(文件、目錄或空目錄項(xiàng))、創(chuàng)建日 期以及下一個(gè)目錄項(xiàng)指針、下一級(jí)目錄項(xiàng)指針。4.3數(shù)據(jù)結(jié)構(gòu):typedef struct Filechar n ame20;struct File *child;struct File *n ext;char type5;int len gth;int map f256;File;File *file;File *file1= new File();int map256;4
20、.4算法設(shè)計(jì)及流程圖算法:1、創(chuàng)建初始文件,建立根目錄的“.”和“.”目錄項(xiàng)。2、顯示命令提示符“ $ ”。3、輸入命令后根據(jù)命令含義完成相應(yīng)文件操作:MD:在目錄文件中創(chuàng)建子目錄,同時(shí)搜索當(dāng)前目錄最后一個(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)。流程圖: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)
21、先來先服務(wù) FCFS、短作業(yè)優(yōu)先SJF以及 時(shí)間片輪轉(zhuǎn)調(diào)度算法。5.2內(nèi)容:我們可以根據(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)SJF算法:根據(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í)間,如果沒有完成參與下一次的競(jìng)爭(zhēng),當(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 n ame10;float time_reach; /到達(dá)系統(tǒng)時(shí)間float time_serve; /要求服務(wù)時(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 游泳救生員初級(jí)測(cè)試題與答案
- 推拿治療學(xué)測(cè)試題+答案
- 業(yè)務(wù)學(xué)習(xí)心得體會(huì)范文
- 醫(yī)美服裝采購(gòu)合同范本
- 下半年人力資源部工作計(jì)劃
- 三年級(jí)數(shù)學(xué)綜合實(shí)踐課教案
- 中藥炮制工中級(jí)練習(xí)題(含答案)
- 辦公別墅 出租合同范本
- 建筑信息模型職業(yè)技能理論知識(shí)試題庫(kù)及參考答案
- 工程地質(zhì)與土力學(xué)練習(xí)題(含答案)
- 有機(jī)化學(xué)(高占先)習(xí)題答案
- 中國(guó)化學(xué)家侯德榜市公開課獲獎(jiǎng)?wù)n件
- 2022年人教部編版三年級(jí)下冊(cè)道德與法治全冊(cè)教案
- 支氣管鏡室工作制度
- 紫精丹_圣惠卷九十五_方劑加減變化匯總
- 天藍(lán)色商務(wù)發(fā)展歷程時(shí)間軸PPT模板課件
- 第5章液相傳質(zhì)步驟動(dòng)力學(xué)
- GJB 國(guó)軍標(biāo)標(biāo)準(zhǔn)對(duì)應(yīng)名稱解析
- 2019版人教版新課標(biāo)高中英語必修1第一冊(cè)單詞表
- [考研英語]商志英語作文模板
- 小學(xué)交通安全主題班會(huì):《一盔一帶 安全出行》
評(píng)論
0/150
提交評(píng)論