




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計報告(2016-2017年度第二學期)課程名稱:操作系統實驗課設題目:用位示圖管理磁盤空間的分配與回收院系:控制與計算機工程學院班級:信安1401姓名:黃竟昶指導教師:賈靜平設計周數:一周成績:2015、需求分析要求打印或顯示程序運行前和運行后的位示圖,以及分配和回收磁盤的物理地址過程。(1)假定現有一個磁盤組,共40個柱面。每個柱面4個磁道,每個磁道又劃分成4個物理記錄。磁盤的空間使用情況用位示圖表示。位示圖用若干個字構成,每一位對應一個磁盤塊。1表示占用,0表示空閑。為了簡單,假定字長為16位,其位示圖如圖9-1所示。系統設一個變量S,記錄磁盤的空閑塊個數。位01234567891
2、01112131415字0111111010011111012.39圖91位小圖(2)申請一個磁盤塊時,由磁盤塊分配程序查位示圖,找出一個為0的位,并計算磁盤的物理地址(即求出柱面號、磁道號(也即磁頭號)和扇區號)。由位示圖計算磁盤的相對塊號的公式如下:相對塊號一字號x16+位號之后再將相對塊號轉換成磁盤的物理地址:由于一個柱面包含的扇區數=每柱面的磁道數x每磁道的扇區數=4x4=16,故柱面號=相對塊號/16的商,即柱面號=字號磁道號=(相對塊號/16的余數)/4的商,即(位號/4)的商物理塊號=(相對塊號/16的余數)/4的余數,即(位號/4)的余數(3)當釋放一個相對物理塊時,運行回收程
3、序,計算該塊在位示圖中的位置,再把相應位置00計算公式如下:先由磁盤地址計算相對塊號:相對塊號=柱面號X16+磁道號X4+物理塊號再計算字號和位號:字號=相對塊號/16的商,也即字號=柱面號位號=磁道號x物理塊數/每磁道+物理塊號(4)按照用戶要求,申請分配一系列磁盤塊,運行分配程序,完成分配。然后將分配的相對塊號返回用戶,并將相對塊號轉換成磁盤絕對地址,再顯示系統各表和用戶已分配的情況。(5)設計一個回收算法,將上述已分配給用戶的各盤塊釋放。并顯示系統各表。回收算法框圖如圖5所示。二、整體功能及設計程序整體主要有四個功能模塊,分別是:初始化、分配、單獨回收以及全部回收。當點擊相應按鈕時實現其
4、功能。程序設計了三個方法,分別是初始化init、分配算法dist、單獨回收rec、全部回收allrec磁盤空間分配框圖如圖1所示,磁盤空間回收框圖如圖2所示.圖1磁盤空間分配框圖圖2磁盤空間回收框圖三、編程實現importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassbitmapextendsJFrameimplementsActionListenerJTabletable;JScrollPanesp1,sp2;JTextAreata;JLabel11,12,13,14,15;JTextFieldtf1,tf2
5、,tf3;JButtonb1,b2,b3,b4;JPanelp1,p2,p3,p4,p5,p6,p7;Stringdata;Stringcolum口;intsp口;存放(相對)可用塊intused口;存放(相對)已用塊數intA,H;/S為可用塊數,T為已用塊數bitmap()super("“位示圖管理磁盤空間的分配與回收”系統模擬");data=newString4016;colum=newString16;sp=newint640;used=newint640;A=0;H=0;for(inti=0;i<16;i+)columi=""+i;tab
6、le=newJTable(data,colum);sp1=newJScrollPane(table);tf1=newJTextField(6);tf2=newJTextField(6);tf3=newJTextField(6);ta=newJTextArea(10,20);sp2=newJScrollPane(ta);pl=newJPanel(newBorderLayout();p2=newJPanel(newFlowLayout();p3=newJPanel(newBorderLayout();p4=newJPanel(newFlowLayout();p5=newJPanel(newFlow
7、Layout();p6=newJPanel(newBorderLayout();p7=newJPanel(newFlowLayout();l1=newJLabel("位示圖如下:");b1=newJButton("位示圖初始化");b1.addActionListener(this);");b2=newJButton("b2.addActionListener(this);p2.add(b1);p2.add(b2);p1.add(l1,"North");p1.add(sp1,"Center");
8、p1.add(p2,"South");l2=newJLabel("運行狀況:");l5=newJLabel("空閑塊數量:");p7.add(l5);p7.add(tf3);p3.add(l2,"North");p3.add(p7,"South");p3.add(sp2,"Center");l3=newJLabel("請輸入需要分配的塊數:II);l4=newJLabel("請輸入要回收的盤塊號:II);b3=newJButton("確認分配&q
9、uot;);b3.addActionListener(this);b4=newJButton(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(newBorderLayout();this.add(p1,"West");this.add(p3,"Center");this
10、.add(p6,"South");this.pack();this.setVisible(true);publicvoidinit()/功能:初始化intk;for(inti=0;i<40;i+)for(intj=0;j<16;j+)k=(int)(Math.random()*2);/0與1兩數中進行隨機dataij=""+k;table.setValueAt(""+k,i,j);publicvoidgetavail()/功能:得出可用塊號與不可用塊號的集合inta;intb=0,c=0;A=0;H=0;for(inti=
11、0;i<40;i+)for(intj=0;j<16;j+)(if(dataij.equals("0")(a=i*16+j;/得到相對塊號spb=a;/寫入可用塊號集合A+;b+;else(a=i*16+j;/得到相對塊號usedc=a;H+;c+;/寫入不可用塊號集合publicvoidallrec()/全部回收(ta.setText("");Stringstr="回收結果:n"for(inti=0;i<H;i+)(inta=usedi/16;intb=usedi%16/4;intc=usedi%16%4;dataa
12、4*b+c="0"table.setValueAt("0",a,4*b+c);位示圖相應位置置零str+="柱面"+a+"磁道"+b+"扇區"+c+"盤塊號:"+usedi+"n"usedi=0;/位示圖相應位置置零for(inti=0;i<40;i+)for(intj=0;j<16;j+)table.setValueAt("0",i,j);H=0;getavail();ta.append(str);publicstatic
13、voidmain(Stringargs)newbitmap();publicvoidactionPerformed(ActionEvente)if(e.getSource()=b1)init();getavail();Stringstr6=""+A;ta.append("初始化完成!n");tf3.setText(str6);if(e.getSource()=b2)if(A=640)(ta.setText("");Stringstr7="沒有資源可回收"ta.append(str7);)elseallrec();S
14、tringstr8=""+A;tf3.setText(str8);)if(e.getSource()=b3)intn;System.out.println(tf1.getText();n=Integer.parseInt(tf1.getText();tf1.setText("");if(A<n)ta.setText("");Stringstr1="空閑塊不足n"/ta.append(str1);JOptionPane.showMessageDialog(null,"空閑塊不足","
15、;提示”,JOptionPane.PLAIN_MESSAGE);return;)elseintj,k;ta.setText("");Stringstr="分配結果n"intx=H;for(inti=0;i<n;i+)(j=spi/16;k=spi-j*16;usedx+i=spi;/可用塊相對地址轉為已用塊相對地址datajk="1"table.setValueAt("1",j,k);/將位示圖對應位置寫1str+="柱面"+spi/16+”磁道"+(spi%16)/4+”扇區”
16、+(spi%16)%4+"盤塊號:"+spi+"n"A-;H+;for(intt=0;t<A;t+)(spt=spt+n;/刪除可用塊中的已用塊ta.append(str);Stringstr2=""+A;tf3.setText(str2);tf1.setText("");if(e.getSource()=b4)intnum;num=Integer.parseInt(tf2.getText();ta.setText("");Stringstr=""intj,k=0;in
17、ta=num/16;/柱面intb=num%16/4;/磁道intc=num%16%4;/扇區if(dataa4*b+c.equals("0")(JOptionPane.showMessageDialog(null,"不可回收空閑塊","提示",JOptionPane.PLAIN_MESSAGE);/tf2.setText("");return;else(dataa4*b+c="0"table.setValueAt("0",a,4*b+c);str+="柱面&quo
18、t;+a+"磁道"+b+"扇區"+c+”盤快號:"+num+"'n"A+;H-;for(inti=0;i<H;i+)(if(usedi=num)(k=i;break;for(j=k;j<H;j+)usedj=usedj+1;/將回收的塊號從“已用"中刪除ta.append("回收結果:n");ta.append(str);getavail();Stringstr5=""+A;tf3.setText(str5);tf2.setText("");)四、使用說明程序運行后的運行界面如圖3所示:圖3程序運行界面單擊“初始化”按扭初使化程序。初使化后位示圖分配情況圖如圖4所小。圖4初使化后位示圖分配情況圖輸入所需分配的塊數并
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校電采暖管理制度
- 學校營養辦管理制度
- 學生作業量管理制度
- 學生防欺凌管理制度
- 安全勸導員管理制度
- 安全科文件管理制度
- 宋太祖地方管理制度
- 寶安托育園管理制度
- 實訓室物品管理制度
- 客戶qq群管理制度
- 2025年江蘇省職業院校技能大賽中職組(食品藥品檢驗)參考試題庫資料及答案
- 禮讓行車培訓
- 《精餾塔工作原理》課件
- 基于學科核心素養的初中歷史大單元教學設計研究
- 北師大版二年級下冊數學計算題每日一練帶答案(共20天)
- 北師大版四年級下冊數學計算題每日一練帶答案(共30天)
- 中醫診所信息安全管理制度
- 應急管理部門職工招聘合同
- 2025年教師招聘教師資格面試逐字稿初中體育教師招聘面試《排球正面雙手墊球》試講稿(逐字稿)
- 公共危機管理(本)-第五次形成性考核-國開(BJ)-參考資料
- 基于SLM工藝的點陣結構優化設計的工藝要素研究
評論
0/150
提交評論