上海大學(xué)操作系統(tǒng)(二)實驗報告(全).._第1頁
上海大學(xué)操作系統(tǒng)(二)實驗報告(全).._第2頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、評分:上浴大孝SHANGHAI UNIVERSITY操作系統(tǒng)實驗報告學(xué) 院計算機工程與科學(xué) 專 業(yè)計算機科學(xué)與技術(shù) 學(xué) 號學(xué)生姓名計算機操作系統(tǒng)實驗一報告實驗一題目:操作系統(tǒng)的進(jìn)程調(diào)度姓名: 張佳慧 學(xué)號:12122544實驗日期:2015.1實驗環(huán)境 :Microsoft Visual Studio實驗?zāi)康模哼M(jìn)程是操作系統(tǒng)最重要的概念之一,進(jìn)程調(diào)度又是操作系統(tǒng)核心的主要內(nèi)容。本實習(xí)要求學(xué)生獨立地用高級語言編寫和調(diào)試一個簡單的進(jìn)程調(diào)度程序。調(diào)度算法可任意選擇或自行設(shè)計。例如,簡單輪轉(zhuǎn)法和優(yōu)先數(shù)法等。本實習(xí)可加深對于進(jìn)程調(diào)度和各種調(diào)度算法的理解。實驗內(nèi)容:1、 設(shè)計一個有n個進(jìn)程工行的進(jìn)程調(diào)度程

2、序。每個進(jìn)程由一個進(jìn)程控制塊(PCB表示。進(jìn) 程控制塊通常應(yīng)包含下述信息: 進(jìn)程名、進(jìn)程優(yōu)先數(shù)、進(jìn)程需要運行的時間、占用CPU的時 間以及進(jìn)程的狀態(tài)等,且可按調(diào)度算法的不同而增刪。2、 調(diào)度程序應(yīng)包含23種不同的調(diào)度算法,運行時可任意選一種,以利于各種算法的分析 比較。3、系統(tǒng)應(yīng)能顯示或打印各進(jìn)程狀態(tài)和參數(shù)的變化情況,便于觀察諸進(jìn)程的調(diào)度過程。操作過程:1、本程序可選用優(yōu)先數(shù)法或簡單輪轉(zhuǎn)法對五個進(jìn)程進(jìn)行調(diào)度。每個進(jìn)程處于運行R(run)、就緒W(wait)和完成F(finish)三種狀態(tài)之一,并假設(shè)起始狀態(tài)都是就緒狀態(tài)W為了便于處理,程序進(jìn)程的運行時間以時間片為單位計算。進(jìn)程控制塊結(jié)構(gòu)如下:進(jìn)

3、程控制塊結(jié)構(gòu)如下:PCB進(jìn)程標(biāo)識數(shù)鏈指針優(yōu)先數(shù)/輪轉(zhuǎn)時間片數(shù)占用CPU時間片數(shù)進(jìn)程所需時間片數(shù)進(jìn)程狀態(tài)進(jìn)程控制塊鏈結(jié)構(gòu)如下:其中:RU當(dāng)前運行進(jìn)程指針;HEAD進(jìn)程就緒鏈鏈?zhǔn)字羔?;TAID進(jìn)程就緒鏈鏈尾指針。2、算法與框圖(1)優(yōu)先數(shù)法。進(jìn)程就緒鏈按優(yōu)先數(shù)大小從高到低排列,鏈?zhǔn)走M(jìn)程首先投入運行。 每過一個時間片,運行進(jìn)程所需運行的時間片數(shù)減1,說明它已運行了一個時間片,優(yōu)先數(shù)也減3,理由是該進(jìn)程如果在一個時間片中完成不了,優(yōu)先級應(yīng)該降低一級。接著比較現(xiàn)行進(jìn)程和就緒鏈鏈?zhǔn)走M(jìn)程的優(yōu)先數(shù),如果仍是現(xiàn)行進(jìn)程高或者相同,就讓現(xiàn)行進(jìn)程繼續(xù)進(jìn)行,否則,調(diào)度就緒鏈鏈?zhǔn)走M(jìn)程投入運行。原運行進(jìn)程再按其優(yōu)先數(shù)大小插

4、入就緒鏈,且改變它們對應(yīng)的進(jìn)程狀態(tài),直至所有進(jìn)程都運行完各自的時間片數(shù)。(2)簡單輪轉(zhuǎn)法。進(jìn)程就緒鏈按各進(jìn)程進(jìn)入的先后次序排列, 進(jìn)程每次占用處理機的輪轉(zhuǎn)時間按其重要程度登入進(jìn)程控制塊中的輪轉(zhuǎn)時間片數(shù)記錄項(相當(dāng)于優(yōu)先數(shù)法的優(yōu)先數(shù)記錄項位置)。每過一個時間片,運行進(jìn)程占用處理機的時間片數(shù)加1,然后比較占用處理機的時間片數(shù)是否與該進(jìn)程的輪轉(zhuǎn)時間片數(shù)相等,若相等說明已到達(dá)輪轉(zhuǎn)時間,應(yīng)將現(xiàn)運行進(jìn)程排到就緒鏈末尾, 調(diào)度鏈?zhǔn)走M(jìn)程占用處理機,且改變它們的進(jìn)程狀態(tài),直至所有進(jìn)程完成各自的時間片。(3)程序框圖說W H UE.9LA人小muTHl rrnhiri列雖艸忡制族Si F而眄珂區(qū)垃I 代|n| M

5、l IRUNTAIL運行結(jié)果:Priority算法:1.1PHIOKITZZTUHHTEHECPWr1 ME hLLTIHESTfiiTUSIDPHI OfC I TYZZT U HHT I WECPUTIHEKILLTIHESTfiiTUSIDPHI OHI TVZITUHHT I HECMJT I HEnLLTIMESTATUSFXai-diifut Jiv Rli,uii7xtini.n RLIHMINQPROCESS t yAil TIHGQUEUE : 25RUNNINGWAITI MGPROCESSS 2QUEUE: 2S1 4RLIlNHING PROCFS SITIHG QUE

6、UE:- -= =- =- =- = RLIHHIHCyAlTIMG-PROCESSQUEUE? 3l &f 1 4 2IDPHI OJKI TYZZT U HHT L HliGP1JT I MEALLTIHEEfTAlTUS!4107RUNNIHG PROCESS: 4UAITI NG QUEUE: 2 5 13HIORirV/ZTUIWTIME :PUTHEILLII HE:TRIMSPRIORIIV/ZIURNIIME :PUTI HEILLTIHESTATUSHUNHINC PROCESS: 3 UAITINGQUEUE:1425ID1 2345PRIORITV/zTURNTI

7、ME10111CPUTINE11101ALLII HE53673STATUSUWnWVHIINNING PROCESS: 1 WAITINGQUEUE: 4253RIORITV/ZTURHIIME :PUT I HEILIiTIHE:TUTUSRUNNING FROCKS: 2IFfl 111 NG OUEUE:5 4 13Round Robin算法:the A Igo rit hniCPlopit y SRaun d JRcbin i:PUTIMEfeLLTIIIE HTftTUCNNING PROCESSi 1I TING QUEUE:2 3 4 5lORJTVZZTIJRNTIHi:PU

8、TIME feLLTiriETAT(JNHING PROCESS z 1ITI QUEUE: 2 3 4 5IDPTIiaRTTzzTUWTirfE CPU TIMERJLLTiriESTfiTUSAUNNIHG PfiiCESS: 2WrTIHCi QUEUE:3 15 1IDPHIORITVz/TmTIttECPUTirlEALLTIMESTATUSRUNNING:2WnrTIHG QUEUE:31510fitlpHlCiRm/TURHTIME 2PUTIHEILLUMEHATUSFlUNNIHG PROCESS:5 lAITIHaQUEUE:lfcRIOBIT/xrUflMTIIHE :

9、PUTIttEULLTIHESTATUSFtUNNIHG PROCESS- 5 MITINGQUEUE:PRIORITV/TUJUHIIME :PUTIME(LLTIHEHATUEKUNNI HQ PROCESS = 5 WAITINGQUBUE:PRIORIW/TUHMrIHE PUTIttE aLTIHEHATUSKUHHIHG PROCESS: HULL IAITIHGQUEUE:實驗代碼:/操作系統(tǒng)實驗-進(jìn)程調(diào)度#in elude #in elude #in elude #i nclude const long n=5;struct pcbtype/進(jìn)程控制塊結(jié)構(gòu)long id, pr

10、iority, ru ntime, totaltime;char status;/R, W, F - 運行,就緒,完成PCB n+1;long linkn+1;/鏈表結(jié)構(gòu)long RUN, HEAD, TAIL;/選擇算法long ChooseAlgo()char s128;printf(Please type the Algorithm(PriorityRound Robin):);gets(s);0 0 0 3 3 F F F F B0HHuuif (s0=P | s0=p)return 1;return 0;/初始化void in it()long i;for (i=1; i=n; i+

11、)PCBi.id = i;PCBi.priority = ran d()%4+1;PCBi.ru ntime = 0;PCBi.totaltime = ran d()%8+1;PCBi.status = W;/顯示進(jìn)程調(diào)度狀況void showit()long i;prin tf(=n);pri ntf(%25s,ID);for (i=1; i=n; i+)prin tf(%4ld, PCBi.id);pri ntf(n%-25s,PRIORITY/TURNTIME);for (i=1; i=n; i+)prin tf(%4ld, PCBi.priority);prin tf(n%-25s,

12、CPUTIME);for (i=1; i=n; i+)prin tf(%4ld, PCBi.ru ntime);prin tf(n%-25s, ALLTIME);for (i=1; i=n; i+)prin tf(%4ld, PCBi.totaltime);pr in tf(n%-25s,STATUS);for (i=1; i=n; i+)prin tf(%4c, PCBi.status);prin tf(n=n);if (RUN != -1)pr in tf(RUNNING PROCESS: %ldn, RUN);else printf(RUNNING PROCESS: NULLn);pri

13、ntf(WAITING QUEUE:);for (i=HEAD; i!=-1; i=li nki)prin tf(%ld , i);pri ntf(inn);/優(yōu)先數(shù)調(diào)度算法void main_priority()long i, j, k;long sort n+1;ini t();/設(shè)置就緒鏈for (i=1; i=n; i+)sorti = i;for (i=1; ii; j-)if (PCBsortj.priority PCBsortj-1.priority)k=sortj; sortj=sortj-1; sortj-1=k;HEAD=sort1;for (i=1; in; i+)lin

14、 ksorti = sorti+1;TAIL = sort n;lin kTAIL = -1;RUN = -1;/就緒鏈設(shè)置完畢RUN = HEAD;PCBRUN.status = R;HEAD = linkHEAD;/運行鏈?zhǔn)走M(jìn)程while (RUN != -1)showit();PCBRUN.totaltime-;PCBRUN.priority -= 3;PCBRUN.ru ntime+;if (PCBRUN.totaltime = 0)/ 進(jìn)程運行完成/優(yōu)先級減 3PCBRUN.status=F;RUN = HEAD;if (HEAD != -1)HEAD = lin kHEAD;PCB

15、RUN.status=R;elseif (HEAD != -1 & PCBRUN.priority PCBRUN.priority) k=li nkk;if (k = TAIL)linkk = RUN;/插入鏈尾之后TAIL = RUN;lin kRUN = -1;RUN = HEAD;HEAD = lin kHEAD;PCBRUN.status = R;elselinkRUN = linkk;/ 插入鏈中l(wèi)in kk = RUN;RUN = HEAD;/鏈?zhǔn)走M(jìn)程開始運行HEAD = lin kHEAD;PCBRUN.status = R;showit();/輪轉(zhuǎn)調(diào)度算法void ma

16、in_roun d_rob in()long i;ini t();/設(shè)置就緒鏈HEAD = 1;for (i=1; in; i+)li nki = i+1;TAIL = n;li nkTAIL = -1;RUN = -1;/就緒鏈設(shè)置完畢RUN = HEAD;PCBRUN.status = R;HEAD = lin kHEAD;/運行首進(jìn)程while (RUN != -1)showit();PCBRUN.totaltime-;PCBRUN.ru ntime+;if (PCBRUN.totaltime = 0)/進(jìn)程運行完成PCBRUN.status = F;RUN = HEAD;if (HEA

17、D != -1)HEAD = lin kHEAD;PCBRUN.status = R;elseif (HEAD != -1 & PCBRUN.runtime % PCBRUN.priority=0)輪轉(zhuǎn)時間到PCBRUN.status=W;/ 插入鏈尾lin kTAIL=RUN;lin kRUN=-1;TAIL=RUN;RUN=HEAD; 鏈?zhǔn)走M(jìn)程開始運行HEAD=li nkHEAD;PCBRUN.status=R;showit();/主函數(shù)int mai n()long algo;sran d(time(NULL);algo = ChooseAlgo();if (algo = 1)m

18、ain_priority();優(yōu)先數(shù)法elsemain_roun d_rob in();/簡單輪轉(zhuǎn)法pri ntf(SYSTEM FINISHEDn);return 0;實驗體會:通過寫代碼的過程更加清晰地了解了兩種算法的思想和用處, 也鍛煉了寫代碼的能力。對算法的了解加深的同事計算機操作系統(tǒng)實驗三報告實驗三題目:請求頁式存儲管理姓名: 張佳慧 學(xué)號:12122544實驗日期:2015.1實驗環(huán)境 :Microsoft Visual Studio實驗?zāi)康模航陙?,由于大?guī)模集成電路(LSI)和超大規(guī)模集成電路(VLSI)技術(shù)的發(fā) 展,使存儲器的容量不斷擴大,價格大幅度下降。但從使用角度看,存儲

19、器的容 量和成本總受到一定的限制。所以,提高存儲器的效率始終是操作系統(tǒng)研究的重 要課題之一。虛擬存儲技術(shù)是用來擴大內(nèi)存容量的一種重要方法。學(xué)生應(yīng)獨立地 用高級語言編寫幾個常用的存儲分配算法,并設(shè)計一個存儲管理的模擬程序,對 各種算法進(jìn)行分析比較,評測其性能優(yōu)劣,從而加深對這些算法的了解。實驗內(nèi)容:為了比較真實地模擬存儲管理,可預(yù)先生成一個大致符合實際情況的指令地址流。然后模擬這樣一種指令序列的執(zhí)行來計算和分析各種算法的訪問命中率。本實驗采用頁式分配存儲管理方案,并通過分析計算不同頁面淘汰算法情況下的訪問命中率來比較各種算法的優(yōu)劣。另外也考慮到改變頁面大小和實際存儲器容量對計算結(jié)果的影響,從而可

20、為算則好的算法、合適的頁面尺寸和實存容量提供依據(jù)。實驗是按下述原則生成指令序列的:(1)50%的指令是順序執(zhí)行的。(2)25%的指令均勻散布在前地址部分。(3)25%的指令均勻散布在后地址部分。示例中選用最佳淘汰算法(OPT)和最近最少使用頁面淘汰算法(LRU)計算頁面命中率。公式為假定虛存容量為32K,頁面尺寸從1K至8K,實存容量從4頁至32頁。(1)最佳淘汰算法(OPT)這是一種理想的算法,可用來作為衡量其他算法優(yōu)劣的根據(jù),在實際系統(tǒng)中是難以實現(xiàn)的,因為它必須先知道指令的全部地址流。由于本示例中已預(yù)生成了全部的指令地址流,故可計算出最佳命中率。該算法的準(zhǔn)則是淘汰已滿頁表中不再訪問或是最遲

21、訪問的的頁。這就要求將頁表中的頁逐個與后繼指令訪問的所有頁比較,如后繼指令不在訪問該頁,則把此頁淘汰,不然得找出后繼指令中最遲訪問的頁面淘汰??梢娮罴烟蕴惴ㄒㄙM比較長的運算時間。(2)最近最少使用頁淘汰算法(LRU)這是一種經(jīng)常使用的方法,有各種不同的實施方案,這里采用的是不斷調(diào)整頁表鏈的方法,即總是淘汰頁表鏈鏈?zhǔn)椎捻摚研略L問的頁插入鏈尾。如果當(dāng)前調(diào)用頁已在頁表內(nèi),則把它再次調(diào)整到鏈尾。 這樣就能保證最近使用的頁,總是處于靠近鏈尾部分,而不常使用的頁就移到鏈?zhǔn)?,逐個被淘汰,在頁表較大時,調(diào)整頁表鏈的代價也是不小的。操作過程:編寫程序:#in elude #in elude #in el

22、ude #in elude #in elude #in elude #in elude #in elude #in elude using n amespaee std;int adress32;全局變量數(shù)組,地址流int p; 全局變量 p 是一共有多少地址流void init()初始化函數(shù),int t;sran d(time(0);隨機產(chǎn)生指令序列p=12+ra nd()%32;cout地址流個數(shù) P=vvpve ndl;coutvv隨機產(chǎn)生的地址流序列n;for(i nt i=O,j=O;ip;i+,j+)t=1+ra nd()%9;adressi=t;將隨機產(chǎn)生的指令數(shù)存入頁面流pri

23、n tf(a%d=%d,i,t);j=j%5;if(i10) prin tf(); if(j=4) pri ntf(n);coute ndl;void OPT(int n) /FIFO 算法,n 是 M 的值int e,q=p,m=n-1;int flag;int flagl;int queye=O;int leafli nk32;memset(leafli nk,0,sizeof(leafli nk); for(i nt x=O;xq;x+)e=x;flag=0;for(i nt i=0;i n ;i+)if(leafli nki=adressx) flag=1; flag 仁 i;prin

24、tf(” 有相同 n);break;if(flag=0)int k=0;for(i nt j=0;j=m)queye+;if(flag=1)int temp10=0;for(int i=0;i=m;i+)for(i nt a=e+1;aq;a+) if(leafli nki=adressa) tempi+;int in dex=0;for(int i=0;itempi)mi n=tempi;in dex=i;int l=leafl in ki ndex;leafli nki ndex=leafli nkO;leafli nk0=l;for(i nt j=O;j n ;j+)prin tf(le

25、afli nk%d=%d ,j,leafli nkj); coute ndl;coutvvM=vvn時 FIFO 的命中率為:v(1-(double)queye/p)*100vv%vvoid LRU(i nt n) /LRU算法int i;in t m=n-1;int q=p;int e;int queye=0;int flag;int flag1;int y;int leaflink32;memset(leafli nk,0,sizeof(leafli nk);for(i nt x=0;xq;x+)flag=0;e=x;for(i=0;i n ;i+)if(leafli nki=adress

26、x)flag=1;flag 仁 i;prin tf(X=%d,lru%d = adress%d=%d ,flag= 1n ,x,i,x,adress x); break;if(flag=0)int k=0;for(i nt j=0;jm;j+)/0 1 2leafli nkk=leafli nkk+1;k+;leafli nkm=adresse;queye+;endl;else if(flag=1)y=flag1;for( int j=O;jm;j+)leafli nkflag1=leafli nkflag1+1;flag1+;leafl in k3=adresse;pri ntf(發(fā)現(xiàn)相同后

27、,改變leafli nk%d=%dn,m,leafli nk3);for(i nt j=0;j n ;j+)printf(leaflink%d=%d ,j,leaflinkj);coute ndl;cout發(fā)生替換次數(shù):vvqueyevve ndl;coutvM=vvn時 LRU 的命中率為:(1-(double)queye/p)*100% c;if(c=O)for(int i=3;i4;i+)OPT(i);else if(c=L)for(int i=4;i5;i+)LRU(i);coute ndl; return0;運行結(jié)果:最近最少使用:5帝j址F也證機ffi-逋LSI=91B1-5a6

28、J=5aClllLal71=2a(121-8aL8 J=9a13=6aL9J=2a(14=8:=leaflinktlJ=0leaFlinktlJ=0leaflinkfl1=3La&fllnkEll-ELeaflinkElJ-9leaflink2J=0leaflink2J=3leaflinkt2=5leaflink2J=9laafllnk21*l發(fā)現(xiàn)相同后,改變筋GnkRl巧leaf link Ptl=l leaf link 11=8 leaf link2 1 = 9 leaflinkL0J=e leaflinkEl 1=9 lz珂ink巧薛同;X =8,LrUl = adress8=?

29、 ,lag= 1發(fā)相同后.衣變laaflinktai-?leaflinkEM=B leaFlinkEl 1=5 leaflink21=2有相同:X=9,lruT2 = adrets=2 ,flag= 1發(fā)現(xiàn)希同后,改變W旳ink=2 leafllnkCOJ-e leaflinktl1-5 leaflinkE2-V百相同:IPULI J adress 1U J =5Rf lig- 1發(fā)現(xiàn)相同后,改變Tflink=5 leaflinkBJ=eleaflinkr01=9 leaflink0=2 leaf1inkL0J=5有相同:X=14,lri*r21 =發(fā)現(xiàn)相同后,改變leaflinK3V8 le

30、aflink0=5leaflinkLl =1 leaflnk2=6發(fā)生賛換W= 9時LRU的命中率為:40leaf link1J=9leaflink Cl 1-2leaFlinkCl1=5leaflinkLll-1leaflinkL2J=2loaflinkE2-5leaflink2=lloaf linkE2-Sadress L14 J=8J.Flag= 1leaFlink31=3 leaflinkL3 1=5 leaf linkL3J=9lBafllnkE3-lleaflinJir31=alaaFlink3-9leafllnkt3J=5 leafllnk3J-2leaflink(3J=9lea

31、flink31=5 leaflink9 J=2leaf Link31=9leaf link31=2lealink3 J=5 leaflink3 J-lleaflink3=8 leaflink3 J=6leaflink31=8leaflinkQJ=8leafLink0=2lBafllnk(0)-3leaflink0=6leafLink0J=4leaflink01=8leaflinktl1=2leaflinkl=3 leaf linkLI 1-6 leaflinktl 1=4leafHnkElJ=8leaflinkCll-3lBaflink2-3leaflnk2=bloafllnk2-4leafl

32、inkE2=8leaflink21=3laafllnk2-7leaflinkW=3leaFlinktl=?leaflink2=2leaflinklL0=7 leaf link El 1=2H=3時FIFO的命中率為i,leftflink0J-0leaflinkr01=0帽相同leaflinkT01-0leaflink01=0 leaf llnkEG19 lflaflinkEOl leafLink0=2lBafllnkE)-3恫湘同leaflinkt0=3leaflinkr0-6leaflink0=4leaflinklBJ =8leaflinkEll-0leaFlinktl1=0laaflink

33、Cl1-0leaflinktl1=9leaflinkEll-8leaflinktlJ=2leaflink11 =3leaflinkLI1-GleaflinkElJ=6laaflinkCl1-4leaflinktl1=8leaflink1 =7laaflink2-flleaflinkr21=9lBafllnk2J-9leaflink2J=8lflafllnk2-2lBaflink21-3leaflnk2J=i6leflink2=4leaflinkt21=4lBafllnk2-8leaflink2J=7leaflink 2 =2leaflink3J-9leaflink31=8leaflink3-8

34、leaflink31=2leaflink3J=3leaflinkJJ=6leaflink31=4leaf llnkO 1-8leaflink3J=8leaflink3J-7leaflink3J=2leaFllnk31-9leaflinkT0=3 leaFlinkLl =5 leaflinkr2=1商相同:X =6,lrutl - adressGJ=5 ,flag- 1發(fā)現(xiàn)相同后,改變Flink=5 leaflinkL0J=3 leaf link1=1leaflink2= lBAflink(0J=l leaflinktlJ=9 leflinkt2=5馬湘同:X-8,lrutl adress8 J

35、=9 ,flag- 1發(fā)現(xiàn)相同后,leafl ink T41=9leaflinkIB1=1 leaflinkFl1=5 leaflink21-0leaflink31=?leaflink4J=Qleaflinkf0=5 leaflinktlJ=0 le*flink2J=9有相同:Xlru0 - dr#ss(1015 l*g- 1發(fā)現(xiàn)相同后,改變我link41=5 leaflinkLB)=0 leaflinkFl1=9 leaflink2=0 leaflinkf0=9leaflinktlJ=0 leaflink2J=5leaflink01=0leaflink1J=5leaflink2J=2leAf

36、link0-5leaflinkElJ-2 leflink(2=1有相同:X=14,lru31 = adress14)=8 lag- 1發(fā)現(xiàn)相同后改變leaflinkr41=8leafLink01=5 leaf link11=2 leaflink21=1發(fā)生管換w= 10M=507LRU的命中率為;33.3333K最佳淘汰:leaf link 13 J=5 leaflink 31=0leaflink3J=9 leaflink 31=0leaf link3 J=5leaflink(3=2leaflink3J=l leaflink3 J-8leaflink31=8a0=9 atll=8AE21-8

37、a3H2 at4Jl=3 at5=6 at=1 aC7=8 jd8】=3 a?=7aL101=2all9請輸入選擇算法( (0:最佳淘汰L:最近最少使用):0leaf link0=0 leaFlinktl3=0 leaflinkt21=9leaflink0=B leaflinktl1=9 leaflnk2=8有相同leaflink0=0 leaflinktl 1=9 leaflinj;2 1=8 leaflinhL0J=9 leaf link1 J=8leaflln21=2leaf llnkCI 1=0 leaflink41=2leafllnk43=0leaflinl4-2leaf link4

38、J=2leariink4J=l leaflink4J=8leaflink4 -6leaflink4J=0leaflink2=9n=4時FIFO的命中率為i 33.3333X實驗體會:通過這次實驗,我了解了采用頁式分配存儲管理方案,并對頁式分配存儲管理的兩個 算法最佳淘汰算法和最近最少使用頁淘汰算法有了更深入的了解,為之后的學(xué)習(xí)奠定了基 礎(chǔ)。計算機操作系統(tǒng)實驗四報告實驗四題目:文件操作與管理姓名: 張佳慧 學(xué)號:12122544實驗日期:2015.1實驗環(huán)境 :Microsoft Visual Studio實驗?zāi)康模弘S著社會信息量的極大增長, 要求計算機處理的信息與日俱增, 涉及到社會生活的各個

39、 方面。因此,文件管理是操作系統(tǒng)的一個極為重要的組成部分。 學(xué)生應(yīng)獨立地用高級語言編 寫和調(diào)試一個簡單的文件系統(tǒng), 模擬文件管理的工作過程。 從而對各種文件操作命令的實 質(zhì)內(nèi)容和執(zhí)行過程有比較深入的了解, 掌握它們的實施方法,加深理解課堂上講授過的知識。實驗內(nèi)容:1.要求:(1)實際一個n個用戶的文件系統(tǒng),每個用戶最多可保存m個文件。(2) 限制用戶在一次運行中只能打開I個文件。(3)系統(tǒng)應(yīng)能檢查打入命令的正確性,出錯要能顯示出錯原因。(4)對文件必須設(shè)置保護措施,如只能執(zhí)行,允許讀、允許寫等。在每次打開文件時 根據(jù)本次打開的要求,再次設(shè)置保護級別,即可有二級保護。(5)對文件的操作至少應(yīng)有下

40、述幾條命令:creat建立文件。delete刪除文件。open打開文件。close關(guān)閉文件。read讀文件。write寫文件。2.示例:(1)程序采用二級文件目錄,即設(shè)置了主文件目錄(MFD和用戶文件目錄(UFD)。前者應(yīng)包含文件主(即用戶)及他們的目錄區(qū)指針;后者應(yīng)給出每個文件主占有的文件目錄, 即文件名,保護碼,文件長度以及他們存放的位置等。另外為打開文件設(shè)置了運行文件 目錄(AFD,在文件打開時應(yīng)填入打開文件號,本次打開保護碼和讀寫指針等。3.算法與框圖(1)因系統(tǒng)小,文件目錄的檢索使用了簡單的線性搜索,而沒有采用Hash等有效算法。(2)文件保護簡單實用了三位保護碼,對應(yīng)于允許讀、允許

41、寫和運行執(zhí)行,如下所示:1 1 1允許寫允許讀允許執(zhí)行如對應(yīng)位為0,則不允許。實驗源碼:#in elude #inelude #in elude #in elude #in elude #in elude #in elude using n amespaee std;struet UFDint fn ame;int len;int procode3;ufd10;struet MFDint user;UFD p5;mfd10;int mai n()int x, n=10,flag1=1,flag2=1,flag3=1;if(flagl)for(i nt i=0;i10;i+)ufdi.f nam

42、e=i;int t=100+ra nd()%900; ufdi.le n=t;for(i nt j=0;j3;j+) eodej=ra nd()%2;sra nd(u nsig ned)time(NULL);bool f10;for(i nt i=0;i10;i+)mfdi.user=i; memset(f,0,sizeof f); for(i nt j=0;j5;j+) int t;dot=ra nd()%10;while(ft);ftl=1;mfdi.pj=ufdt;while( n-&flag2)cout x;if(x=10)couttry aga inen dl

43、;break;for(i nt j=0;j5;j+)coutmfdx.pj.f code2vve ndl; couti nput the command:e ndl;coutcreat 1; delete 2; ope n 3; bye 4; close 5; read 6; write 7 s;switch(s)case 1:if(flag3)cout輸入你要創(chuàng)建的文件的名字: mfdx.pO.fname;cout輸入你要創(chuàng)建的文件的長度: mfdx.p0.le n;cout輸入你要創(chuàng)建的文

44、件的權(quán)限:e ndl;for(int i=0;i3;i+)cinm codei;for(i nt j=0;j5;j+)coutmfdx.pj.f code2vve ndl; couti nput the command:e ndl;elsecout輸入你要創(chuàng)建的文件的名字: mfdx.pi ndex.f name;cout輸入你要創(chuàng)建的文件的長度: mfdxl.pi ndex l.len;mfd x.pj.le nmfd x.pj.le ncoutvv輸入你要創(chuàng)建的文件的權(quán)

45、限:e ndl;for(int i=0;i3;i+)cinm fdx.pi codei;for(i nt j=0;j5;j+)coutmfdx.pj.f code2vve ndl; couti nput the command:e ndl;break;case 2:flag3=0;coutvv輸入要刪除的文件: t;for(int i=0;i5;i+)if(mfdx.pi.fname=t)in dex=i;mfdx.pi.fname=O;mfdx .pi.le n=000; m

46、emset(code,0,sizeof(code);for(i nt j=0;j5;j+)coutmfdx.pj.f namevvvmfdx.pj.le code2vve ndl; couti nput the command:e ndl;break;case 3:coutvv輸入要打開的文件: file;for(int i=0;i5;i+)if(mfdx.pi.fname=file) if(code2=0)coutvv你沒有權(quán)限en

47、dl;else coutvv可以打開vvendl;coutvvi nput the comma nd:vve ndl;vvmfd x.pj.lenvvbreak;case 4:for(i nt j=0;j5;j+)coutmfdx.pj.f namevvmfdx.pje code2vve ndl; coutvgoodbyeve ndl;flag=O;flag2=0;flag 仁 0;break;case 5:flag=0;flag 仁 0;break;case 6:cout輸入要讀的文件: file

48、1;for(int i=0;i5;i+)if(mfdx.pi.fname=file1) if(code1=0)cout你沒有權(quán)限endl;else cout可以讀endl;couti nput the comma nd:e ndl;break;case 7:cout輸入要寫的文件: file2;for(int i=0;i5;i+)if(mfdx.pi.fname=file2)if(code0=0)cout你沒有權(quán)限endl;else cout可以寫endl;couti nput the comma nd:e ndl; break;return 0;實

49、驗結(jié)果:input user1你沒有權(quán)限inpuc the command:闇入要打開的文件: 論以打開input the conmand:勵入要讀的文件:0協(xié)沒有杈限input the command:制入要讀的文件: 節(jié)以讀input the conkmand:7輸入要寫的文件:6的沒有權(quán)限00input the conmand: ereAt1;delete 2:爲(wèi)入要刪|除的文件:2open 3;hue 4;close 5;re ad b;write 7570s1812y14乎991310001000in put the cofTimiandl-藉入你要創(chuàng)建的文件的名字:1輸入你要創(chuàng)建的

50、文件的長度;100羸入你要創(chuàng)建的文件的權(quán)限;1 1991001918 110141 100the GoviiiTiandJxn put粘入要打開的文件;input the contmand:7輸入要寫的文件. 和以寫input the conmand:45 991 BB17 918 1100 141 1036 392 0101 100 111goodbe實驗體會:本次實驗主要是模擬了一下文件系統(tǒng),文件是我們平時接觸最多也是最廣的形式,即便是不會計算機的人們也可以通過這種操作文件來很方便地完成操作,而本次實驗讓我了解到了文件系統(tǒng)的內(nèi)部實現(xiàn),雖然僅僅是通過C+模擬的,但還是讓我對它的原理有了更好的

51、理解,也是對我們上課的內(nèi)容的一個鞏固。計算機操作系統(tǒng)實驗六報告實驗六題目:FAT文件系統(tǒng)實驗姓名: 張佳慧 學(xué)號:12122544實驗日期:2015.1實驗環(huán)境:win95虛擬機實驗?zāi)康模簭南到y(tǒng)分析的角度出發(fā),了解FAT文件系統(tǒng)的組織結(jié)構(gòu)和文件的存儲方式。進(jìn)一步理解操作系統(tǒng)文件管理的基本思想。實驗內(nèi)容:1.了解3吋軟盤的FAT文件系統(tǒng)結(jié)構(gòu)。2察看文件分配表的簇號鏈。3察看文件目錄表中文件目錄結(jié)構(gòu)。4了解用簇號鏈映射的文件鏈?zhǔn)酱鎯Y(jié)構(gòu)。5分析目錄文件的組成。實驗步驟:1.進(jìn)入DEBUG環(huán)境,裝入FAT文件系統(tǒng)結(jié)構(gòu)。執(zhí)行命令:L 0 0 0 21說明:將0號驅(qū)動器中,邏輯扇區(qū)號從0開始的共21H個

52、扇區(qū)讀入內(nèi) 存,放在DS:0000為起始的地址中。2.觀察1.44M軟盤中FAT12文件系統(tǒng)結(jié)構(gòu)。執(zhí)行命令:D 0000連續(xù)執(zhí)行D命令,每次顯示128個字節(jié),可見文件系統(tǒng)結(jié)構(gòu)。FAT文件系統(tǒng)結(jié)構(gòu)如下:邏輯扇區(qū)號EM*FAT 1“FAT衛(wèi)F呼VK-iAhlfit.-其中:Boot引導(dǎo)程序FAT文件分配表FDT文件目錄表1.44M軟盤邏輯扇號與物理扇區(qū)的對應(yīng)關(guān)系邏輯扇號0 #0道0面1扇邏輯扇號1 H 11H 0道0面2 18扇邏輯扇號12 H 23H 0道1面1扇18扇c vC: TINDDTSfyst e32 ca,d. exe “ debue軟盤有兩面,每面80個磁道,每個磁道18個扇區(qū),每

53、個扇區(qū)512個字節(jié),所以軟盤的容量是2*80*18*512 = 1474560, 1474560/1024/1024大約為1.44M。3分析文件分配表結(jié)構(gòu),了解用簇鏈映射的文件的鏈?zhǔn)酱鎯Y(jié)構(gòu)。執(zhí)行命令:D 200思考: 上面屏幕顯示首簇號為003的文件共包括幾個扇區(qū)?它分布在哪幾個物理邏輯扇號24 H 35H1道0面1扇18扇口1刈-L 0 0 0 21卜D 0000140F:Q006 EBE0F:Q01002: MMZM MH10F:003053140F:0046 FA 140F:005B IE U0F:e060F3 1WF:B070 F9 T140F:80806610F:009Q46k0F

54、:BBftA0314BF:0B08B1.RAMDSKHTp尋* B In -9 B B B. .RAHDISKNT FAT12 . *3x-v UUN-i C:IITO0ISsyste*32c*d, ext - debu140F:0Enfi込0F:0EBI3140F:0EC140F:0ED0L4(JF:0EE010F:0EFBkD 200 k羽F:毗靦140F:02iB E0F:0220 14BF:BZ30 140F:0240M0F:025R b.4BF:02G0 S0F:027B FD 2600h.4BF:260014BF:261R14BF:262010F:263B140F:264Q148F

55、:2650E40F:266BE0F:26703P胸湘00旳C00121C0陽41-J-w-isn-M000000F0702704000000FD02D04D0F0EDD0FPI0朗OtJ盹H5E0123EB麗43跑FFG1魄444(d盹FF090290401403400F04900FFF0FFD030胸M0靦012500陽45靦FFFF00317E朋FFFF00-0000-0000-0000-000U-0000-0060-0001-111B-C060-0203-313B-C060-0405-51FF-FFFF-FF44-0000-2E31-3050-5DFF-FFFF-PF0000000000

56、007017001D03D05CS1!M0302304393193901F03F0505025045FFO/000FF00F0F000F00F0B000F0F00740FF_MtSi_u-M000000000000B02B34B0M-6_M264600000-0扇區(qū)上?答:首簇號為003的文件共包括2個扇區(qū),它分布在0道0面2、3扇。4.觀察1.44M軟盤中文件目錄表FDT以及文件目錄結(jié)構(gòu)執(zhí)行命令:L 0 0 0 21說明:將邏輯扇區(qū)0H開始的共21H個物理扇區(qū)裝入DS:0000H起始的內(nèi)存。執(zhí)行命令:D 2600說明:顯示從2600H地址開始的FDT文件表。思考:計算1.44M的軟盤根目錄最

57、多可以容納多少文件?答:1.44MB軟盤的文件目錄表FDT共14個扇區(qū), 每個文件的目錄登記項占用32個字節(jié),用作目錄的一個扇區(qū)(512字節(jié))最多只能裝入512/32=16個文件。因此,1.44MB軟盤的根目錄下最多可建文件或子目錄224個。2上圖屏幕顯示的文件的目錄項中標(biāo)示該文件的首簇號在何處?該文件是什么屬性?答:首簇號在第2行的1A1B字節(jié)處,首簇號為002,該文件屬于歸檔文件。 書上顯示的文件首簇號在第6行的1A1B字節(jié)處,首簇號為091,屬歸檔文件。3書上面的屏幕顯示第12行目錄項表示的是什么項目?答:第12目錄項表示卷標(biāo)。5.觀察1.44M軟盤中文件目錄表的長文件名目錄結(jié)構(gòu)思考:書

58、上面屏幕顯示的23行是什么目錄項?答:長名的第一項,也是最后一項。若有一個文件名共長34個字符,要占多少目錄項?答:四個目錄項,三個長目錄項和一個短目錄項。6.自己動手做:觀察測試軟盤的FDT區(qū),找到名為BAK的文件目錄。該文件是什么類型的文件?文件放在磁盤的哪個位置?占用幾個存儲單位?調(diào)出其內(nèi)容看看。該文件為BAK.txt,屬于歸檔文件。察看其首簇號為002,對應(yīng)了數(shù)據(jù)區(qū)21H邏輯扇區(qū)。執(zhí)行:L 0 0 0 21D 260040F:023H0F:02400F:B25S40F:02604QF:0270D 2600 40F:260010F:266E1HBF:2t7fi -L80QB0-D8000

59、 140F:8000 140F:8010140F:8030140F:80410F:805S23E0Q343E0Q&FF61盹444000FF20402H40414041034500ITFF-FFFFFF-FFFF44-006?MW-2E0031-302650-5D40FF-FF FFFF-FF FF.PHQ317E86FFFF25&0 0203-313B-C060-04WS-51debug:2640ci C: VJNlM)VSf yst e32 cd. exe M.OQ.S&Wil?. -$QWDATft TAG .-ttQ &.,.R+.-x-.DfiTAl

60、CAB八*TQ-fiMDlS10 .-3PJP- . .Pit?.B0.FF00404020270370器2:|32021022FB4 F02A04029040F04900202020302D84BSF0 EDDSP0FQ4450F21C2424444402704EDED4D4D0F20100F85F5B5D2F00001B1B242442420D0D4232盤505554S:B04B0260-46FF0000FFFF0050FF1010i01050呂050502504-5030350030303020202003F00FLb_w_foIS-b-_h-294003494B0F05000P0F03000F0000000000000714000010009 SI-M-二1101020202304303E

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論