主存儲(chǔ)器分配和回收參考_第1頁(yè)
主存儲(chǔ)器分配和回收參考_第2頁(yè)
主存儲(chǔ)器分配和回收參考_第3頁(yè)
主存儲(chǔ)器分配和回收參考_第4頁(yè)
主存儲(chǔ)器分配和回收參考_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)四 主存儲(chǔ)器空間的分配和回收038064132 網(wǎng)絡(luò)工程 林劍鋒一、實(shí)驗(yàn)內(nèi)容主存儲(chǔ)器空間的分配和回收。二、實(shí)驗(yàn)?zāi)康囊粋€(gè)好的計(jì)算機(jī)系統(tǒng)不僅要有一個(gè)足夠容量的、存取速度高的、穩(wěn)定可靠的主存儲(chǔ)器,而且要能合理地分配和使用這些存儲(chǔ)空間。當(dāng)用戶提出申請(qǐng)存儲(chǔ)器空間時(shí),存儲(chǔ)管理必須根據(jù)申請(qǐng)者的要求,按一定的策略分析主存空間的使用情況,找出足夠的空閑區(qū)域分配給申請(qǐng)者。當(dāng)作業(yè)撤離或主動(dòng)歸還主存資源時(shí),則存儲(chǔ)管理要收回作業(yè)占用的主存空間或歸還部分主存空間。主存的分配和回收的實(shí)現(xiàn)雖與主存儲(chǔ)器的管理方式有關(guān)的,通過(guò)本實(shí)習(xí)幫助學(xué)生理解在不同的存儲(chǔ)管理方式下應(yīng)怎樣實(shí)現(xiàn)主存空間的分配和回收。三、實(shí)驗(yàn)題目在分頁(yè)式管理方式

2、下采用位示圖來(lái)表示主存分配情況,實(shí)現(xiàn)主存空間的分配和回收。(1) 分頁(yè)式存儲(chǔ)器把主存分成大小相等的若干塊,作業(yè)的信息也按塊的大小分頁(yè),作業(yè)裝入主存時(shí)可把作業(yè)的信息按頁(yè)分散存放在主存的空閑塊中,為了說(shuō)明主存中哪些塊已經(jīng)被占用,哪些塊是尚未分配的空閑塊,可用一張位示圖來(lái)指出。位示圖可由若干存儲(chǔ)單元來(lái)構(gòu)成,其中每一位與一個(gè)物理塊對(duì)應(yīng),用0/1表示對(duì)應(yīng)塊為空閑/已占用。(2) 假設(shè)某系統(tǒng)的主存被分成大小相等的64塊,則位示圖可用8個(gè)字節(jié)來(lái)構(gòu)成,另用一單元記錄當(dāng)前空閑塊數(shù)。如果已有第0,1,4,5,6,9,11,13,24,31,共10個(gè)主存塊被占用了,那么位示圖情況如下:字 節(jié) 位數(shù)號(hào)01234567

3、 011001110 101010100 200000000 310000001 400000000 500000000 600000000 700000000(3) 當(dāng)要裝入一個(gè)作業(yè)時(shí),根據(jù)作業(yè)對(duì)主存的需要量,先查當(dāng)前空閑塊數(shù)是否能滿足作業(yè)要求,若不能滿足則輸出分配不成功。若能滿足,則查位示圖,找出為“0”的一些位,置上占用標(biāo)志“1”,從“當(dāng)前空閑塊數(shù)”中減去本次占用塊數(shù)。按找到的計(jì)算出對(duì)應(yīng)的塊號(hào),其計(jì)算公式為: 塊號(hào)= j´8+i其中,j表示找到的是第n個(gè)字節(jié),I表示對(duì)應(yīng)的是第n位。根據(jù)分配給作業(yè)的塊號(hào),為作業(yè)建立一張頁(yè)表,頁(yè)表格式:頁(yè) 號(hào)塊 號(hào)012MM(4) 當(dāng)一個(gè)作業(yè)執(zhí)行結(jié)

4、束,歸還主存時(shí),根據(jù)該作業(yè)的頁(yè)表可以知道應(yīng)歸還的塊號(hào),由塊號(hào)可計(jì)算出在位示圖中的對(duì)應(yīng)位置,把對(duì)應(yīng)位的占用標(biāo)志清成0,表示對(duì)應(yīng)的塊已成為空閑塊。歸還的塊數(shù)加入到當(dāng)前空閑塊數(shù)中。由塊號(hào)計(jì)算在位示圖中的位置的公式如下:字節(jié)號(hào) j=塊號(hào)/8 ( 表示取整)位數(shù) i=塊號(hào)/8 ( 表示取余)(5) 設(shè)計(jì)實(shí)現(xiàn)主存分配和回收的程序。假定位示圖的初始狀態(tài)如(2)所述,現(xiàn)有一信息量為5頁(yè)的作業(yè)要裝入,運(yùn)行你所設(shè)計(jì)的分配程序,為作業(yè)分配主存且建立頁(yè)表(格式如(3)所述)。然后假定有另一作業(yè)執(zhí)行結(jié)束,它占用的塊號(hào)為第4,5,6和31塊,運(yùn)行你所設(shè)計(jì)的回收程序,收回作業(yè)歸還的主存塊。要求能顯示和打印分配或回收前后的位

5、示圖和當(dāng)前空閑塊數(shù),對(duì)完成一次分配后還要顯示或打印為作業(yè)建立的頁(yè)表。四、程序清單(JAVA2SE 1.4.2)/* *主存儲(chǔ)器的空間分配和回收 * author (038064132,網(wǎng)絡(luò)工程,林劍鋒) */import java.util.*;import java.io.*;class Node /定義節(jié)點(diǎn) int page=new int100; /定義頁(yè)面int pages; public class OSint os=new int88;int rom=64;LinkedList opp=new LinkedList();public OS()/初始化內(nèi)存 os00=0;os01=0

6、;os02=0;os03=0;os04=0;os05=0;os06=0;os07=0; os10=0;os11=0;os12=0;os13=0;os14=0;os15=0;os16=0;os17=0; os20=0;os21=0;os22=0;os23=0;os24=0;os25=0;os26=0;os27=0; os30=0;os31=0;os32=0;os33=0;os34=0;os35=0;os36=0;os37=0; os40=0;os41=0;os42=0;os43=0;os44=0;os45=0;os46=0;os47=0; os50=0;os51=0;os52=0;os53=0;

7、os54=0;os55=0;os56=0;os57=0; os60=0;os61=0;os62=0;os63=0;os64=0;os65=0;os66=0;os67=0; os70=0;os71=0;os72=0;os73=0;os74=0;os75=0;os76=0;os77=0;/*public void showstate()/顯示內(nèi)存狀態(tài) int i,j; System.out.println("內(nèi)存狀態(tài):"); for(i=0;i<=7;i+) for(j=0;j<=7;j+) System.out.print(osij+" ");

8、 System.out.println(); System.out.println("剩余內(nèi)存空間="+rom); System.out.println(); /* public int inrom(int r,Node node)/嘗試裝入作業(yè) int i,j; int k=0; if(r>rom) System.out.println("內(nèi)存不足,不能裝入!"); return 0; else System.out.println("裝入"+r+"個(gè)頁(yè)面的作業(yè)"); rom=rom-r; node.pag

9、es=r; for(i=0;i<=7;i+) for(j=0;j<=7;j+) if(osij=0)&&(r!=0) osij=1; r-; node.pagek=i*8+j; /System.out.println(node.pagek); k+; /showstate(); opp.add(node); showWork(node); return 0; /* public void showWork(Node node)/顯示作業(yè)頁(yè)表 int i=0; while(i<node.pages) System.out.println("頁(yè)號(hào)&quo

10、t;+i+"存放在塊:"+node.pagei); i+; System.out.println(); /* public void delete(Node node)/撤除作業(yè)釋放內(nèi)存 int i,j; int k; /System.out.println("一4頁(yè)面作業(yè)運(yùn)行結(jié)束."); System.out.println("頁(yè)表如下:"); showWork(node); System.out.println("釋放該作業(yè)所占內(nèi)存."); for(k=0;k<node.pages;k+) i=(node

11、.pagek)/8; j=(node.pagek)%8; osij=0; rom=rom+node.pages; /showstate(); /* int read() int n=0; try /DataInputStream n=new DataInputStream(n);n=System.in.read();/System.out.println(n); catch(IOException e) System.out.println("錯(cuò)誤"); return n; */*/程序入口public static void main(String args ) int

12、n=0; char x='y' OS os1=new OS(); BufferedReader input=new BufferedReader(new InputStreamReader(System.in); String inputString; L:while(x='y')|(x='Y') /System.out.println(n);System.out.println("請(qǐng)選擇操作:");System.out.println("1:顯示當(dāng)前內(nèi)存狀態(tài)");System.out.println(&q

13、uot;2:裝入作業(yè)");System.out.println("3:結(jié)束作業(yè)");System.out.println("4:結(jié)束程序");tryinputString=input.readLine(); n=Integer.parseInt(inputString); catch(IOException e) if(n=1) os1.showstate(); System.out.println("任務(wù)執(zhí)行完畢"); /continue l1; if(n=2) int y=(int)(Math.random()*9)+1

14、); Node os=new Node(); os1.inrom(y,os); System.out.println("任務(wù)執(zhí)行完畢"); if(n=3) int len=os1.opp.size(); if(len=0) System.out.println("目前沒(méi)有作業(yè)運(yùn)行."); continue L; int z=0; System.out.println("當(dāng)前運(yùn)行作業(yè)數(shù):"+len); System.out.print("請(qǐng)選擇要結(jié)束的作業(yè):"); try inputString=input.readLine(); z=Integer.parseInt(inputString); catch(IOException e) Node dp=(Node)(os1.opp.get(z-1); os1.delete(dp); os1.opp.remove(dp); System.out.println("任務(wù)執(zhí)行完畢"); if(n=4) break; System.out.print("是否

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論