两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種分配空閑簇以及釋放簇的方法

文檔序號(hào):6573679閱讀:651來源:國知局
專利名稱:一種分配空閑簇以及釋放簇的方法
技術(shù)領(lǐng)域
本發(fā)明屬于數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及一種分配空閑簇以及釋放簇的方法。
背景技術(shù)
隨著存儲(chǔ)技術(shù)的發(fā)展和音視頻技術(shù)的應(yīng)用,人們對(duì)于磁盤容量的要求越來越大。磁盤中的搡作單位是蔟(Cluster, CL),在對(duì)石茲盤進(jìn)行寫入的過程中, 需要找到一個(gè)或多個(gè)未使用的空閑簇,然后才能將參數(shù)據(jù)寫入。
現(xiàn)有的技術(shù)方案通常在磁盤上每個(gè)扇區(qū)開始的部分劃分出一塊連續(xù)的區(qū) 間,區(qū)間中的每個(gè)比特對(duì)應(yīng)于該扇區(qū)的空閑簇的情況,例如,該區(qū)間上第n個(gè) 比特為1,表示第n個(gè)簇為空閑簇;該區(qū)間的第n個(gè)比特為0表示第n個(gè)簇被 使用。當(dāng)?shù)谝淮尾檎以撋葏^(qū)上的空閑簇時(shí),從該區(qū)間的第一個(gè)比特開始查找, 直到找到一個(gè)為1的比特,將數(shù)據(jù)寫入對(duì)應(yīng)的空閑簇并將該比特修改為0,以 后的每次查找,都從該區(qū)間上次查找到空閑簇的位置開始向后查找,直到查找 到下一個(gè)為1的比特,將數(shù)據(jù)寫入對(duì)應(yīng)的空閑簇,并把該位置對(duì)應(yīng)的比特修改為0。
上述技術(shù)方案對(duì)于在大容量的磁盤中查找空閑簇很困難,耗時(shí)長,尤其當(dāng) 反復(fù)對(duì)磁盤進(jìn)行操作后,扇區(qū)空間快滿時(shí),查找到一個(gè)空閑簇很困難,耗時(shí)很長。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種分配空閑簇的方法,旨在解決現(xiàn)有技術(shù) 中查找空閑簇耗時(shí)長的問題。
本發(fā)明實(shí)施例的另 一 目的在于提供一種釋放蔟的方法,使得被釋放的簇能
夠按照上述空閑簇的分配方法繼續(xù)被分配出去。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的, 一種分配空閑簇的方法,所述方法包括
將空閑簇的位置信息以鏈表結(jié)構(gòu)保存;
當(dāng)接收到分配請(qǐng)求時(shí),讀取所述鏈表結(jié)構(gòu)的起始點(diǎn)空閑簇的位置信息;
才艮據(jù)該位置信息分配相應(yīng)的空閑簇;
將鏈表起始點(diǎn)的位置信息修改為下 一個(gè)空閑簇的位置信息。
所述將空閑簇的位置信息以鏈表結(jié)構(gòu)保存的步驟具體包括
根據(jù)空閑簇的數(shù)量unit設(shè)置unit+l個(gè)記錄單元;
將所有空閑簇的位置信息以鏈表結(jié)構(gòu)保存在所述記錄單元中。
所述當(dāng)接收到分配請(qǐng)求時(shí),讀取所述鏈表結(jié)構(gòu)的起始點(diǎn)空閑簇的位置信息 的步驟具體包括
讀取所述鏈表結(jié)構(gòu)的起始點(diǎn)記錄單元的值。
所述根據(jù)位置信息分配相應(yīng)的空閑簇并將鏈表起始點(diǎn)的位置信息修改為下 一個(gè)空閑簇的位置信息的步驟具體包括
根據(jù)讀取到的記錄單元的值分配相應(yīng)的空閑簇;
根據(jù)鏈表結(jié)構(gòu)將下一個(gè)空閑簇的位置信息保存到鏈表結(jié)構(gòu)的起始點(diǎn)的記錄 單元中。
一種釋放簇的方法,所述方法包括
釋放簇;
將所釋放簇的位置信息保存到記錄單元中,所述記錄單元以鏈表結(jié)構(gòu)記錄
空閑簇的位置信息。
所述將所釋放簇的位置信息保存到記錄單元中的步驟具體包括 將鏈表結(jié)構(gòu)的起始點(diǎn)記錄單元的值CLn保存到第n個(gè)記錄單元中;
將所釋放蔟的位置信息保存到鏈表結(jié)構(gòu)的起始點(diǎn)記錄單元中。
本發(fā)明實(shí)施例通過將空閑簇的位置信息以鏈表的結(jié)構(gòu)保存起來,當(dāng)接收到
分配請(qǐng)求時(shí),直接根據(jù)鏈表的起始點(diǎn)空閑簇的位置信息將對(duì)應(yīng)的空閑簇分配給數(shù)據(jù),使得存儲(chǔ)數(shù)據(jù)的時(shí)候不需要查找空閑簇,縮短了存儲(chǔ)數(shù)據(jù)的時(shí)間。同時(shí), 本發(fā)明實(shí)施例提供的釋放簇的方法使得被釋放的簇能夠按照上述空閑蔟的分配 方法繼續(xù)^皮分配出去。


圖1是本發(fā)明實(shí)施例提供的值為鏈表結(jié)構(gòu)的記錄單元的一個(gè)示例圖2是本發(fā)明實(shí)施例提供的分配空閑蔟的方法的實(shí)現(xiàn)流程圖3是本發(fā)明實(shí)施例提供的釋放簇的方法的實(shí)現(xiàn)流程圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實(shí)施例通過將空閑簇的位置以鏈表的結(jié)構(gòu)鏈接起來,使得存儲(chǔ)數(shù)據(jù)的時(shí)候不需要查找空閑簇,直接根據(jù)鏈表的起始點(diǎn)空閑蔟的位置將對(duì)應(yīng)的空閑簇分配給數(shù)據(jù)。
假設(shè)磁盤扇區(qū)的大小為HddSize,磁盤上每一簇的大小為SectorSize,則整個(gè)磁盤扇區(qū)空閑簇的數(shù)量為Unit=HddSize/SectorSize。本發(fā)明在磁盤的扇區(qū) 上劃分一塊連續(xù)區(qū)間,通過Unit+1個(gè)記錄單元來記錄/F茲盤扇區(qū)上的空閑蔟的信息。記錄空閑簇信息的記錄單元在磁盤扇區(qū)中占用的簇?cái)?shù)為TotalSector=(Unit+1)*nByte/SectorSize,其中nByte為每個(gè)記錄單元需要的字節(jié)數(shù)。
記錄單元的一個(gè)示例如圖1所示,其中,第Unit+1個(gè)記錄單元中的內(nèi)容為CL1,CL1表示第一個(gè)空閑簇,第一個(gè)記錄單元中的內(nèi)容為CL2,CL2表示第二個(gè)空閑簇,第二個(gè)記錄單元中的內(nèi)容為CL3,CL3表示第三個(gè)空閑簇,…… 第Unit-1個(gè)記錄單元中的內(nèi)容為Clunit, Clunit表示第unit個(gè)空閑簇,鏈表結(jié) 尾處的記錄單元的值為非法值,可設(shè)置為0,表示沒有可用的空閑簇??梢钥?br> 出空閑簇的鏈表結(jié)構(gòu)為CL1—CL2—CL3—......CLunit—0,第Unit + 1個(gè)記錄
單元為鏈表的起始點(diǎn)。
圖2示出了本發(fā)明實(shí)施例提供的分配空閑簇的方法實(shí)現(xiàn)流程,詳述如下
在步驟S201中,當(dāng)接收到一個(gè)分配請(qǐng)求時(shí),讀取鏈表的起始點(diǎn),即第Unit + 1個(gè)記錄單元的值;
在步驟S202中,根據(jù)第Unit + 1個(gè)記錄單元的值判斷磁盤扇區(qū)中是否有可 分配的空閑簇,是則執(zhí)行步驟S203,否則執(zhí)行步驟S205;
第Unit+1個(gè)記錄單元的值為0或CLn,其中ne[l, 2, 3, ......, unit],
當(dāng)?shù)赨nit+ 1個(gè)記錄單元的值為0時(shí),表示沒有可以分配的空閑蔟。
在步驟S203中,分配空閑蔟;
將第n個(gè)空閑簇分配給待存數(shù)據(jù),進(jìn)入步驟S204。
在步驟S204中,修改記錄單元的值;
將第n個(gè)記錄單元的值保存到第Unit + 1個(gè)記錄單元中。
在步驟S205中,分配空閑蔟失敗。
當(dāng)接收到下一個(gè)分配請(qǐng)求時(shí),繼續(xù)執(zhí)行步驟S201??梢钥闯隹臻e簇的位置 信息始終以鏈表結(jié)構(gòu)保存在記錄單元中,從而使得存儲(chǔ)數(shù)據(jù)的時(shí)候不需要查找 空閑簇,直接根據(jù)鏈表的起始點(diǎn)記錄單元的值將對(duì)應(yīng)的空閑簇分配給數(shù)據(jù)。
對(duì)應(yīng)的,本發(fā)明實(shí)施例還提供了一種釋;改簇的方法,如圖3所示,詳述如

在步驟S301中,當(dāng)接收到一個(gè)釋放第m個(gè)簇的請(qǐng)求時(shí),釋放蔟;
其中,m印,2, 3, ......, unit]。
在步驟S302中,修改記錄單元的值。
讀取鏈表的起始點(diǎn),即第Unit+l個(gè)記錄單元的值,將該值保存到第m個(gè) 記錄單元中,并將第Unit + 1個(gè)記錄單元的值修改為CLm。
為了更好的說明本發(fā)明,下面結(jié)合一個(gè)具體示例對(duì)本發(fā)明進(jìn)行說明,假設(shè) 磁盤扇區(qū)中有3個(gè)空閑簇,即Unit = 3,那么就需要111^+1=4個(gè)記錄單元,
初始化時(shí),各記錄單元中的值可以分別為
CL2, CL3, 0, CL1;
可分配的空閑簇組成的鏈表結(jié)構(gòu)為CL1—CL2—CL3—0。
當(dāng)接收到一個(gè)分配請(qǐng)求時(shí),讀取第4個(gè)記錄單元的值,為CL1則表示第1 個(gè)空閑簇是可以分配的空閑簇,將其分配后,讀出第1個(gè)記錄單元中的值并將 其寫入第4個(gè)記錄單元中,此時(shí),各記錄單元中的值分別為 CL2, CL3, 0, CL2;
可分配的空閑簇實(shí)際的鏈表結(jié)構(gòu)為CL2—CL3—0。
當(dāng)又接收到一個(gè)分配請(qǐng)求時(shí),仍讀取第4個(gè)記錄單元的值,為CL2則表示 第2個(gè)空閑簇是可以分配的空閑簇,將其分配后,讀出第2個(gè)記錄單元中的值 并將其寫入第4個(gè)記錄單元中,此時(shí),各記錄單元中的值分別為
CL2, CL3, 0, CL3;
可分配的空閑簇實(shí)際的鏈表結(jié)構(gòu)為CL3—0。
當(dāng)又接收到一個(gè)分配請(qǐng)求時(shí),仍讀取第4個(gè)記錄單元的值,為CL3則表示 第3個(gè)空閑簇是可以分配的空閑簇,將其分配后,讀出第3個(gè)記錄單元中的值 并將其寫入第4個(gè)記錄單元中,此時(shí),各記錄單元中的值分別為
CL2, CL3, 0, 0
此時(shí)第4個(gè)記錄單元的值為0,表示沒有可以分配的空閑簇,所以當(dāng)又接 收到一個(gè)分配請(qǐng)求時(shí),由于沒有可以分配的空閑簇,導(dǎo)致分配失敗。
此時(shí)如果接收到一個(gè)釋放請(qǐng)求,要求釋放第l個(gè)簇,,即CL1,那么仍舊 是先讀取第4個(gè)記錄單元的值(為0),將其寫入要釋放的簇對(duì)應(yīng)的第1個(gè)記 錄單元中,然后,在第4個(gè)記錄單元中寫入要釋放的簇的位置,即CLl,此時(shí), 各記錄單元中的值分別為
0, CL3, 0, CL1;
可分配的空閑簇實(shí)際的鏈表結(jié)構(gòu)為CL1—0。
此時(shí)如果又接收到一個(gè)釋放請(qǐng)求,要求釋放第2個(gè)簇,即CL2,那么仍舊 是先讀取第4個(gè)記錄單元的值(為CL1),將其寫入第2個(gè)記錄單元中,然后, 在第4個(gè)記錄單元中寫入CL2,此時(shí),各記錄單元中的值分別為 0, CL1, 0, CL2;
可分配的空閑簇實(shí)際的鏈表結(jié)構(gòu)為CL2→CL1→0。
此時(shí)如果又接收到一個(gè)釋放請(qǐng)求,要求釋放第3個(gè)簇,即CL3,那么仍舊 是先讀取第4個(gè)記錄單元的值(為CL2 ),將其寫入第3個(gè)記錄單元中,然后, 在第4個(gè)記錄單元中寫入CL3,此時(shí),各記錄單元中的值分別為
0, CL1, CL2, CL3;
可分配的空閑簇實(shí)際的鏈表結(jié)構(gòu)為CL3→CL2→CL1→0。 更多的分配空閑簇和釋放簇的過程與上述示例原理相同,不再贅述。需要說明的是上述為鏈表結(jié)構(gòu)的記錄單元只需要在第一次使用磁盤的時(shí)候建立,并在后續(xù)的分配或津奪;改蔟的過程中保存記錄即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種分配空閑簇的方法,其特征在于,所述方法包括將空閑簇的位置信息以鏈表結(jié)構(gòu)保存;當(dāng)接收到分配請(qǐng)求時(shí),讀取所述鏈表結(jié)構(gòu)的起始點(diǎn)空閑簇的位置信息;根據(jù)該位置信息分配相應(yīng)的空閑簇;將鏈表起始點(diǎn)的位置信息修改為下一個(gè)空閑簇的位置信息。
2、 如權(quán)利要求1所述的分配空閑簇的方法,其特征在于,所述將空閑簇的 位置信息以鏈表結(jié)構(gòu)保存的步驟具體包括根據(jù)空閑簇的數(shù)量unit設(shè)置unit+l個(gè)記錄單元;將所有空閑簇的位置信息以鏈表結(jié)構(gòu)保存在所述記錄單元中。
3、 如權(quán)利要求2所述的分配空閑簇的方法,其特征在于,所述當(dāng)接收到分 配請(qǐng)求時(shí),讀取所述鏈表結(jié)構(gòu)的起始點(diǎn)空閑簇的位置信息的步驟具體包括讀取所述鏈表結(jié)構(gòu)的起始點(diǎn)記錄單元的值。
4、 如權(quán)利要求3所述的分配空閑簇的方法,其特征在于,所述根據(jù)位置信 息分配相應(yīng)的空閑簇并將鏈表起始點(diǎn)的位置信息修改為下一個(gè)空閑簇的位置信 息的步驟具體包括根據(jù)讀取到的記錄單元的值分配相應(yīng)的空閑簇;根據(jù)鏈表結(jié)構(gòu)將下一個(gè)空閑蔟的位置信息保存到鏈表結(jié)構(gòu)的起始點(diǎn)的記錄 單元中。
5、 一種釋放蔟的方法,其特征在于,所述方法包括 釋放簇;將所釋放簇的位置信息保存到記錄單元中,所述記錄單元以鏈表結(jié)構(gòu)記錄 空閑簇的位置信息。
6、 如權(quán)利要求5所述的釋放簇的方法,其特征在于,所述將所釋放蔟的位 置信息保存到記錄單元中的步驟具體包括將鏈表結(jié)構(gòu)的起始點(diǎn)記錄單元的值CLn保存到第n個(gè)記錄單元中; 將所釋放蔟的位置信息保存到鏈表結(jié)構(gòu)的起始點(diǎn)記錄單元中
全文摘要
本發(fā)明適用于數(shù)據(jù)存儲(chǔ)領(lǐng)域,提供了一種分配空閑簇以及釋放簇的方法,所述分配空閑簇的方法包括將空閑簇的位置信息以鏈表結(jié)構(gòu)保存;當(dāng)接收到分配請(qǐng)求時(shí),讀取所述鏈表結(jié)構(gòu)的起始點(diǎn)空閑簇的位置信息;根據(jù)該位置信息分配相應(yīng)的空閑簇;將鏈表起始點(diǎn)的位置信息修改為下一個(gè)空閑簇的位置信息。本發(fā)明通過將空閑簇的位置信息以鏈表的結(jié)構(gòu)保存起來,當(dāng)接收到分配請(qǐng)求時(shí),直接根據(jù)鏈表的起始點(diǎn)空閑簇的位置信息將對(duì)應(yīng)的空閑簇分配給數(shù)據(jù),使得存儲(chǔ)數(shù)據(jù)的時(shí)候不需要查找空閑簇,縮短了存儲(chǔ)數(shù)據(jù)的時(shí)間。
文檔編號(hào)G06F12/02GK101201798SQ20071007358
公開日2008年6月18日 申請(qǐng)日期2007年3月19日 優(yōu)先權(quán)日2007年3月19日
發(fā)明者況敬波 申請(qǐng)人:深圳市同洲電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
徐水县| 丹巴县| 太谷县| 策勒县| 广汉市| 河间市| 平邑县| 张北县| 汶上县| 蓝田县| 双辽市| 海丰县| 罗城| 平陆县| 平潭县| 乡城县| 咸宁市| 阿图什市| 子洲县| 揭阳市| 基隆市| 北辰区| 云安县| 宁安市| 清原| 皮山县| 科尔| 双牌县| 临汾市| 涿州市| 长治市| 彭水| 尉氏县| 微山县| 太仆寺旗| 阳曲县| 澄江县| 刚察县| 那曲县| 上犹县| 苏尼特左旗|