SA-YAFFS:支持交換系統(tǒng)的YAFFS閃存文件系統(tǒng)的設(shè)計與實現(xiàn)
發(fā)布時間:2020-10-25 02:54
閃存自其誕生,便以其功耗低、體積小、抗震性強而受到廣泛關(guān)注。如今,隨著閃存進入G容量時代,閃存必然會被使用在計算復(fù)雜性更高、任務(wù)更繁復(fù)的系統(tǒng)中。而在這些操作系統(tǒng)中,幾乎無一例外地都使用了交換系統(tǒng),以犧牲一定性能的代價來擴展內(nèi)存空間容量,增加系統(tǒng)的并行執(zhí)行度和吞吐量。當(dāng)閃存被應(yīng)用在了這些系統(tǒng)中,由于閃存在I/O接口和尋址方式與傳統(tǒng)磁盤的巨大差別,使得交換系統(tǒng)無法直接在閃存上建立交換區(qū)域。 工程上慣用NFTL/FTL層來屏蔽閃存設(shè)備與磁盤設(shè)備的不兼容性。NFTL/FTL層是一種設(shè)備轉(zhuǎn)換層。借助該層,操作系統(tǒng)便可以把閃存當(dāng)作磁盤塊設(shè)備一樣來使用,并在其上建立FAT、NTFS、EXT2、EXT3等之類的磁盤文件系統(tǒng)。甚至于在NFTL/FTL層的幫助下,交換系統(tǒng)也得以簡介地建立在閃存上。然而,NFTL/FTL層除了因為在設(shè)備轉(zhuǎn)換過程中損失性能外,嚴(yán)重的“偽有效chunk”問題還會導(dǎo)致大幅增加交換系統(tǒng)的讀寫開銷,于是有人提出了閃存專用交換系統(tǒng)FASS,解決了上述NFTL/FTL的兩個缺陷。FASS大幅度降低了交換系統(tǒng)對交換區(qū)域的讀寫開銷。 然而FASS延續(xù)了傳統(tǒng)交換系統(tǒng)靜態(tài)分配交換區(qū)域的慣性思維,將交換系統(tǒng)的讀寫磨損限制在了閃存固定的某個區(qū)域,就有可能會造成閃存局部過度磨損,本質(zhì)上并不適用于閃存場合。 基于上述的思考,本課題認為閃存交換系統(tǒng)必須動態(tài)分配交換區(qū)域的存儲空間。因此,本課題將交換系統(tǒng)的支持性融入閃存文件系統(tǒng)YAFFS中,提出了支持交換系統(tǒng)的閃存文件系統(tǒng)SA-YAFFS(Swap-Aware YAFFS)。 在SA-YAFFS文件系統(tǒng)中,文件系統(tǒng)和交換系統(tǒng)各自都具有可用的閃存空間邏輯配額,但實際的物理存儲空間只有發(fā)生寫操作時,才動態(tài)地由統(tǒng)一的閃存分配器分配出去?紤]到文件系統(tǒng)數(shù)據(jù)和交換系統(tǒng)數(shù)據(jù)的具有不同的有效周期,SA-YAFFS將閃存block按功能分為文件系統(tǒng)block和交換系統(tǒng)block,這一方面有利于提高閃存垃圾回收器的效率,另一方面可以節(jié)省內(nèi)存開銷?紤]到交換系統(tǒng)block中的內(nèi)存頁的內(nèi)核對象與文件系統(tǒng)block中的數(shù)據(jù)內(nèi)核對象不兼容,SA-YAFFS為交換系統(tǒng)設(shè)計了專門的垃圾回收器。另外,SA-YAFFS采用異步方式讀寫交換區(qū)域,以提高系統(tǒng)吞吐率。 實驗表明,相對于NFTL/FTL層,SA-YAFFS由于避免了“偽有效chunk”的現(xiàn)象,可以大幅度降低交換系統(tǒng)對于閃存交換區(qū)域的讀寫次數(shù)。同時,由于采用動態(tài)分配交換區(qū)域,SA-YAFFS文件系統(tǒng)可以調(diào)動分區(qū)中所有空閑block共同承擔(dān)交換系統(tǒng)導(dǎo)致的閃存磨損。相對于FASS,SA-YAFFS在交換系統(tǒng)邏輯配額一定的前提下,可以將交換系統(tǒng)對于閃存的磨損分攤在更多的物理block上。當(dāng)“文件系統(tǒng)邏輯配額的剩余空閑空間+交換系統(tǒng)邏輯配額”增加到n倍,交換系統(tǒng)對于其使用過的每個block的磨損次數(shù)降低為原來的1/n。
【學(xué)位單位】:上海交通大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2008
【中圖分類】:TP333.2
【部分圖文】:
Figure2-3 The memory management of IBM OS/360 OS/360 被配置成 MVT(Multiprogramming with a Variable 2]時,內(nèi)存管理器便采用動態(tài)方法為進程分配內(nèi)存。為了跟操作系統(tǒng)用表來記錄內(nèi)存塊是否被占用或空閑。初始時,整閑內(nèi)存塊,當(dāng)用戶或者系統(tǒng)進程不斷地向內(nèi)存管理器提出分存管理器就按照該進程申請的大小從這一大塊內(nèi)存中劃分出用。一旦使用完畢,則釋放內(nèi)存塊返還給內(nèi)存管理器。當(dāng)系存,并且還沒有發(fā)生任何內(nèi)存塊返還給內(nèi)存管理器時,此時一大塊連續(xù)的內(nèi)存。當(dāng)逐漸出現(xiàn)有進程釋放內(nèi)存時,由于內(nèi)機的,系統(tǒng)中便開始出現(xiàn)多個不連續(xù)的空閑內(nèi)存塊。內(nèi)存管閑塊表”將這些分散的空閑內(nèi)存塊的信息組織起來,以備需今后回收內(nèi)存塊時會首先考慮是否可以和當(dāng)前的其他空閑塊個不連續(xù)的空閑內(nèi)存塊時,最先匹配、最優(yōu)匹配和最差匹配經(jīng)典的三種策略。采用分頁技術(shù)的系統(tǒng)而言,進程只能使用連續(xù)的物理內(nèi)存空
而 YAFFS 在擦除 block 時又不采用 Suspend Erase 技遇到正在進行中的擦除 block 操作,則讀寫閃存會被合用在 NOR Flash 上。相對 JFFS 而言,YAFFS 的內(nèi)存計得更簡單快速、掛載大容量 NAND Flash Memory 所耗常適合使用在大容量的 NAND Flash Memory 上。而 JF NAND Flash,以及 NOR Flash 上。
他們提出了一種改良的 LRU 換頁策略——CFLRU 策略。法中不區(qū)分“臟頁”和“干凈頁”,這樣會增加閃存寫操作,存的擦除操作。閃存的寫操作比起讀操作滿了不少,擦除就更增加對“頁”是“臟”還是“干凈”的考慮,盡可能把臟頁保,CFLRU 算法選擇換出頁的順序如下:未使用了的干凈頁未使用了的臟頁使用了的干凈頁或臟頁
本文編號:2855353
【學(xué)位單位】:上海交通大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2008
【中圖分類】:TP333.2
【部分圖文】:
Figure2-3 The memory management of IBM OS/360 OS/360 被配置成 MVT(Multiprogramming with a Variable 2]時,內(nèi)存管理器便采用動態(tài)方法為進程分配內(nèi)存。為了跟操作系統(tǒng)用表來記錄內(nèi)存塊是否被占用或空閑。初始時,整閑內(nèi)存塊,當(dāng)用戶或者系統(tǒng)進程不斷地向內(nèi)存管理器提出分存管理器就按照該進程申請的大小從這一大塊內(nèi)存中劃分出用。一旦使用完畢,則釋放內(nèi)存塊返還給內(nèi)存管理器。當(dāng)系存,并且還沒有發(fā)生任何內(nèi)存塊返還給內(nèi)存管理器時,此時一大塊連續(xù)的內(nèi)存。當(dāng)逐漸出現(xiàn)有進程釋放內(nèi)存時,由于內(nèi)機的,系統(tǒng)中便開始出現(xiàn)多個不連續(xù)的空閑內(nèi)存塊。內(nèi)存管閑塊表”將這些分散的空閑內(nèi)存塊的信息組織起來,以備需今后回收內(nèi)存塊時會首先考慮是否可以和當(dāng)前的其他空閑塊個不連續(xù)的空閑內(nèi)存塊時,最先匹配、最優(yōu)匹配和最差匹配經(jīng)典的三種策略。采用分頁技術(shù)的系統(tǒng)而言,進程只能使用連續(xù)的物理內(nèi)存空
而 YAFFS 在擦除 block 時又不采用 Suspend Erase 技遇到正在進行中的擦除 block 操作,則讀寫閃存會被合用在 NOR Flash 上。相對 JFFS 而言,YAFFS 的內(nèi)存計得更簡單快速、掛載大容量 NAND Flash Memory 所耗常適合使用在大容量的 NAND Flash Memory 上。而 JF NAND Flash,以及 NOR Flash 上。
他們提出了一種改良的 LRU 換頁策略——CFLRU 策略。法中不區(qū)分“臟頁”和“干凈頁”,這樣會增加閃存寫操作,存的擦除操作。閃存的寫操作比起讀操作滿了不少,擦除就更增加對“頁”是“臟”還是“干凈”的考慮,盡可能把臟頁保,CFLRU 算法選擇換出頁的順序如下:未使用了的干凈頁未使用了的臟頁使用了的干凈頁或臟頁
本文編號:2855353
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2855353.html
最近更新
教材專著