版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、華址電力*孑課程設(shè)計報告(2016-2017年度第二學(xué)期)課程名稱:操作系統(tǒng)實(shí)驗(yàn)課設(shè)題目:用位示圖管理磁盤空間的分配與回收 院 系:控制與計算機(jī)工程學(xué)院班級:信安1401姓名:黃競昶指導(dǎo)教師:賈靜平設(shè)計周數(shù):一周成 績:2015、需求分析要求打印或顯示程序運(yùn)行前和運(yùn)行后的位示圖,以及分配和回收磁盤的物理地址過程。(1)假定現(xiàn)有一個磁盤組,共40個柱面。每個柱面4個磁道,每個磁 道又劃分成4個物理記錄。磁盤的空間使用情況用位示圖表示。位示圖用若干個字構(gòu)成,每一位對應(yīng)一個磁盤塊。1表示占用,0表示空閑。為了簡單, 假定字長為16位,其位示圖如圖9 1所示。系統(tǒng)設(shè)一個變量S,記錄磁盤 的空閑塊個數(shù)。
2、位0123456789101112131415字011111101001111101239 .圖9 1 位示圖(2) 申請一個磁盤塊時,由磁盤塊分配程序查位示圖,找出一個為0 的位,并計算磁盤的物理地址(即求出柱面號、磁道號(也即磁頭號)和扇區(qū) 號)。由位示圖計算磁盤的相對塊號的公式如下:相對塊號一字號x 16+位號之后再將相對塊號轉(zhuǎn)換成磁盤的物理地址:由于一個柱面包含的扇區(qū)數(shù)二每柱面的磁道數(shù)x每磁道的扇區(qū)數(shù)二4X4= 16,故柱面號=相對塊號/ 16的商,即柱面號=字號磁道號=(相對塊號/ 16的余數(shù))/4的商,即(位號/ 4)的商 物理塊號=(相對塊號/ 16的余數(shù))/ 4的余數(shù),即(位號
3、/ 4)的余數(shù)(3)當(dāng)釋放一個相對物理塊時,運(yùn)行回收程序,計算該塊在位示圖中 的位置,再把相應(yīng)位置0。計算公式如下:先由磁盤地址計算相對塊號:相對塊號=柱面號X 16+磁道號X 4+物理塊號再計算字號和位號:字號=相對塊號/ 16的商,也即字號=柱面號 位號=磁道號x物理塊數(shù)/每磁道 +物理塊號(4)按照用戶要求,申請分配一系列磁盤塊,運(yùn)行分配程序,完成分 配。然后將分配的相對塊號返回用戶,并將相對塊號轉(zhuǎn)換成磁盤絕對地址, 再顯示系統(tǒng)各表和用戶已分配的情況。(5)設(shè)計一個回收算法,將上述已分配給用戶的各盤塊釋放。并顯示 系統(tǒng)各表?;厥账惴驁D如圖5所示。二、整體功能及設(shè)計程序整體主要有四個功能
4、模塊,分別是:初始化、分配、單獨(dú)回收以及全部 回收。當(dāng)點(diǎn)擊相應(yīng)按鈕時實(shí)現(xiàn)其功能。程序設(shè)計了三個方法,分別是初始化init、分配算法dist、單獨(dú)回收rec、 全部回收allrec。磁盤空間分配框圖如圖1所示,磁盤空間回收框圖如圖2所示.位置示圖相應(yīng)位為1返回 L圖2磁盤空間回收框圖圖1 磁盤空間分配框圖三、編程實(shí)現(xiàn)import java.awt.*;import java.awt.eve nt.*;import javax.sw in g.*;public class bitmap exte nds JFrame impleme nts Actio nListe nerJTable table
5、;JScrollPa ne sp1,sp2;JTextArea ta;JLabel l1,l2,l3,l4,l5;JTextField tf1,tf2,tf3;JButton b1,b2,b3,b4;JPanel p1,p2,p3,p4,p5,p6,p7;String data ;String colum;int sp;/ 存放(相對)可用塊int used;/ 存放(相對)已用塊數(shù)int A,H;/S 為可用塊數(shù), T 為已用塊數(shù)bitmap()super( “位示圖管理磁盤空間的分配與回收”系統(tǒng)模擬 );data = new String4016;colum = new String16;
6、sp = new int640;used = new int640;A = 0;H = 0;for(int i=0; i16; i+)columi=+i;table = new JTable(data,colum);sp1 = new JScrollPane(table);tf1 = new JTextField(6);tf2 = new JTextField(6);tf3 = new JTextField(6);ta = new JTextArea(10,20);sp2 = new JScrollPane(ta);p1 = new JPanel(new BorderLayout(); p2
7、= new JPanel(new FlowLayout();p3 = new JPanel(new BorderLayout();p4 = new JPanel(new FlowLayout();p5 = new JPanel(new FlowLayout();p6 = new JPanel(new BorderLayout();p7 = new JPanel(new FlowLayout();l1 = new JLabel( 位示圖如下: ); b1 = new JButton( 位示圖初始化 ); b1.addActionListener(this);b2 = new JButton( 回
8、收全部磁盤塊 ); b2.addActionListener(this);p2.add(b1);p2.add(b2); p1.add(l1,North);p1.add(sp1,Center);運(yùn)行狀況 : ); 空閑塊數(shù)量: );p1.add(p2,South);l2 = new JLabel(l5 = new JLabel( p7.add(l5);p7.add(tf3); p3.add(l2,North); p3.add(p7,South); p3.add(sp2,Center);l3 = new JLabel(l4 = new JLabel(請輸入需要分配的塊數(shù): );請輸入要回收的盤塊號
9、: );b3 = new JButton(確認(rèn)分配 );b3.addActionListener(this); b4 = new JButton(確認(rèn)回收 );b4.addActionListener(this);p4.add(l3);p4.add(tf1);p4.add(b3);p5.add(l4);p5.add(tf2);p5.add(b4);p6.add(p4,North);p6.add(p5,Center);this.setLayout(new BorderLayout();this.add(p1,West);this.add(p3,Center);this.add(p6,South)
10、;this.pack();this.setVisible(true);public void init()/ 功能:初始化int k;for(int i=0;i40;i+)for(int j=0;j16;j+)k = (int)(Math.random()*2);/0 與 1 兩數(shù)中進(jìn)行隨機(jī) dataij=+k;table.setValueAt(+k,i,j);public void getavail()/ 功能:得出可用塊號與不可用塊號的集合int a;int b=0,c=0;A = 0;H = 0;for(int i=0;i40;i+)for(i nt j=0;j16;j+)if(data
11、ij.equals(O)a = i*16+j;得到相對塊號spb = a;寫入可用塊號集合A+;b+;elsea = i*16+j;得到相對塊號usedc = a;H+;c+;寫入不可用塊號集合public void allrec()全部回收ta.setText();Stri ng str=回收結(jié)果:譜 n;for(int i=0;iH;i+)int a = usedi/16;int b = usedi%16/4;int c = usedi%16%4;位示圖相應(yīng)位置置零dataa4*b+c=0;table.setValueAt(0,a,4*b+c);/str+=柱面 +a+ 磁道 +b+ 扇區(qū)
12、 +c+ 盤塊號:+usedi+n;usedi=0;/ 位示圖相應(yīng)位置置零for(int i=0;i40;i+)for(int j=0;j16;j+)table.setValueAt(0,i,j);H=0;getavail();ta.append(str);public static void main(String args) new bitmap();public void actionPerformed(ActionEvent e) if(e.getSource()=b1)init();getavail();String str6=+A;ta.append( 初始化完成 !n);tf3.
13、setText(str6);if(e.getSource()=b2)if(A=640)ta.setText();String str7=沒有資源可回收”ta.appe nd(str7);elseallrec();Stri ng str8=+A;tf3.setText(str8);if(e.getSource()=b3)int n;System.out.pri ntln (tf1.getText();n=I nteger.parsel nt(tf1.getText();tf1.setText();if(A n)ta.setText();String str仁空閑塊不足n;/ta.appe nd(
14、str1);空閑塊不足,提示JOpti onPan e.showMessageDialog( null,JOpti onPan e.PLAIN_MESSAGE);return;elseint j,k;ta.setText();Stri ng str=分配結(jié)果n;int x=H;for(int i=0;in;i+)j = spi/16;k = spi-j*16;usedx+i=spi;/ 可用塊相對地址轉(zhuǎn)為已用塊相對地址 datajk=1;table.setValueAt(1,j,k);/ 將位示圖對應(yīng)位置寫 1 str+= 柱面 +spi/16+磁道 +(spi%16)/4+ 扇區(qū)+(spi%
15、16)%4+盤塊號:+spi+ n;A-;H+;for(int t=0;tA;t+)spt=spt+n;/刪除可用塊中的已用塊ta.append(str);String str2=+A;tf3.setText(str2);tf1.setText();if(e.getSource()=b4)int num;num=Integer.parseInt(tf2.getText();ta.setText();String str=;int j,k = 0;int a=num/16;/ 柱面int b=num%16/4;/ 磁道int c=num%16%4; /扇區(qū)if(dataa4*b+c.equals
16、(0)JOptionPane.showMessageDialog(null, 不可回收空 閑塊,提示,JOptionPane.PLAIN_MESSAGE);/tf2.setText( );return;elsedataa4*b+c=0;table.setValueAt(0,a,4*b+c);str+=柱面+a+磁道+b+扇區(qū)+c+盤快號:+num+n;A+;H-;for(int i=0;iH;i+)if(usedi=num)k=i;break;for( j=k;j00a1000010110D1000110010010D001a11斗01011011r0111010101110000110D0D
17、111(flD1dV=101110Q111110111to-1Q0010010010111廠0斗D1000011100010Q111010001Q011Q100r00001110Q111D1000Q1000010Q01*001Q0110(J00110010100110111VQD011010111I1111101110Q00110101011011|101001101100Q1010300010110101110*100111101DV0010曠1001a100TTT01s-011100110D001100a1000O0回Xk全昭啟夸駅塊鞫蟲:295誥箱j入棗霧劭Rift)塊樹:1EftiA付
18、陽謁輸入要賊蝕塊號:確 iAEWl圖6回收的提示信息當(dāng)空閑塊不足時,會彈出提示信息,如圖7所示。=EU |壯砒和下:iS埶嚳喪1)州也皿:猛行啊:乍閑塊和粗=口 1府A幻散禍脫畫I呻收的怛諜料:袒卜馳Ll 2*131圖7提示信息單擊“全部回收”按鈕,所有盤塊在位示圖上位置置“0”,表示已經(jīng)回收,如圖 8所示單擊“確認(rèn)回收”,若該塊已經(jīng)處于回收狀態(tài),則彈出對話框進(jìn)行提醒,如圖9所示II禹臨入事冬分山的I擔(dān)fi:012 | 34Fw60Aw111213ST15110001101011a1D0斗|1中11ra111111110 001100D-l1 00(1Q0010100D00斗01011100000t1101d111100a0?11占111D0兀110-1D1n0100101111a0110001i01申11D101101:0010001000廠1011000Q1i1i0aQa00I11110QQQ101DQc11111111D01101
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度木材行業(yè)市場調(diào)研與營銷策劃合同4篇
- 2025年企業(yè)投資貸款合同
- 2025年家具家電購買合同
- 2025年分期付款汽車銷售合同
- 2025年天然氣輸氣管道合作協(xié)議
- 2025版住宅小區(qū)水電暖消防系統(tǒng)改造與節(jié)能評估服務(wù)合同3篇
- 2025年健身健康檢測合同
- 2025年二手房合同樣本
- 二零二五至二零二五年度通信設(shè)備采購合同2篇
- 2025版屋面防水勞務(wù)分包合同(含防水檢測服務(wù))3篇
- 獅子王影視鑒賞
- 一年級數(shù)學(xué)加減法口算題每日一練(25套打印版)
- 2024年甘肅省武威市、嘉峪關(guān)市、臨夏州中考英語真題
- DL-T573-2021電力變壓器檢修導(dǎo)則
- 繪本《圖書館獅子》原文
- 安全使用公共WiFi網(wǎng)絡(luò)的方法
- 2023年管理學(xué)原理考試題庫附答案
- 【可行性報告】2023年電動自行車相關(guān)項目可行性研究報告
- 歐洲食品與飲料行業(yè)數(shù)據(jù)與趨勢
- 放療科室規(guī)章制度(二篇)
- 中高職貫通培養(yǎng)三二分段(中職階段)新能源汽車檢測與維修專業(yè)課程體系
評論
0/150
提交評論