位示圖法在近年的系統(tǒng)分析師考試中出現(xiàn)較為頻繁,屬于考試重點(diǎn),該考點(diǎn)涉及的知識(shí)點(diǎn)的難度并不大,但如果考生從未學(xué)習(xí)過(guò)相關(guān)知識(shí)就很容易出錯(cuò)。故筆者從《系統(tǒng)分析師考試全程指導(dǎo)》與《系統(tǒng)分析師考試綜合知識(shí)試題分類精解》中選取部分內(nèi)容以及例題組成該文,供考生參考。閱讀本文即可應(yīng)對(duì)相關(guān)考題。
位示圖法是操作系統(tǒng)中一種管理空閑存儲(chǔ)空間的方法。管理空閑空間除使用位示圖法還可用:空閑區(qū)表法、空閑鏈表法、成組鏈接法本文將詳細(xì)介紹這幾種方法。
1.空閑區(qū)表法
空閑表法屬于連續(xù)分配方式。它與內(nèi)存管理中的動(dòng)態(tài)分區(qū)分配方式雷同。
將外存空間上一個(gè)連續(xù)未分配區(qū)域稱為“空閑區(qū)”。操作系統(tǒng)為磁盤(pán)外存上所有空閑區(qū)建立一張空閑表,每個(gè)表項(xiàng)對(duì)應(yīng)一個(gè)空閑區(qū),空閑表包含“序號(hào),第一空閑盤(pán)塊號(hào),空閑盤(pán)塊數(shù)”等信息。它適用于連續(xù)文件結(jié)構(gòu)。
它為每個(gè)文件分配一個(gè)連續(xù)的存儲(chǔ)空間。系統(tǒng)為外存上的所有空閑區(qū)建立一張空閑表,每個(gè)空閑區(qū)對(duì)應(yīng)于一個(gè)空閑表項(xiàng)。
2.空閑鏈表法
是將所有的空閑盤(pán)區(qū)拉成一條空閑鏈。根據(jù)構(gòu)成鏈的基本元素的不同,可有兩種鏈表方式:空閑盤(pán)塊鏈、空閑盤(pán)區(qū)鏈。
空閑盤(pán)塊鏈
它是將磁盤(pán)上的所有空閑存儲(chǔ)空間,以盤(pán)塊為基本元素拉成一條鏈。優(yōu)點(diǎn)是用于分配和回收一個(gè)盤(pán)塊的過(guò)程非常簡(jiǎn)單;缺點(diǎn)是空閑盤(pán)塊鏈可能很長(zhǎng)。
空閑盤(pán)區(qū)鏈
這是將磁盤(pán)上的所有空閑盤(pán)區(qū)(每個(gè)盤(pán)區(qū)可包含若干個(gè)盤(pán)塊)拉成一條鏈。在每個(gè)盤(pán)區(qū)上除了含有用于指示下一個(gè)空閑盤(pán)區(qū)的指針外,還應(yīng)標(biāo)有指明本盤(pán)區(qū)大小(盤(pán)塊數(shù))的信息。這方法分配和回收過(guò)程較復(fù)雜,但空閑盤(pán)區(qū)鏈較短。
3.位示圖法
這種方法是在外存上建立一張位示圖(bitmap),記錄文件存儲(chǔ)器的使用情況。每一位僅對(duì)應(yīng)文件存儲(chǔ)器上的一個(gè)物理塊,取值0和1分別表示空閑和占用。文件存儲(chǔ)器上的物理塊依次編號(hào)為:0、1、2、…。
位示圖是利用二進(jìn)制的一位來(lái)表示磁盤(pán)中一個(gè)盤(pán)塊的使用情況。當(dāng)其值為“0”時(shí),表示對(duì)應(yīng)的盤(pán)塊空閑;為“1”時(shí)表示已分配。由所有盤(pán)塊對(duì)應(yīng)的位構(gòu)成一個(gè)集合,稱為位示圖。位示圖也可描述為一個(gè)二維數(shù)組map:Var map:array[1...m,1...n]of bit;
盤(pán)塊的分配
根據(jù)位示圖進(jìn)行盤(pán)塊分配時(shí),可分三步進(jìn)行:
·順序掃描位示圖,從中找出一個(gè)或一組值均為“0”的二進(jìn)制位;
·將找到的二進(jìn)制位,轉(zhuǎn)換成與之相應(yīng)的盤(pán)塊號(hào);
·修改位示圖,令map[i,j]=1。
盤(pán)塊的回收
盤(pán)塊的回收分兩步:
·將回收盤(pán)塊的盤(pán)塊號(hào)轉(zhuǎn)換成位于圖中的行號(hào)和列號(hào)。轉(zhuǎn)換公式為:
i=(b-1)DIVn+1
j=(b-1)MODn+1
·修改位示圖。令map[i,j]=0。
相關(guān)推薦:2010年全國(guó)計(jì)算機(jī)軟考報(bào)名時(shí)間匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |