• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于嵌入式Linux的YAFFS2文件系統(tǒng)研究與改進(jìn)

    2015-11-04 06:19:32朱紹英查啟鵬
    計(jì)算機(jī)工程 2015年9期
    關(guān)鍵詞:序列號(hào)空閑扇區(qū)

    朱紹英,查啟鵬

    (中國(guó)電子科技集團(tuán)公司第三十二研究所,上海200233)

    基于嵌入式Linux的YAFFS2文件系統(tǒng)研究與改進(jìn)

    朱紹英,查啟鵬

    (中國(guó)電子科技集團(tuán)公司第三十二研究所,上海200233)

    YAFFS2文件系統(tǒng)是針對(duì)NAND Flash按塊擦寫(xiě)特點(diǎn)設(shè)計(jì)的一種專(zhuān)用Flash文件系統(tǒng),其存在加載時(shí)間長(zhǎng)和NAND Flash專(zhuān)用的局限性。為此,從Flash存儲(chǔ)器管理和文件管理2個(gè)方面分析該系統(tǒng)的設(shè)計(jì)原理及特性,提出一種新的文件系統(tǒng)信息存儲(chǔ)方式,并從文件系統(tǒng)初始化、垃圾回收、斷電保護(hù)等方面對(duì)YAFFS2文件系統(tǒng)進(jìn)行改進(jìn),減少加載時(shí)間,使之能應(yīng)用于多種Flash存儲(chǔ)器。測(cè)試結(jié)果表明,與原系統(tǒng)相比,改進(jìn)系統(tǒng)的安裝時(shí)間減少25%,并可實(shí)現(xiàn)Flash各存儲(chǔ)扇區(qū)的均衡使用。

    YAFFS2文件系統(tǒng);NAND存儲(chǔ)器;嵌入式Linux系統(tǒng);垃圾回收策略;損耗平衡

    1 概述

    Flash存儲(chǔ)器由于具有存儲(chǔ)容量大、掉電數(shù)據(jù)不丟失以及可多次擦寫(xiě)等許多優(yōu)點(diǎn)而被廣泛應(yīng)用于各類(lèi)電子產(chǎn)品中,其存儲(chǔ)特性決定了已有的磁盤(pán)文件系統(tǒng)不能直接用于Flash存儲(chǔ)器,而必須采用專(zhuān)用的Flash文件系統(tǒng)。Flash文件系統(tǒng)除了要滿(mǎn)足一般文件系統(tǒng)的基本要求外,還要根據(jù)其自身的一些特性實(shí)現(xiàn)對(duì)Flash的有效管理。如廣泛應(yīng)用于NOR Flash的JFSS2(Journalling Flash File System)專(zhuān)用文件系統(tǒng),而有些Flash存儲(chǔ)器如MMC卡、SD卡,由于內(nèi)嵌了各自的FTL(Flash Translation Layer)固件,使得傳統(tǒng)的磁盤(pán)文件系統(tǒng)可以直接使用。YAFFS2文件系統(tǒng)是A leph One公司針對(duì)NAND Flash的特點(diǎn)而設(shè)計(jì)的一種專(zhuān)用Flash文件系統(tǒng)[1]。它主要是通過(guò)NAND Flash每頁(yè)的OOB(Out of Band)區(qū)存儲(chǔ)文件系統(tǒng)信息而實(shí)現(xiàn)的,具有效率高、占用資源較少等特點(diǎn)[2]。本文分析YAFFS2文件系統(tǒng)的基本工作原理,包括存儲(chǔ)器管理和文件管理,針對(duì)其加載時(shí)間隨文件系統(tǒng)分區(qū)增大而線(xiàn)性增大和僅限于NAND Flash的局限性,提出一種新的文件系統(tǒng)信息存儲(chǔ)方式,避免使用OOB區(qū),并改進(jìn)文件系統(tǒng)初始化時(shí)的掃描方式以及垃圾回收和掉電保護(hù)機(jī)制,實(shí)現(xiàn)在NAND Flash、MMC卡和NOR Flash等Flash存儲(chǔ)器上搭建YAFFS2文件系統(tǒng)的目的。

    2 YAFFS2文件系統(tǒng)分析

    Linux下的文件系統(tǒng)一般設(shè)計(jì)一個(gè)文件系統(tǒng)信息組成的“超級(jí)塊”,存放在存儲(chǔ)器的特定位置,其中包含了存儲(chǔ)器空間大小、存儲(chǔ)器使用情況和各個(gè)文件的存放信息等,并在文件系統(tǒng)安裝時(shí)被讀入以建立VFS(Virtual File System)層的super_block結(jié)構(gòu)實(shí)例[3-4]。然而,YAFFS2文件系統(tǒng)中存儲(chǔ)器上并沒(méi)有類(lèi)似的超級(jí)信息塊,在加載文件分區(qū)時(shí),通過(guò)掃描存儲(chǔ)分區(qū)來(lái)得到相應(yīng)的文件系統(tǒng)信息并建立super_ block結(jié)構(gòu)實(shí)例,包括一些其他的信息,例如文件節(jié)點(diǎn)等。對(duì)于用戶(hù),文件系統(tǒng)就是要實(shí)現(xiàn)按名字存取文件,以及文件和目錄的一些的管理操作,如創(chuàng)建、刪除、讀寫(xiě)等[5-6]。下面分別從存儲(chǔ)器管理和文件管理與來(lái)具體分析YAFFS2文件系統(tǒng)的設(shè)計(jì)原理。

    2.1 NAND存儲(chǔ)器管理

    YAFFS2文件系統(tǒng)以扇區(qū)為單位在NAND Flash存儲(chǔ)數(shù)據(jù),即NAND Flash的頁(yè),頁(yè)的大小主要有512 Byte,2 KB和4 KB等。若頁(yè)大小為2 KB,則每頁(yè)有64 Byte大小的OOB區(qū),而所有頁(yè)的分配與讀寫(xiě)是以塊為單位進(jìn)行管理的,YAFFS2文件系統(tǒng)通過(guò)將存儲(chǔ)器的每個(gè)存儲(chǔ)塊分成為各種不同的狀態(tài)進(jìn)行組織管理,實(shí)現(xiàn)中使用共用體結(jié)構(gòu)yaffs_ BlockState來(lái)標(biāo)識(shí),分別有初始、掃描、空閑、分配中、滿(mǎn)、臟6種狀態(tài)[7]。其中掃描狀態(tài)是指在加載文件系統(tǒng)時(shí),正在讀該存儲(chǔ)塊的數(shù)據(jù),并對(duì)其數(shù)據(jù)進(jìn)行分析處理,在整個(gè)文件系統(tǒng)分區(qū)的所有存儲(chǔ)塊的數(shù)據(jù)處理完之后,這些狀態(tài)的存儲(chǔ)塊分別會(huì)設(shè)置最后的使用狀態(tài);當(dāng)存儲(chǔ)塊中所有的扇區(qū)都被使用時(shí),會(huì)被標(biāo)記為滿(mǎn)或者直接標(biāo)記為臟狀態(tài),后者是指存儲(chǔ)塊中所有扇區(qū)的數(shù)據(jù)都被標(biāo)記為無(wú)效數(shù)據(jù),必須將這個(gè)存儲(chǔ)塊擦除為空狀態(tài),加入到可分配列表中,供后面分配使用;在任何時(shí)刻,一個(gè)文件系統(tǒng)分區(qū)中有且只有一個(gè)存儲(chǔ)塊被標(biāo)記為分配狀態(tài),在寫(xiě)文件或者垃圾回收時(shí),先找到當(dāng)前分配狀態(tài)的存儲(chǔ)塊,然后順序分配一個(gè)扇區(qū)進(jìn)行寫(xiě)入,當(dāng)該存儲(chǔ)的所有扇區(qū)都寫(xiě)完后,就要再在空閑狀態(tài)列表中找到一個(gè)塊作為當(dāng)前分配塊。

    為了更有效地使用Flash的各個(gè)存儲(chǔ)塊,實(shí)現(xiàn)中使用yaffs_Block Info結(jié)構(gòu)來(lái)詳細(xì)地描述每個(gè)塊的使用情況:

    在上述結(jié)構(gòu)中,sequenceNum是記錄在該分區(qū)內(nèi)此塊的使用順序,在文件系統(tǒng)分區(qū)中是全局遞增的,主要在垃圾回收算法中用于判斷數(shù)據(jù)有效性;deletion表示該塊內(nèi)被刪除的頁(yè)數(shù);needsRetiring指使用過(guò)程中讀寫(xiě)或者擦除出錯(cuò),不能繼續(xù)被讀寫(xiě)和使用。在YAFFS2文件系統(tǒng)中,NAND Flash每頁(yè)的OOB區(qū)域用來(lái)存儲(chǔ)文件和頁(yè)使用信息,如文件系統(tǒng)結(jié)構(gòu)信息包括頁(yè)號(hào)、文件號(hào)、有效數(shù)據(jù)字節(jié)數(shù)等,以及該頁(yè)全部數(shù)據(jù)的ECC校驗(yàn)碼。比如頁(yè)大小為2 KB時(shí),其具體每個(gè)頁(yè)的數(shù)據(jù)存儲(chǔ)布局如表1所示。

    表1 數(shù)據(jù)存儲(chǔ)格式

    2.2 文件表示與管理

    從使用者的角度看,文件系統(tǒng)就是要實(shí)現(xiàn)文件的按名存取,即文件管理,其關(guān)鍵是文件的表示、組織和文件的索引、定位。文件的表示主要包括用于描述每個(gè)文件的各種屬性數(shù)據(jù)以及這些數(shù)據(jù)如何在設(shè)備上存儲(chǔ),而文件的定位主要涉及到如何索引存儲(chǔ)該文件數(shù)據(jù)的所有頁(yè)。

    在具體文件系統(tǒng)的實(shí)現(xiàn)中,文件的表示一般包括靜態(tài)存儲(chǔ)和動(dòng)態(tài)操作的數(shù)據(jù),實(shí)現(xiàn)對(duì)文件的組織管理,其中在設(shè)備上靜態(tài)存儲(chǔ)的數(shù)據(jù)主要有3種:文件描述信息,包括名字、數(shù)據(jù)長(zhǎng)度、存儲(chǔ)地址、創(chuàng)建者、訪(fǎng)問(wèn)權(quán)限、使用情況等;文件內(nèi)容本身的數(shù)據(jù);存儲(chǔ)空閑空間統(tǒng)計(jì)信息。而在內(nèi)存中動(dòng)態(tài)操作的數(shù)據(jù)管理信息主要有內(nèi)存文件描述信息、內(nèi)存文件系統(tǒng)分區(qū)信息等,在內(nèi)存中建立這些數(shù)據(jù)信息是為了提高文件系統(tǒng)運(yùn)行的效率和文件系統(tǒng)的各種性能。Linux操作系統(tǒng)在上層統(tǒng)一在虛擬文件系統(tǒng)VFS實(shí)現(xiàn)統(tǒng)一的接口,各個(gè)具體文件系統(tǒng)實(shí)現(xiàn)VFS定義的各個(gè)接口。在VFS層用struct inode統(tǒng)一描述各種文件系統(tǒng)中的文件,該結(jié)構(gòu)定義了各種文件的一些共同屬性信息,還包括了各種具體文件系統(tǒng)用于描述文件的各自私有的屬性信息,如EXT4文件系統(tǒng)的ext4_inode結(jié)構(gòu)。

    在YAFFS2文件系統(tǒng)中,F(xiàn)lash存儲(chǔ)器上并沒(méi)有定義和存儲(chǔ)這類(lèi)信息,它是通過(guò)在文件系統(tǒng)加載時(shí)掃描文件系統(tǒng)分區(qū),然后為設(shè)備上每個(gè)文件分別建立文件描述信息,即yaffs_Object結(jié)構(gòu)。在YAFFS2文件系統(tǒng)中,每個(gè)文件都用一個(gè)頁(yè)來(lái)存儲(chǔ)所有屬性信息,如名字、文件號(hào)、大小、父目錄的文件號(hào)、創(chuàng)建時(shí)間和用戶(hù)等,其描述結(jié)構(gòu)為yaffs_ObjectHeader,該對(duì)象主要是根據(jù)文件頭數(shù)據(jù)而創(chuàng)建的,當(dāng)掃描某個(gè)頁(yè)時(shí),先讀取該頁(yè)的OOB的標(biāo)志,從而判斷該頁(yè)數(shù)據(jù)是一個(gè)文件頭,如果是,就在內(nèi)存中新建一個(gè)文件對(duì)象,再在后面的讀取過(guò)程中將該文件數(shù)據(jù)所在頁(yè)號(hào)記錄到其variant域中,后面定位文件數(shù)據(jù)時(shí)會(huì)使用該對(duì)象[8]。NAND Flash每頁(yè)的OOB中存放的文件定位信息是用yaffs_PackdTags2Part結(jié)構(gòu)描述的,其具體組織如下:

    其中,objectId用于唯一標(biāo)識(shí)該文件的文件號(hào);chunKId表示文件的數(shù)據(jù)頁(yè)號(hào)。從這2個(gè)ID就知道文件系統(tǒng)分區(qū)中各個(gè)頁(yè)與各個(gè)文件的一一對(duì)應(yīng)關(guān)系。YAFFS2文件系統(tǒng)中定義了文件樹(shù)來(lái)記錄各個(gè)文件的各個(gè)設(shè)備頁(yè)號(hào),其文件樹(shù)的結(jié)構(gòu)如圖1所示。

    圖1 YAFFS2文件樹(shù)

    文件樹(shù)的最底層存放屬于該文件的所有設(shè)備頁(yè)號(hào),是16維數(shù)組,而其他層都是8維,存放下層的指針,每個(gè)文件需要的層數(shù)根據(jù)文件所占的頁(yè)數(shù)確定。例如:若文件的數(shù)據(jù)扇區(qū)數(shù)少于16×8個(gè),則總共只需2層便可。其結(jié)構(gòu)定義如下:

    在進(jìn)行文件數(shù)據(jù)讀寫(xiě)時(shí),根據(jù)文件名字找到文件對(duì)象yaffs_Object,然后得到文件樹(shù)結(jié)構(gòu)域variant,這樣就知道了該文件數(shù)據(jù)存放在Flash上的所有頁(yè)號(hào),然后調(diào)用底層驅(qū)動(dòng)讀寫(xiě)頁(yè)內(nèi)的數(shù)據(jù),在寫(xiě)文件時(shí),還要將新的扇區(qū)號(hào)更新到文件樹(shù)結(jié)構(gòu)中。

    3 改進(jìn)的YAFFS2文件系統(tǒng)

    YAFFS2是針對(duì)NAND Flash專(zhuān)門(mén)設(shè)計(jì)的文件系統(tǒng),它必須使用NAND Flash每頁(yè)的OOB區(qū)存儲(chǔ)文件系統(tǒng)信息,而NOR Flash、MMC卡等Flash存儲(chǔ)器上并沒(méi)有OOB區(qū),所以,YAFFS2不能在NOR Flash等上使用OOB區(qū)實(shí)現(xiàn)存儲(chǔ)器管理和文件管理;其次YAFFS2文件系統(tǒng)加載過(guò)程中需要讀文件系統(tǒng)分區(qū)每頁(yè)的OOB數(shù)據(jù),會(huì)導(dǎo)致加載時(shí)間隨NAND變大而加長(zhǎng)。

    針對(duì)這2個(gè)問(wèn)題,本文設(shè)計(jì)了一種新的文件節(jié)點(diǎn)存儲(chǔ)方式,將文件系統(tǒng)信息存放到Flash頁(yè)內(nèi),使得文件系統(tǒng)能正常運(yùn)行于NAND Flash,NOR Flash, MMC卡等Flash存儲(chǔ)器。

    3.1 文件屬性信息的存儲(chǔ)方式

    如前文所述,YAFFS2文件系統(tǒng)信息存放在NAND Flash上的OOB區(qū)域,其描述結(jié)構(gòu)為yaffs_ PackdTags2Part,改進(jìn)后使用下述的fat結(jié)構(gòu)描述,并且將每個(gè)塊內(nèi)的fat結(jié)構(gòu)統(tǒng)一存放在塊的前面2個(gè)數(shù)據(jù)頁(yè)中,而不再存放在OOB區(qū)內(nèi)。這樣在文件系統(tǒng)加載時(shí),只要讀取每個(gè)塊的前2個(gè)頁(yè)的數(shù)據(jù),減少了加載時(shí)間。

    該數(shù)據(jù)結(jié)構(gòu)中的inodeId用于唯一標(biāo)識(shí)分區(qū)內(nèi)某個(gè)文件的ID,serialNum在斷電保護(hù)實(shí)現(xiàn)中用于標(biāo)識(shí)數(shù)據(jù)存儲(chǔ)的先后順序,chunKIn Inode表示文件數(shù)據(jù)的第n個(gè)扇區(qū)號(hào),chunKInFlash表示存儲(chǔ)位置即頁(yè)號(hào)。從中可以看出,每個(gè)fat對(duì)象的大小是4 Byte,加載文件系統(tǒng)時(shí),通過(guò)讀取各個(gè)存儲(chǔ)塊起始處的fat對(duì)象,就可以知道每個(gè)扇區(qū)的數(shù)據(jù)所對(duì)應(yīng)的文件信息,為每個(gè)文件建立一個(gè)文件樹(shù)成員,用于記錄該文件數(shù)據(jù)的所有扇區(qū)。與YAFFS2原有的存儲(chǔ)方式相比較,重復(fù)存放在每個(gè)扇區(qū)的OOB區(qū)域的序列號(hào)和字節(jié)數(shù)信息就不再需要了,因?yàn)樾蛄刑?hào)是描述整個(gè)存儲(chǔ)塊的,每個(gè)存儲(chǔ)塊只需要記錄一次。而原有的字節(jié)數(shù)是用于記錄某個(gè)文件的最后一個(gè)扇區(qū)數(shù)據(jù)的字節(jié)數(shù),不適合存儲(chǔ)在每個(gè)扇區(qū)的OOB區(qū)域中,所以這個(gè)可以被優(yōu)化處理,改進(jìn)后在yaffs_Object結(jié)構(gòu)中增加描述信息,記錄存放某個(gè)文件的最有一個(gè)扇區(qū)的有效數(shù)據(jù)的字節(jié)數(shù)。如圖2描述了改進(jìn)后的Flash存儲(chǔ)器的每個(gè)塊存儲(chǔ)的數(shù)據(jù)信息,第1個(gè)頁(yè)存放的是序列號(hào)和該存儲(chǔ)塊的所有fat信息,其余各頁(yè)是數(shù)據(jù)區(qū),存儲(chǔ)文件內(nèi)容或文件屬性,而fat結(jié)構(gòu)包含了所有頁(yè)到文件的索引信息。

    圖2 Flash存儲(chǔ)塊

    當(dāng)需要分配空閑塊存儲(chǔ)數(shù)據(jù)時(shí),將文件系統(tǒng)當(dāng)前的序列號(hào)加1,記錄到新分配的空閑塊的開(kāi)始4 Byte,設(shè)置該塊為分配狀態(tài),第一個(gè)頁(yè)被用作存儲(chǔ)fat索引信息,從第2個(gè)頁(yè)開(kāi)始可以用于存儲(chǔ)文件數(shù)據(jù),分配和寫(xiě)入必須嚴(yán)格按照順序,當(dāng)文件系統(tǒng)將某文件的數(shù)據(jù)寫(xiě)入到某個(gè)頁(yè)時(shí),同時(shí)要構(gòu)造好相應(yīng)的fat索引結(jié)構(gòu),寫(xiě)入第1個(gè)頁(yè)的相應(yīng)位置。在實(shí)現(xiàn)中yaffs_AllocChunK()用于分配存儲(chǔ)頁(yè),在該分配算法中,首先從當(dāng)前分配狀態(tài)塊中分配頁(yè),若全部已分配,就從分區(qū)的空閑列表中找到一個(gè)空閑塊,繼續(xù)上述過(guò)程。在使用過(guò)一段時(shí)間后,系統(tǒng)中所有的空閑狀態(tài)的塊都是由垃圾回收而來(lái)的,所以合適的磨損平衡和垃圾回收策略[9]可以以類(lèi)似的概率處理分區(qū)中的各個(gè)存儲(chǔ)塊,從而均衡地使用各個(gè)存儲(chǔ)塊,這樣各存儲(chǔ)塊的扇區(qū)的擦寫(xiě)次數(shù)均勻,能有效地延長(zhǎng)存儲(chǔ)器的壽命。

    3.2 文件系統(tǒng)的加載過(guò)程

    改進(jìn)后,加載某個(gè)文件系統(tǒng)分區(qū)時(shí),其主要操作分2個(gè)步驟:首先,依次讀每個(gè)存儲(chǔ)塊開(kāi)始處的序列號(hào),其有效值范圍為0x1000-0xefffff00,還有一些特殊的值用于標(biāo)記特殊狀態(tài)的塊。序列號(hào)在斷電保護(hù)和垃圾回收過(guò)程中都會(huì)被用到;然后,將分區(qū)內(nèi)的所有存儲(chǔ)塊以其相應(yīng)的序列號(hào)進(jìn)行排序,依次讀取其數(shù)據(jù)并進(jìn)行分析處理,其主要流程如圖3所示。

    圖3 初始化加載流程

    每個(gè)存儲(chǔ)塊的第1個(gè)頁(yè)存儲(chǔ)了該塊所有頁(yè)的fat結(jié)構(gòu),每個(gè)fat實(shí)例是相應(yīng)存儲(chǔ)頁(yè)的索引信息,包含了其所屬文件信息,文件序列號(hào)等,當(dāng)某個(gè)fat對(duì)象中的文件頁(yè)號(hào)為0時(shí),標(biāo)識(shí)該fat索引的存儲(chǔ)頁(yè)存儲(chǔ)的是該文件的文件頭,獲得相應(yīng)的存儲(chǔ)頁(yè)號(hào),調(diào)用驅(qū)動(dòng)讀取文件頭信息,使用該文件頭構(gòu)造完整的文件屬性信息。當(dāng)文件頁(yè)號(hào)為其他值時(shí),則表明其索引的存儲(chǔ)頁(yè)存放的是文件數(shù)據(jù),記錄該頁(yè)號(hào)到文件的索引樹(shù)中,用于后面對(duì)文件數(shù)據(jù)的讀寫(xiě)操作。當(dāng)所有的存儲(chǔ)塊處理完之后,文件系統(tǒng)的加載過(guò)程就基本完成了,分區(qū)上所有文件和目錄的信息都被完整的建立了,后面通過(guò)文件系統(tǒng)提供的接口對(duì)文件的讀、寫(xiě)與管理等操作是基于這些信息實(shí)現(xiàn)的。

    3.3 斷電保護(hù)機(jī)制

    便攜式電子設(shè)備使用過(guò)程中,如果突然斷電,且此時(shí)有應(yīng)用在進(jìn)行文件的更新,就可能導(dǎo)致操作中止,文件系統(tǒng)信息由于沒(méi)有同步地進(jìn)行更新而不完整,進(jìn)而導(dǎo)致重啟系統(tǒng)加載分區(qū)時(shí)失敗。

    所以,YAFFS2文件系統(tǒng)在實(shí)現(xiàn)各種文件操作時(shí),就要考慮到各種文件操作的原子性,其實(shí)現(xiàn)方法主要就是存儲(chǔ)一些冗余信息保證文件系統(tǒng)的完整性。例如,在實(shí)現(xiàn)文件刪除操作時(shí),為每個(gè)分區(qū)定義一個(gè)delete目錄,當(dāng)刪除某個(gè)文件時(shí),僅修改目錄樹(shù)結(jié)構(gòu),使該文件掛在該目錄下;當(dāng)需要更新文件的目錄信息和文件數(shù)據(jù)時(shí),只是將新的數(shù)據(jù)寫(xiě)入一個(gè)新的頁(yè),然后將原有數(shù)據(jù)頁(yè)的OOB的標(biāo)志位設(shè)置為無(wú)效。在更新文件數(shù)據(jù)時(shí),會(huì)同時(shí)更新頁(yè)的數(shù)據(jù)區(qū)和OOB區(qū),若在這個(gè)過(guò)程中任何時(shí)候斷電,就會(huì)導(dǎo)致最后寫(xiě)入的OOB區(qū)域數(shù)據(jù)不完整,該寫(xiě)入操作就不會(huì)破壞分區(qū)數(shù)據(jù)的完整性,下次加載時(shí),原有數(shù)據(jù)會(huì)被作為有效數(shù)據(jù)處理,不完整的新數(shù)據(jù)會(huì)被當(dāng)作無(wú)效數(shù)據(jù)頁(yè)被丟棄掉。

    改進(jìn)后,當(dāng)要改變文件的目錄樹(shù)結(jié)構(gòu)時(shí),會(huì)為該文件寫(xiě)入新的文件頭,其中包含了該文件新的父目錄的ID等目錄結(jié)構(gòu)信息,在寫(xiě)入時(shí),并不是更新原有的數(shù)據(jù)頁(yè),而是寫(xiě)入一個(gè)新的數(shù)據(jù)頁(yè),由于寫(xiě)任何數(shù)據(jù)頁(yè)都需要構(gòu)造fat索引結(jié)構(gòu),并將該索引結(jié)構(gòu)寫(xiě)入同一個(gè)存儲(chǔ)塊的第1頁(yè),這樣就存在2個(gè)寫(xiě)操作,且一個(gè)是寫(xiě)入第1頁(yè),一個(gè)是寫(xiě)入另外一個(gè)頁(yè),當(dāng)在這2個(gè)頁(yè)的寫(xiě)操作中間意外斷電時(shí),重啟后加載文件系統(tǒng)時(shí),會(huì)發(fā)現(xiàn)2個(gè)存儲(chǔ)頁(yè)包含相同相同的文件頭信息。所以必須進(jìn)行特別的處理來(lái)保證斷電保護(hù)性能,在實(shí)現(xiàn)中,為了能從這2個(gè)沖突的存儲(chǔ)頁(yè)中區(qū)分開(kāi)來(lái),就需要用到上述的每個(gè)fat結(jié)構(gòu)中的序列號(hào)和每個(gè)存儲(chǔ)塊起始處的序列號(hào),其設(shè)計(jì)原理如圖4所示。當(dāng)需要將某存儲(chǔ)塊中比較新的數(shù)據(jù)寫(xiě)入新的存儲(chǔ)頁(yè)時(shí),就將相應(yīng)的fat結(jié)構(gòu)中的序列號(hào)遞增,并隨之寫(xiě)進(jìn)存儲(chǔ)塊中,若這時(shí)意外斷電,就可以根據(jù)兩個(gè)存儲(chǔ)頁(yè)對(duì)應(yīng)的fat結(jié)構(gòu)中的序列號(hào)來(lái)判斷哪個(gè)是原有數(shù)據(jù),哪個(gè)是新的數(shù)據(jù),從而保證文件系統(tǒng)的完整性;如果只是更新數(shù)據(jù)頁(yè),fat結(jié)構(gòu)中的序列號(hào)不用遞增,因?yàn)榧词挂馔鈹嚯?,重啟加載時(shí),根據(jù)存儲(chǔ)塊的序列號(hào)就可以知道哪個(gè)是最后寫(xiě)入的有效存儲(chǔ)頁(yè),哪個(gè)是舊的需要更新的數(shù)據(jù)頁(yè),這是因?yàn)槊總€(gè)存儲(chǔ)塊的序列號(hào)代表了其上面存儲(chǔ)的文件的先后順序,它是文件系統(tǒng)在分配塊時(shí)計(jì)算并寫(xiě)入的。

    圖4 斷電保護(hù)原理

    3.4 垃圾回收策略

    使用過(guò)程中,修改文件內(nèi)容、刪除文件會(huì)使得Flash存儲(chǔ)塊的部分扇區(qū)不再包含有效的數(shù)據(jù),F(xiàn)lash存儲(chǔ)器的特性決定了這些區(qū)域在整個(gè)塊被擦除之前不可重寫(xiě),將這些扇區(qū)所在的塊內(nèi)的有效數(shù)據(jù)重新存儲(chǔ)然后擦除該塊,并將其再次作為空閑塊,這個(gè)過(guò)程便稱(chēng)為垃圾回收。

    在現(xiàn)有YAFFS2文件系統(tǒng)的垃圾回收處理過(guò)程中,當(dāng)文件系統(tǒng)需要向Flash存儲(chǔ)器中寫(xiě)入數(shù)據(jù)時(shí),先檢查分區(qū)內(nèi)的空閑擦除塊的個(gè)數(shù),若低于設(shè)定的文件系統(tǒng)的保留值,便啟動(dòng)垃圾回收線(xiàn)程,調(diào)用垃圾回收處理函數(shù)找出無(wú)效數(shù)據(jù)頁(yè)最多的存儲(chǔ)塊,然后將該存儲(chǔ)塊內(nèi)的所有有效數(shù)據(jù)寫(xiě)入當(dāng)前正在使用的塊,最后調(diào)用驅(qū)動(dòng)將該存儲(chǔ)塊擦除,供以后分配使用[10]。

    在改進(jìn)后的垃圾回收處理過(guò)程中,垃圾回收操作的實(shí)現(xiàn)是用一個(gè)線(xiàn)程Garbage Collection線(xiàn)程實(shí)現(xiàn)的,并將它放入一個(gè)信號(hào)量的等待隊(duì)列中,或當(dāng)需要向設(shè)備寫(xiě)數(shù)據(jù)時(shí),或者每隔一段設(shè)置好的時(shí)間,去喚醒該線(xiàn)程。該線(xiàn)程首先統(tǒng)計(jì)分區(qū)內(nèi)空閑存儲(chǔ)塊的數(shù)量,決定是否要啟動(dòng)回收處理,如果空閑塊數(shù)少于預(yù)設(shè)的保留塊數(shù),則從分區(qū)的處于使用狀態(tài)的列表中找出無(wú)效數(shù)據(jù)最多的存儲(chǔ)塊,并進(jìn)行回收,否則從整個(gè)分區(qū)中找到最臟塊進(jìn)行回收。

    回收的主要過(guò)程如圖5所示,回收過(guò)程中找最臟塊的2個(gè)策略包括無(wú)效數(shù)據(jù)扇區(qū)最多和序列號(hào)最小,即效率原則和均衡原則結(jié)合使用,達(dá)到存儲(chǔ)塊的均衡使用。從圖5中可以看出,主要根據(jù)每個(gè)存儲(chǔ)塊開(kāi)始4 Byte序列號(hào)知道存儲(chǔ)塊的使用順序,序列號(hào)越大表明越早被使用,從而垃圾回收處理應(yīng)該越早地回收該存儲(chǔ)塊,不會(huì)導(dǎo)致某個(gè)塊對(duì)應(yīng)的文件數(shù)據(jù)被頻繁的更改而重復(fù)擦寫(xiě),一定程度上保證了存儲(chǔ)塊的均衡使用。當(dāng)回收某個(gè)臟塊時(shí),將該存儲(chǔ)塊中所有有效數(shù)據(jù)讀出,復(fù)制到分區(qū)的分配存儲(chǔ)塊,對(duì)于每個(gè)扇區(qū)數(shù)據(jù)都要構(gòu)造相應(yīng)的fat索引結(jié)構(gòu),如文件頁(yè)號(hào)、Flash頁(yè)號(hào)等,并將其順序地寫(xiě)入相應(yīng)存儲(chǔ)塊的第一個(gè)頁(yè),這樣就完成了數(shù)據(jù)的復(fù)制。最后將原來(lái)的臟塊加入回收列表,觸發(fā)驅(qū)動(dòng)的擦除操作,將整個(gè)塊擦除,并標(biāo)記該塊為空閑塊,加入到分區(qū)的空閑列表,供后面分配使用。

    圖5 垃圾回收算法

    4 性能測(cè)試

    下面基于一款數(shù)字電視平臺(tái)對(duì)文件系統(tǒng)的安裝時(shí)間,讀寫(xiě)速度和損耗平衡性能進(jìn)行測(cè)試和分析,該硬件平臺(tái)同時(shí)支持NAND、NOR存儲(chǔ)器并有MMC控制器支持MMC卡,由于它們的存儲(chǔ)空間不同,在下面的測(cè)試中統(tǒng)一格式化一個(gè)8 MB的分區(qū),并進(jìn)行相應(yīng)測(cè)試。

    4.1 文件系統(tǒng)加載時(shí)間

    YAFFS2文件系統(tǒng)分區(qū)加載時(shí),讀取每個(gè)存儲(chǔ)塊的狀態(tài)信息,然后根據(jù)其狀態(tài)分別讀取文件系統(tǒng)信息,對(duì)于原有的YAFFS2,是通過(guò)讀存儲(chǔ)塊的每個(gè)頁(yè)的OOB區(qū)域,而改進(jìn)后的YAFFS2只是讀取每個(gè)存儲(chǔ)塊的第一個(gè)頁(yè),它包含了當(dāng)前塊所有頁(yè)的索引fat結(jié)構(gòu)。在測(cè)試過(guò)程中,選擇一些隨機(jī)文件做一個(gè)YAFFS2鏡像文件,通過(guò)各自的格式化工具寫(xiě)到存儲(chǔ)分區(qū)上,然后加載相應(yīng)的分區(qū),對(duì)于NOR Flash和MMC卡,分別采用各自的格式化工具格式化為JFFS2和FAT32文件系統(tǒng)[11]。

    測(cè)試的加載時(shí)間如表2所示,從中可以看出,對(duì)于NAND分區(qū),改進(jìn)后的安裝時(shí)間減少約25%;對(duì)于NOR分區(qū),加載時(shí)間明顯減少,這是因?yàn)镴FFS2文件系統(tǒng)加載時(shí)需要以字節(jié)為單位掃描解析每個(gè)存儲(chǔ)頁(yè),是JFFS2的主要缺點(diǎn);而對(duì)于MMC分區(qū),F(xiàn)AT32只需要讀取fat表就完成加載,所以時(shí)間明顯減少。

    表2 分區(qū)加載時(shí)間 s

    4.2 文件讀寫(xiě)速度

    安裝文件系統(tǒng)后,分別進(jìn)行文件讀、寫(xiě)、刪除操作的性能測(cè)試,其中讀速度是通過(guò)將文件拷貝到系統(tǒng)的tmpfs分區(qū)得到的,寫(xiě)速度是通過(guò)將文件從tmpfs分區(qū)寫(xiě)入YAFFS2分區(qū)。讀寫(xiě)tmpfs分區(qū)的時(shí)間可以忽略,所以測(cè)試數(shù)據(jù)基本等于文件的讀寫(xiě)速度。

    測(cè)試時(shí)使用tim e命令來(lái)記錄讀寫(xiě)100 KB文件的時(shí)間,改進(jìn)前后的YAFFS2測(cè)試結(jié)果如表3和表4所示。

    表3 改進(jìn)前文件存取時(shí)間 s

    表4 改進(jìn)后文件存取時(shí)間 s

    測(cè)試結(jié)果表明,對(duì)于NAND存儲(chǔ)器,改進(jìn)前后文件的讀寫(xiě)速度差別很小,而NOR,MMC卡的讀寫(xiě)速度與NAND的差別大。這是因?yàn)槲募x寫(xiě)速度主要由存儲(chǔ)器驅(qū)動(dòng)的讀寫(xiě)速度決定,這些存儲(chǔ)器的讀寫(xiě)速度差別大,對(duì)于文件刪除操作,其速度相似是由于在實(shí)現(xiàn)刪除操作時(shí),只是在文件系統(tǒng)信息中做一些標(biāo)志的更新,不需要同步寫(xiě)入存儲(chǔ)器,所以其速度快,即使文件大小不同,其刪除速度也較為接近。

    4.3 損耗平衡性能

    由于Flash存儲(chǔ)器的每個(gè)塊的擦除次數(shù)是有限的,因此應(yīng)可能地均衡擦除分區(qū)的每個(gè)存儲(chǔ)塊,延長(zhǎng)存儲(chǔ)器的整體使用壽命。為了統(tǒng)計(jì)每個(gè)存儲(chǔ)塊的擦除次數(shù),使用一個(gè)全局列表來(lái)記錄每個(gè)塊的擦除次數(shù),并在驅(qū)動(dòng)的擦除操作中更新該列表,當(dāng)擦除某個(gè)塊時(shí),就將相應(yīng)的計(jì)數(shù)遞增。然后,通過(guò)文件拷貝和刪除命令,對(duì)測(cè)試分區(qū)上的文件進(jìn)行大量的改寫(xiě)操作,并做一些壓力測(cè)試。最后統(tǒng)計(jì)得出各存儲(chǔ)塊的擦除次數(shù)分布,實(shí)際測(cè)試結(jié)果表明,分區(qū)上的各存儲(chǔ)塊被均衡地使用,垃圾回收操作的2個(gè)回收策略達(dá)到了預(yù)期的效果。

    5 結(jié)束語(yǔ)

    本文從Flash存儲(chǔ)器管理、文件的創(chuàng)建和讀寫(xiě)的實(shí)現(xiàn)分析YAFFS2文件系統(tǒng)的設(shè)計(jì)原理,提出一種新的存儲(chǔ)方式,分別從文件系統(tǒng)安裝過(guò)程、垃圾回收、掉電保護(hù)機(jī)制方面對(duì)YAFFS2進(jìn)行改進(jìn),并設(shè)計(jì)文件系統(tǒng)鏡像格式化工具。在系統(tǒng)平臺(tái)上進(jìn)行了安裝時(shí)間、讀寫(xiě)速度和損耗平衡性能的測(cè)試,結(jié)果表明改進(jìn)的文件系統(tǒng)安裝時(shí)間有所減少,并能使Flash各存儲(chǔ)扇區(qū)被均衡使用。但由于各種Flash存儲(chǔ)器每個(gè)塊的存儲(chǔ)頁(yè)數(shù)差別較大,可能會(huì)導(dǎo)致fat結(jié)構(gòu)未必能全部存儲(chǔ)在首頁(yè),因此下一步將針對(duì)一些特殊的Flash存儲(chǔ)器要求改進(jìn)fat結(jié)構(gòu),使其具有更廣泛的適用性。

    [1] W okey.YAFFS NAND Flash Filesystem[EB/OL].(2007-03-05).http://www.aleph1.co.uk/yaffs/.

    [2] A leph One Ltd..Yaffs2 Specification[EB/OL].(2007-06-08).http://www.yaffs.net/yaffs-2-specification.

    [3] 毛德操,胡希明.Linux內(nèi)核源代碼情景分析[M].杭州:浙江大學(xué)出版社,2001.

    [4] 郭玉東.Linux操作系統(tǒng)結(jié)構(gòu)分析[M].西安:西安電子科技大學(xué)出版社,2004.

    [5] Manning C.Flash File System Considerations[EB/OL].(2009-02-03).http://www.yaffs.net/sites/yaffs.net.

    [6] 陳莉君.Linux操作系統(tǒng)內(nèi)核分析[M].北京:人民郵電出版社,2003.

    [7] Manning C.How YAFFSWorks[EB/OL].(2010-09-05). http://www.yaffs.net/sites/yaffs.net/files/How Yaffs W orks.pdf.

    [8] Hoog A.Android YAFFS2 Support[EB/OL].(2014-10-08). http://www.basistech.com/wp-content/uploads/2014/04.

    [9] Zimmermann C.Forensic Analysis of YAFFS2[EB/OL].(2012-04-09).http://aleph1.co.uk/gitweb?p=yaffs2.git.

    [10] Pooters I.Yaffs Object Header[EB/OL].(2010-06-08). http://sandbox.dfrws.org/2011/fox-it/DFRWS2011_results/ Report.

    [11] 宋 聿,蔣烈輝,董衛(wèi)宇,等.一種獨(dú)立式I/O虛擬化方法研究[J].計(jì)算機(jī)工程,2014,40(10):81-85.

    編輯 金胡考

    Research and ImProvement of YAFFS2 File System Based on Em bedded Linux

    ZHU Shaoying,ZHA Qipeng
    (The 32nd Research Institute of China Electronics Technology Group Corporation,Shanghai 200233,China)

    YAFFS2 file system is NAND Flash only file system.This paper analyzes the design principle of YAFFS2 based on embedded Linux in two aspects of Flash storage and filemanagement.Aiming at two limitations of long mount time and applicable only on NAND Flash,it proposes a new layout of file system key data and structure,and improves YAFFS2 in aspects of storage management,file system initialization,garbage collection and power off protection to reduce mount time and to make it applicable on other Flash.Test result show s that it can reducemount time by 25%and balance erasure of every block as expected.

    YAFFS2 file system;NAND Flash;embedded Linux system;garbage collection strategy;wear-leveling

    朱紹英,查啟鵬.基于嵌入式Linux的YAFFS2文件系統(tǒng)研究與改進(jìn)[J].計(jì)算機(jī)工程,2015,41(9):292-297,302.

    英文引用格式:Zhu Shaoying,Zha Qipeng.Research and Improvement of YAFFS2 File System Based on Embedded Linux[J].Computer Engineering,2015,41(9):292-297,302.

    1000-3428(2015)09-0292-06

    A

    TP391

    10.3969/j.issn.1000-3428.2015.09.054

    朱紹英(1983-),女,工程師,主研方向:嵌入式Linux系統(tǒng);查啟鵬,工程師。

    2015-04-07

    2015-05-19 E-m ail:zhushaoying181@163.com

    猜你喜歡
    序列號(hào)空閑扇區(qū)
    恩賜
    詩(shī)選刊(2023年7期)2023-07-21 07:03:38
    分階段調(diào)整增加扇區(qū)通行能力策略
    南北橋(2022年2期)2022-05-31 04:28:07
    “鳥(niǎo)”字謎
    小讀者之友(2019年9期)2019-09-10 07:22:44
    recALL
    U盤(pán)故障排除經(jīng)驗(yàn)談
    彪悍的“寵”生,不需要解釋
    基于貝葉斯估計(jì)的短時(shí)空域扇區(qū)交通流量預(yù)測(cè)
    WLAN和LTE交通規(guī)則
    CHIP新電腦(2016年3期)2016-03-10 14:09:48
    重建分區(qū)表與FAT32_DBR研究與實(shí)現(xiàn)
    PP助手教你辨別翻新iPhone5小白不再中招
    亚洲精品国产色婷婷电影| 国产黄频视频在线观看| 国产成人a区在线观看| 美女cb高潮喷水在线观看| 亚洲国产欧美在线一区| 亚洲精品亚洲一区二区| 国产探花极品一区二区| 亚洲国产成人一精品久久久| 亚洲国产最新在线播放| 午夜激情久久久久久久| 汤姆久久久久久久影院中文字幕| 免费大片黄手机在线观看| 尤物成人国产欧美一区二区三区| 久久久久网色| 国产精品精品国产色婷婷| 国产精品av视频在线免费观看| 国产免费福利视频在线观看| 日韩成人伦理影院| 亚洲国产精品国产精品| 国产黄色视频一区二区在线观看| 天天躁日日操中文字幕| 丰满人妻一区二区三区视频av| 亚洲欧美日韩无卡精品| 国产精品偷伦视频观看了| 亚洲精品久久久久久婷婷小说| 内射极品少妇av片p| 成人鲁丝片一二三区免费| 亚洲国产欧美人成| 久久久久久国产a免费观看| 啦啦啦在线观看免费高清www| 欧美日韩在线观看h| 我的老师免费观看完整版| 天堂中文最新版在线下载 | 91狼人影院| 人人妻人人看人人澡| 乱码一卡2卡4卡精品| 国产高清有码在线观看视频| 天天躁夜夜躁狠狠久久av| 国产淫语在线视频| 免费黄频网站在线观看国产| 新久久久久国产一级毛片| 亚洲色图综合在线观看| 免费电影在线观看免费观看| 最新中文字幕久久久久| 男的添女的下面高潮视频| 在线a可以看的网站| 99视频精品全部免费 在线| 国产有黄有色有爽视频| 精品少妇黑人巨大在线播放| 日韩电影二区| 国产探花在线观看一区二区| 亚洲美女搞黄在线观看| 麻豆乱淫一区二区| 精品人妻熟女av久视频| 国产精品国产三级国产专区5o| videossex国产| 日本午夜av视频| 亚洲最大成人中文| 搞女人的毛片| 黄色欧美视频在线观看| 色视频www国产| 一本一本综合久久| 91精品伊人久久大香线蕉| 丰满乱子伦码专区| 亚洲av男天堂| 精品人妻视频免费看| 制服丝袜香蕉在线| 成年女人在线观看亚洲视频 | kizo精华| 国产大屁股一区二区在线视频| 国产69精品久久久久777片| 色婷婷久久久亚洲欧美| 午夜福利视频精品| 听说在线观看完整版免费高清| 亚洲最大成人中文| 久久国内精品自在自线图片| av在线播放精品| 狂野欧美激情性xxxx在线观看| 99久久精品热视频| 欧美亚洲 丝袜 人妻 在线| 亚洲欧美精品自产自拍| 国产成人一区二区在线| 国产淫语在线视频| 亚洲精品乱码久久久v下载方式| 免费在线观看成人毛片| 亚洲欧美日韩另类电影网站 | 我的老师免费观看完整版| 特级一级黄色大片| 99热这里只有是精品50| 亚洲天堂国产精品一区在线| tube8黄色片| 久久精品国产鲁丝片午夜精品| 亚洲精品456在线播放app| 香蕉精品网在线| 亚洲国产精品国产精品| 又爽又黄无遮挡网站| 嫩草影院入口| 国产视频首页在线观看| 国产一区亚洲一区在线观看| 国产亚洲午夜精品一区二区久久 | 久久久久久久国产电影| 午夜老司机福利剧场| 啦啦啦中文免费视频观看日本| 精品久久久久久久久av| 欧美亚洲 丝袜 人妻 在线| 亚洲欧美日韩无卡精品| 精品久久久久久电影网| 色吧在线观看| 少妇人妻久久综合中文| 欧美bdsm另类| 五月伊人婷婷丁香| 欧美日韩视频精品一区| 九九久久精品国产亚洲av麻豆| 爱豆传媒免费全集在线观看| 欧美国产精品一级二级三级 | 美女xxoo啪啪120秒动态图| 欧美另类一区| 青青草视频在线视频观看| 69人妻影院| 视频中文字幕在线观看| 欧美国产精品一级二级三级 | 国产高清有码在线观看视频| 天美传媒精品一区二区| 啦啦啦中文免费视频观看日本| 视频中文字幕在线观看| 久久综合国产亚洲精品| 国产高清国产精品国产三级 | 国产精品久久久久久精品电影| 国产黄色免费在线视频| 熟女电影av网| .国产精品久久| 白带黄色成豆腐渣| 精品少妇黑人巨大在线播放| 欧美老熟妇乱子伦牲交| 另类亚洲欧美激情| 国产在线男女| 国产在线男女| 日韩电影二区| 日韩视频在线欧美| 国产色婷婷99| 精品一区二区三卡| 男女无遮挡免费网站观看| 黄色欧美视频在线观看| 国产精品麻豆人妻色哟哟久久| 国产综合懂色| 久久精品熟女亚洲av麻豆精品| 免费黄频网站在线观看国产| 精品视频人人做人人爽| 日韩国内少妇激情av| 国产午夜福利久久久久久| 欧美日韩综合久久久久久| 成人高潮视频无遮挡免费网站| 国产精品国产av在线观看| 伦理电影大哥的女人| 国内精品美女久久久久久| 亚洲天堂av无毛| av播播在线观看一区| 国产精品无大码| 国产欧美另类精品又又久久亚洲欧美| 国产亚洲午夜精品一区二区久久 | 婷婷色av中文字幕| 免费观看性生交大片5| 超碰av人人做人人爽久久| 一级二级三级毛片免费看| 最近手机中文字幕大全| 搞女人的毛片| 观看免费一级毛片| 国产免费又黄又爽又色| 看黄色毛片网站| 尾随美女入室| 少妇高潮的动态图| 日韩av在线免费看完整版不卡| 99久久精品热视频| 少妇裸体淫交视频免费看高清| 欧美激情在线99| 国产在视频线精品| 亚洲精品成人av观看孕妇| 亚洲精品中文字幕在线视频 | 少妇高潮的动态图| 久久久亚洲精品成人影院| 国产一区二区三区av在线| 日日啪夜夜撸| 国产永久视频网站| 亚洲av国产av综合av卡| av免费在线看不卡| 黄色怎么调成土黄色| 一级二级三级毛片免费看| 69人妻影院| 国语对白做爰xxxⅹ性视频网站| 日韩亚洲欧美综合| 午夜激情福利司机影院| 亚洲国产成人一精品久久久| 真实男女啪啪啪动态图| 少妇的逼水好多| 国产又色又爽无遮挡免| 国产精品一区二区在线观看99| 两个人的视频大全免费| 中文字幕av成人在线电影| 久久99精品国语久久久| 美女主播在线视频| 99热网站在线观看| 国产国拍精品亚洲av在线观看| 国产高清国产精品国产三级 | 18禁裸乳无遮挡动漫免费视频 | 亚洲图色成人| 国产成人精品一,二区| 午夜视频国产福利| 小蜜桃在线观看免费完整版高清| 91狼人影院| 国产白丝娇喘喷水9色精品| 人体艺术视频欧美日本| 欧美精品一区二区大全| 国产亚洲5aaaaa淫片| 国产一区二区在线观看日韩| 97在线视频观看| 国产亚洲精品久久久com| 国产爽快片一区二区三区| av线在线观看网站| 午夜视频国产福利| 国产淫语在线视频| 成人亚洲精品一区在线观看 | 男女那种视频在线观看| 在线观看一区二区三区激情| 少妇的逼水好多| 成人免费观看视频高清| 国产精品偷伦视频观看了| 亚洲内射少妇av| 亚洲精品国产av成人精品| 美女高潮的动态| 男女那种视频在线观看| 99re6热这里在线精品视频| 边亲边吃奶的免费视频| 99热网站在线观看| 精品少妇久久久久久888优播| 亚洲精品国产av成人精品| 91久久精品国产一区二区成人| 18禁裸乳无遮挡免费网站照片| 国产亚洲一区二区精品| 国产又色又爽无遮挡免| 在线a可以看的网站| 看非洲黑人一级黄片| 久久久精品欧美日韩精品| 亚洲国产色片| 青春草国产在线视频| 晚上一个人看的免费电影| 成人综合一区亚洲| 伦理电影大哥的女人| 亚洲av国产av综合av卡| 菩萨蛮人人尽说江南好唐韦庄| 国产高清有码在线观看视频| 国产69精品久久久久777片| 赤兔流量卡办理| 人人妻人人澡人人爽人人夜夜| 亚洲av国产av综合av卡| 亚洲国产欧美在线一区| 欧美另类一区| 一区二区三区乱码不卡18| 如何舔出高潮| 免费看不卡的av| 日韩av不卡免费在线播放| 精品午夜福利在线看| 一区二区三区四区激情视频| 国产亚洲av嫩草精品影院| 日本一二三区视频观看| 久久精品久久久久久久性| 国产精品人妻久久久久久| 亚洲av欧美aⅴ国产| 精品一区二区免费观看| 成人国产av品久久久| 久久6这里有精品| 亚洲精品第二区| 赤兔流量卡办理| 成人综合一区亚洲| 黄色配什么色好看| 夜夜看夜夜爽夜夜摸| 日日啪夜夜撸| 97超视频在线观看视频| 日韩成人av中文字幕在线观看| 国产精品嫩草影院av在线观看| 男人狂女人下面高潮的视频| 欧美一级a爱片免费观看看| 久久精品国产亚洲av涩爱| 两个人的视频大全免费| 久久精品久久久久久噜噜老黄| 欧美精品国产亚洲| 午夜福利视频精品| 免费在线观看成人毛片| 又黄又爽又刺激的免费视频.| 十八禁网站网址无遮挡 | 国产成人免费无遮挡视频| 51国产日韩欧美| 观看免费一级毛片| 亚洲国产日韩一区二区| 精品熟女少妇av免费看| 我的老师免费观看完整版| 少妇人妻久久综合中文| 97热精品久久久久久| tube8黄色片| 欧美xxⅹ黑人| 亚洲熟女精品中文字幕| 高清日韩中文字幕在线| 欧美另类一区| 午夜爱爱视频在线播放| 久热这里只有精品99| 亚洲一区二区三区欧美精品 | 久久久久性生活片| 国产成人a区在线观看| 国产午夜福利久久久久久| 国产成人精品婷婷| 黄色视频在线播放观看不卡| 成人欧美大片| 国产av码专区亚洲av| 一级毛片黄色毛片免费观看视频| 欧美精品一区二区大全| 久久久成人免费电影| 欧美激情在线99| 久久久久久久大尺度免费视频| 日韩成人伦理影院| 黄色日韩在线| 在线a可以看的网站| 看免费成人av毛片| 国产一区二区三区av在线| 免费电影在线观看免费观看| 简卡轻食公司| 黄色欧美视频在线观看| 美女脱内裤让男人舔精品视频| 日韩制服骚丝袜av| av国产久精品久网站免费入址| 极品少妇高潮喷水抽搐| 国产免费福利视频在线观看| 精品久久久久久久久av| 久久人人爽人人片av| 大又大粗又爽又黄少妇毛片口| 女人久久www免费人成看片| 精华霜和精华液先用哪个| 少妇裸体淫交视频免费看高清| 亚洲精品第二区| 亚洲精华国产精华液的使用体验| 亚洲精品亚洲一区二区| 国产一区二区亚洲精品在线观看| 熟女人妻精品中文字幕| 精品久久久久久久人妻蜜臀av| 欧美精品一区二区大全| 成人黄色视频免费在线看| 又粗又硬又长又爽又黄的视频| 97热精品久久久久久| 亚洲人成网站在线播| 99久久九九国产精品国产免费| 亚洲精品自拍成人| 啦啦啦在线观看免费高清www| 在线 av 中文字幕| 亚洲在线观看片| 人妻夜夜爽99麻豆av| 精品午夜福利在线看| 热99国产精品久久久久久7| 久久久久久久亚洲中文字幕| 亚洲电影在线观看av| 亚洲欧洲日产国产| 国产中年淑女户外野战色| 午夜免费观看性视频| 全区人妻精品视频| 日本午夜av视频| 亚洲欧美日韩卡通动漫| 久热久热在线精品观看| 日韩国内少妇激情av| 深夜a级毛片| 天美传媒精品一区二区| 成人二区视频| 人人妻人人爽人人添夜夜欢视频 | 少妇人妻 视频| 亚洲国产精品成人综合色| 中文字幕免费在线视频6| 亚洲色图av天堂| 亚洲美女视频黄频| 亚洲国产精品成人综合色| 久久久久久久国产电影| 看十八女毛片水多多多| 精华霜和精华液先用哪个| 观看美女的网站| 亚洲成人一二三区av| 内射极品少妇av片p| 精华霜和精华液先用哪个| 免费观看性生交大片5| 欧美极品一区二区三区四区| 色综合色国产| 国产日韩欧美亚洲二区| av福利片在线观看| 99热国产这里只有精品6| 一本久久精品| 午夜免费男女啪啪视频观看| 久久精品久久久久久噜噜老黄| 日韩免费高清中文字幕av| 国产在线男女| 国内精品美女久久久久久| 亚洲内射少妇av| 日韩一区二区三区影片| 九草在线视频观看| 色吧在线观看| 亚洲精品第二区| 一个人看的www免费观看视频| 国产成年人精品一区二区| 麻豆乱淫一区二区| 日本熟妇午夜| 亚洲一级一片aⅴ在线观看| 韩国av在线不卡| 亚洲成人av在线免费| 成人特级av手机在线观看| 精品99又大又爽又粗少妇毛片| 成人亚洲欧美一区二区av| 国产成人精品婷婷| 亚洲精品成人av观看孕妇| 精品少妇黑人巨大在线播放| 久久久成人免费电影| av女优亚洲男人天堂| 免费大片黄手机在线观看| 亚洲国产欧美在线一区| 性色av一级| 日本-黄色视频高清免费观看| 嫩草影院精品99| 欧美高清性xxxxhd video| av福利片在线观看| 国产亚洲午夜精品一区二区久久 | 夫妻性生交免费视频一级片| 国产黄a三级三级三级人| 成人鲁丝片一二三区免费| 99精国产麻豆久久婷婷| 成人漫画全彩无遮挡| 观看免费一级毛片| 亚洲欧美日韩无卡精品| 男插女下体视频免费在线播放| 精品久久久久久久人妻蜜臀av| 精品久久久久久久久亚洲| 亚洲精品日本国产第一区| 人人妻人人爽人人添夜夜欢视频 | 18禁在线无遮挡免费观看视频| 亚洲av中文字字幕乱码综合| 国产伦精品一区二区三区视频9| 最近的中文字幕免费完整| 久久鲁丝午夜福利片| 欧美精品国产亚洲| 免费黄色在线免费观看| 色5月婷婷丁香| 日韩制服骚丝袜av| 性色av一级| 欧美xxⅹ黑人| 久久精品久久精品一区二区三区| 久久精品熟女亚洲av麻豆精品| 久久99精品国语久久久| 国模一区二区三区四区视频| 80岁老熟妇乱子伦牲交| 久久精品久久久久久噜噜老黄| 麻豆成人午夜福利视频| 国产欧美亚洲国产| 欧美精品国产亚洲| 国产精品久久久久久久久免| 制服丝袜香蕉在线| 日本爱情动作片www.在线观看| 国产精品人妻久久久久久| 国产成年人精品一区二区| 国产久久久一区二区三区| 国产乱人视频| 久久6这里有精品| 男人添女人高潮全过程视频| 你懂的网址亚洲精品在线观看| 亚洲国产欧美人成| 狠狠精品人妻久久久久久综合| 国产免费福利视频在线观看| 美女xxoo啪啪120秒动态图| 国产久久久一区二区三区| 国产黄色免费在线视频| 成人无遮挡网站| 亚洲精华国产精华液的使用体验| 国产欧美另类精品又又久久亚洲欧美| 晚上一个人看的免费电影| 国产爱豆传媒在线观看| 一区二区三区乱码不卡18| 成人高潮视频无遮挡免费网站| 2018国产大陆天天弄谢| 极品教师在线视频| 我的老师免费观看完整版| 91久久精品国产一区二区成人| 18+在线观看网站| 七月丁香在线播放| 特大巨黑吊av在线直播| 国产永久视频网站| 男插女下体视频免费在线播放| 99re6热这里在线精品视频| 2018国产大陆天天弄谢| 欧美高清性xxxxhd video| 2021天堂中文幕一二区在线观| 插阴视频在线观看视频| 一个人看视频在线观看www免费| 精品久久国产蜜桃| 久久久久久久亚洲中文字幕| 欧美bdsm另类| 青春草国产在线视频| 天堂中文最新版在线下载 | 18禁在线无遮挡免费观看视频| 亚洲精华国产精华液的使用体验| 亚洲精品色激情综合| 高清毛片免费看| 国产 一区精品| 免费黄色在线免费观看| 在线看a的网站| 69av精品久久久久久| 久久亚洲国产成人精品v| 亚洲自偷自拍三级| 高清毛片免费看| 日韩欧美精品v在线| 狂野欧美白嫩少妇大欣赏| 亚洲电影在线观看av| videossex国产| 九草在线视频观看| 偷拍熟女少妇极品色| 精品久久久久久久人妻蜜臀av| 亚洲自偷自拍三级| videos熟女内射| 日本wwww免费看| 国产乱来视频区| 1000部很黄的大片| 18禁裸乳无遮挡免费网站照片| 黄色配什么色好看| 黄色怎么调成土黄色| 午夜免费男女啪啪视频观看| 97超视频在线观看视频| 成人亚洲精品av一区二区| 黄片无遮挡物在线观看| 韩国av在线不卡| www.色视频.com| 免费看日本二区| 黄片无遮挡物在线观看| 麻豆乱淫一区二区| 日韩av不卡免费在线播放| 国内精品宾馆在线| 国产有黄有色有爽视频| 亚洲国产精品成人综合色| 熟女av电影| 欧美少妇被猛烈插入视频| 国产成人精品一,二区| 色吧在线观看| 97在线人人人人妻| 少妇人妻久久综合中文| 国产乱人偷精品视频| 久久精品久久久久久噜噜老黄| a级毛色黄片| 亚洲精品日韩在线中文字幕| 久久久久精品性色| 国产午夜福利久久久久久| av国产久精品久网站免费入址| 大香蕉久久网| 在线观看美女被高潮喷水网站| 亚洲精品一二三| 久久久精品94久久精品| 成人一区二区视频在线观看| 精品午夜福利在线看| 久久久a久久爽久久v久久| 亚洲怡红院男人天堂| 美女视频免费永久观看网站| av在线观看视频网站免费| 少妇人妻精品综合一区二区| 人妻夜夜爽99麻豆av| 热99国产精品久久久久久7| 日本免费在线观看一区| 亚洲精品久久午夜乱码| 亚洲欧美成人精品一区二区| 国产精品三级大全| 夜夜爽夜夜爽视频| 黑人高潮一二区| 免费黄频网站在线观看国产| 精品一区二区免费观看| 亚洲人成网站在线播| 日韩中字成人| 欧美日韩亚洲高清精品| 成人黄色视频免费在线看| 日本黄色片子视频| 一区二区三区精品91| 日韩一区二区三区影片| 亚洲精品日韩在线中文字幕| 最近的中文字幕免费完整| 精品人妻偷拍中文字幕| 人妻少妇偷人精品九色| 天天躁夜夜躁狠狠久久av| 下体分泌物呈黄色| 国产高潮美女av| 人妻少妇偷人精品九色| 亚洲av欧美aⅴ国产| 国产精品一区www在线观看| 亚洲av欧美aⅴ国产| 国产 精品1| 国内少妇人妻偷人精品xxx网站| 久久久久精品性色| av网站免费在线观看视频| 水蜜桃什么品种好| 久久精品人妻少妇| 国产成人aa在线观看| 日韩av在线免费看完整版不卡| 免费黄色在线免费观看| 亚洲精品久久久久久婷婷小说| 51国产日韩欧美| 国产精品国产三级专区第一集| 国产精品国产三级国产专区5o| 免费看a级黄色片| 干丝袜人妻中文字幕| 日本色播在线视频| 欧美极品一区二区三区四区| 国内揄拍国产精品人妻在线| 日本三级黄在线观看| 亚洲国产精品专区欧美| 观看免费一级毛片| 在线观看三级黄色| 国产伦精品一区二区三区四那| 97在线视频观看| 小蜜桃在线观看免费完整版高清| 欧美性猛交╳xxx乱大交人| 久久精品国产亚洲av涩爱|