• <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小白不再中招
    91av网一区二区| 久久99热6这里只有精品| 又黄又爽又刺激的免费视频.| 国产免费男女视频| 国产精品福利在线免费观看| 一级二级三级毛片免费看| 国内精品宾馆在线| 国产av一区在线观看免费| 中国美白少妇内射xxxbb| 两个人的视频大全免费| 97人妻精品一区二区三区麻豆| 国产精品av视频在线免费观看| 中文字幕熟女人妻在线| 精品无人区乱码1区二区| 免费观看精品视频网站| 永久免费av网站大全| 免费电影在线观看免费观看| 美女内射精品一级片tv| 尤物成人国产欧美一区二区三区| 精品国产露脸久久av麻豆 | 日本黄大片高清| www.色视频.com| 日韩av在线大香蕉| 免费黄网站久久成人精品| 国产免费男女视频| av国产免费在线观看| av在线天堂中文字幕| 久99久视频精品免费| 亚洲在线自拍视频| 一区二区三区高清视频在线| 色综合站精品国产| 一级黄片播放器| 久久这里有精品视频免费| 寂寞人妻少妇视频99o| 国产精品av视频在线免费观看| 狠狠狠狠99中文字幕| 简卡轻食公司| 女的被弄到高潮叫床怎么办| 在线播放无遮挡| 亚洲,欧美,日韩| 日韩欧美 国产精品| 精品午夜福利在线看| 男人的好看免费观看在线视频| 别揉我奶头 嗯啊视频| 大香蕉久久网| 美女国产视频在线观看| 亚洲欧美日韩高清专用| av专区在线播放| 我的老师免费观看完整版| 国产精品人妻久久久影院| 亚洲va在线va天堂va国产| av线在线观看网站| 插逼视频在线观看| 少妇的逼好多水| 欧美色视频一区免费| 99热精品在线国产| 亚洲精品久久久久久婷婷小说 | 国产 一区 欧美 日韩| .国产精品久久| 精品久久久久久电影网 | 国产成人精品久久久久久| 国产精品,欧美在线| 国语对白做爰xxxⅹ性视频网站| 99久久人妻综合| 网址你懂的国产日韩在线| 26uuu在线亚洲综合色| 观看美女的网站| 亚洲一区高清亚洲精品| 免费无遮挡裸体视频| 欧美日韩精品成人综合77777| 观看美女的网站| 晚上一个人看的免费电影| 日本熟妇午夜| 99热网站在线观看| 亚洲欧美清纯卡通| 成人午夜精彩视频在线观看| 国产午夜精品久久久久久一区二区三区| 成人漫画全彩无遮挡| 国产乱来视频区| 中国美白少妇内射xxxbb| 国产精品无大码| 亚洲av一区综合| 蜜桃亚洲精品一区二区三区| 中文亚洲av片在线观看爽| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 在线观看一区二区三区| 亚洲国产最新在线播放| 午夜精品一区二区三区免费看| 国产成人精品久久久久久| 久久精品影院6| 国产精品一区www在线观看| 久久这里有精品视频免费| 波多野结衣高清无吗| 久久综合国产亚洲精品| 午夜福利成人在线免费观看| 国产免费福利视频在线观看| 噜噜噜噜噜久久久久久91| 日韩一区二区三区影片| 女人久久www免费人成看片 | 精品久久久久久久人妻蜜臀av| 91午夜精品亚洲一区二区三区| 九九热线精品视视频播放| a级毛色黄片| 国产探花极品一区二区| 99久久中文字幕三级久久日本| videossex国产| 久久久a久久爽久久v久久| 成人毛片60女人毛片免费| 亚洲国产欧美人成| 特大巨黑吊av在线直播| 国内精品美女久久久久久| АⅤ资源中文在线天堂| 午夜爱爱视频在线播放| 精品少妇黑人巨大在线播放 | 黄色欧美视频在线观看| 欧美日韩在线观看h| 免费搜索国产男女视频| 久久这里有精品视频免费| 国产av在哪里看| 日日干狠狠操夜夜爽| 国产av一区在线观看免费| 在线a可以看的网站| 亚洲精品日韩在线中文字幕| 久久精品国产自在天天线| 国产精品三级大全| 亚洲欧美清纯卡通| 丝袜喷水一区| 久久精品91蜜桃| 日韩制服骚丝袜av| 嫩草影院入口| 超碰97精品在线观看| 秋霞伦理黄片| 熟女电影av网| 国产伦精品一区二区三区视频9| 激情 狠狠 欧美| 午夜福利在线观看吧| 日本黄色片子视频| 级片在线观看| 有码 亚洲区| 久久久久网色| 国产精品一区二区三区四区免费观看| АⅤ资源中文在线天堂| 欧美成人免费av一区二区三区| 一级黄色大片毛片| or卡值多少钱| 久久久久久久久久久丰满| av.在线天堂| 久久久久久大精品| 精品99又大又爽又粗少妇毛片| 日本免费在线观看一区| 最近视频中文字幕2019在线8| 免费看日本二区| 女人久久www免费人成看片 | 精品久久久久久久人妻蜜臀av| 中文欧美无线码| 18禁在线无遮挡免费观看视频| 国产高清三级在线| 国产三级在线视频| av国产久精品久网站免费入址| 联通29元200g的流量卡| 日本色播在线视频| 老司机影院成人| 尾随美女入室| 亚洲av.av天堂| 国产精品美女特级片免费视频播放器| 成人高潮视频无遮挡免费网站| 免费av毛片视频| 午夜爱爱视频在线播放| 不卡视频在线观看欧美| 亚洲av福利一区| 欧美丝袜亚洲另类| 精品国产露脸久久av麻豆 | 成人午夜高清在线视频| 黄色欧美视频在线观看| 午夜a级毛片| 久久国内精品自在自线图片| 久久久久免费精品人妻一区二区| 99久久中文字幕三级久久日本| 三级毛片av免费| 白带黄色成豆腐渣| 色哟哟·www| 国产精品伦人一区二区| 成年女人看的毛片在线观看| 最近中文字幕高清免费大全6| 神马国产精品三级电影在线观看| 好男人在线观看高清免费视频| 亚洲av成人精品一区久久| 日韩精品有码人妻一区| 建设人人有责人人尽责人人享有的 | 一个人看的www免费观看视频| 亚洲五月天丁香| 偷拍熟女少妇极品色| a级毛色黄片| 亚洲欧美日韩东京热| 自拍偷自拍亚洲精品老妇| 亚洲精品成人久久久久久| 91久久精品电影网| 一个人看的www免费观看视频| 黄色配什么色好看| 91久久精品电影网| 精品午夜福利在线看| 国产精品日韩av在线免费观看| av视频在线观看入口| 亚洲av免费高清在线观看| 国产精品久久久久久精品电影小说 | 国产美女午夜福利| 不卡视频在线观看欧美| 亚洲熟妇中文字幕五十中出| 免费黄网站久久成人精品| 午夜福利在线观看免费完整高清在| 亚洲最大成人av| 亚洲精品乱码久久久v下载方式| 永久免费av网站大全| 观看美女的网站| 乱码一卡2卡4卡精品| 亚洲精品乱码久久久久久按摩| 欧美性猛交黑人性爽| 大香蕉97超碰在线| 人妻系列 视频| 蜜桃亚洲精品一区二区三区| 乱码一卡2卡4卡精品| 午夜久久久久精精品| 国产午夜精品论理片| 国内精品美女久久久久久| 91aial.com中文字幕在线观看| 国产一区二区亚洲精品在线观看| 特大巨黑吊av在线直播| 亚洲精品亚洲一区二区| 日本一二三区视频观看| 青春草视频在线免费观看| 精品熟女少妇av免费看| 成年免费大片在线观看| 欧美高清性xxxxhd video| 观看免费一级毛片| 青春草视频在线免费观看| 亚洲欧洲日产国产| 又粗又硬又长又爽又黄的视频| 天美传媒精品一区二区| 久99久视频精品免费| 精品久久久久久久人妻蜜臀av| 日本与韩国留学比较| or卡值多少钱| 在线免费十八禁| 啦啦啦啦在线视频资源| 久久精品国产鲁丝片午夜精品| 国产亚洲精品av在线| 欧美激情久久久久久爽电影| 寂寞人妻少妇视频99o| 黄片wwwwww| 我要看日韩黄色一级片| 建设人人有责人人尽责人人享有的 | 日韩欧美国产在线观看| 老司机福利观看| 啦啦啦韩国在线观看视频| 汤姆久久久久久久影院中文字幕 | 亚洲av免费在线观看| 免费观看人在逋| 一边摸一边抽搐一进一小说| 91精品伊人久久大香线蕉| 男人和女人高潮做爰伦理| 国产v大片淫在线免费观看| 国产伦精品一区二区三区四那| 国产精品综合久久久久久久免费| 免费观看性生交大片5| 中文字幕制服av| 国产白丝娇喘喷水9色精品| 久久久亚洲精品成人影院| av播播在线观看一区| 亚洲国产欧美人成| 亚洲综合精品二区| 成人av在线播放网站| 免费观看精品视频网站| .国产精品久久| 看非洲黑人一级黄片| 欧美性感艳星| 国内精品宾馆在线| 国产日韩欧美在线精品| 最近中文字幕2019免费版| 免费av毛片视频| 长腿黑丝高跟| 国产精品精品国产色婷婷| 最近2019中文字幕mv第一页| 国产av一区在线观看免费| 亚洲中文字幕日韩| 国产欧美另类精品又又久久亚洲欧美| 亚洲欧美中文字幕日韩二区| 高清视频免费观看一区二区 | 亚洲欧美日韩卡通动漫| 国产成人一区二区在线| 国产亚洲最大av| 国产69精品久久久久777片| 日韩在线高清观看一区二区三区| 最近中文字幕2019免费版| av在线观看视频网站免费| 又粗又硬又长又爽又黄的视频| 一区二区三区四区激情视频| 女人被狂操c到高潮| 中文资源天堂在线| 2022亚洲国产成人精品| 亚洲国产欧美在线一区| 亚洲人与动物交配视频| 赤兔流量卡办理| 国产黄片美女视频| 午夜福利高清视频| 日日撸夜夜添| 精品免费久久久久久久清纯| 亚洲精品一区蜜桃| 色综合色国产| 久久这里只有精品中国| 少妇人妻精品综合一区二区| 91久久精品电影网| 国产免费视频播放在线视频 | 少妇裸体淫交视频免费看高清| 在线观看美女被高潮喷水网站| 国产精品一区www在线观看| 亚洲av成人精品一区久久| 大话2 男鬼变身卡| 亚州av有码| 亚洲成人久久爱视频| 亚洲国产精品国产精品| 国产亚洲精品av在线| 久久久久性生活片| 日韩高清综合在线| av卡一久久| 亚洲最大成人手机在线| 精品欧美国产一区二区三| 最新中文字幕久久久久| 国产免费福利视频在线观看| 蜜臀久久99精品久久宅男| 在线免费观看的www视频| 五月伊人婷婷丁香| 久久久久久久久久成人| 亚洲av日韩在线播放| 亚洲av一区综合| 欧美成人精品欧美一级黄| 亚洲人成网站在线观看播放| 汤姆久久久久久久影院中文字幕 | 又粗又硬又长又爽又黄的视频| 久久久精品94久久精品| 欧美丝袜亚洲另类| 啦啦啦韩国在线观看视频| 日本免费一区二区三区高清不卡| 久久久午夜欧美精品| 日韩三级伦理在线观看| 国产老妇伦熟女老妇高清| 女的被弄到高潮叫床怎么办| 欧美潮喷喷水| 女人久久www免费人成看片 | 婷婷色av中文字幕| 亚洲欧美成人精品一区二区| 国产精品久久久久久久电影| 97超视频在线观看视频| 国产亚洲午夜精品一区二区久久 | 国产私拍福利视频在线观看| 人妻少妇偷人精品九色| 国产爱豆传媒在线观看| 春色校园在线视频观看| 日本免费在线观看一区| 午夜老司机福利剧场| 三级经典国产精品| 久久精品久久精品一区二区三区| 免费看光身美女| 久久综合国产亚洲精品| 高清视频免费观看一区二区 | 桃色一区二区三区在线观看| 国产亚洲5aaaaa淫片| 人妻少妇偷人精品九色| 亚洲精品日韩在线中文字幕| 精品无人区乱码1区二区| 天天躁夜夜躁狠狠久久av| 久久久国产成人免费| 国产成人精品久久久久久| 午夜福利在线观看吧| 国产精品.久久久| 嫩草影院精品99| a级一级毛片免费在线观看| 久久精品影院6| 成人美女网站在线观看视频| 免费电影在线观看免费观看| 男女那种视频在线观看| 国产男人的电影天堂91| 一级毛片aaaaaa免费看小| 欧美精品国产亚洲| 可以在线观看毛片的网站| 国产成人精品婷婷| 国产伦精品一区二区三区四那| 一边亲一边摸免费视频| 天堂av国产一区二区熟女人妻| 五月玫瑰六月丁香| 国产淫语在线视频| 精品久久久久久久久av| 赤兔流量卡办理| 丰满乱子伦码专区| 国产精品不卡视频一区二区| 一级毛片久久久久久久久女| 国产精品乱码一区二三区的特点| 69av精品久久久久久| 日韩,欧美,国产一区二区三区 | av.在线天堂| 亚洲欧美清纯卡通| av在线蜜桃| 精品欧美国产一区二区三| 边亲边吃奶的免费视频| 午夜激情欧美在线| 欧美日本亚洲视频在线播放| 国产精品久久久久久久久免| 久久久久精品久久久久真实原创| av专区在线播放| 丰满人妻一区二区三区视频av| 免费黄网站久久成人精品| 搡女人真爽免费视频火全软件| 内地一区二区视频在线| 男女下面进入的视频免费午夜| 99热这里只有精品一区| 国产成人91sexporn| videos熟女内射| 最近最新中文字幕免费大全7| 观看免费一级毛片| 国产国拍精品亚洲av在线观看| 成人一区二区视频在线观看| 国产视频首页在线观看| 欧美+日韩+精品| 日本爱情动作片www.在线观看| 亚洲国产精品合色在线| 久久午夜福利片| 熟女电影av网| 国产精品久久久久久精品电影小说 | av国产免费在线观看| 高清毛片免费看| 精品久久久久久电影网 | 五月玫瑰六月丁香| 18+在线观看网站| 一级二级三级毛片免费看| 熟妇人妻久久中文字幕3abv| 一个人观看的视频www高清免费观看| 亚洲经典国产精华液单| 免费观看的影片在线观看| 久久99热这里只有精品18| 日本三级黄在线观看| 久久久久久久久大av| 国产精品麻豆人妻色哟哟久久 | 能在线免费观看的黄片| av在线观看视频网站免费| 久久草成人影院| 亚洲欧洲国产日韩| 男女那种视频在线观看| 日韩强制内射视频| 亚洲性久久影院| 一级毛片电影观看 | 最近的中文字幕免费完整| 日日摸夜夜添夜夜添av毛片| 国产精品三级大全| 欧美高清性xxxxhd video| 国产三级在线视频| 男插女下体视频免费在线播放| 黄色配什么色好看| 成人漫画全彩无遮挡| 久久精品熟女亚洲av麻豆精品 | 亚洲国产高清在线一区二区三| 精品免费久久久久久久清纯| 免费观看精品视频网站| 免费av毛片视频| 久久99热6这里只有精品| h日本视频在线播放| 青青草视频在线视频观看| 国产91av在线免费观看| 亚洲中文字幕日韩| 午夜福利在线观看吧| 亚洲三级黄色毛片| 亚洲成人精品中文字幕电影| 老司机影院成人| 日本免费在线观看一区| 久久综合国产亚洲精品| 日韩欧美在线乱码| 亚洲精品乱码久久久久久按摩| 国内精品宾馆在线| 小说图片视频综合网站| 偷拍熟女少妇极品色| 成人一区二区视频在线观看| 亚州av有码| 又爽又黄a免费视频| 久久久久久久久久黄片| 啦啦啦韩国在线观看视频| 观看美女的网站| av福利片在线观看| 简卡轻食公司| 亚洲av中文av极速乱| 国产69精品久久久久777片| 久久久久精品久久久久真实原创| 国产成人精品一,二区| 亚洲精品国产成人久久av| 大香蕉久久网| 大香蕉97超碰在线| 国产av在哪里看| 亚洲美女搞黄在线观看| 免费不卡的大黄色大毛片视频在线观看 | 日韩一区二区视频免费看| 搡老妇女老女人老熟妇| 熟女电影av网| 人妻系列 视频| 日韩精品有码人妻一区| 大又大粗又爽又黄少妇毛片口| 国产亚洲最大av| 岛国毛片在线播放| 亚洲国产精品成人久久小说| 91av网一区二区| 老师上课跳d突然被开到最大视频| 一边亲一边摸免费视频| 国内精品一区二区在线观看| 99久国产av精品国产电影| 日本五十路高清| 亚洲精品乱码久久久v下载方式| 国产男人的电影天堂91| 日本熟妇午夜| 2021少妇久久久久久久久久久| 久久久午夜欧美精品| 直男gayav资源| 日本猛色少妇xxxxx猛交久久| 欧美+日韩+精品| 美女cb高潮喷水在线观看| 国产三级在线视频| 又黄又爽又刺激的免费视频.| 国产高清国产精品国产三级 | 欧美色视频一区免费| 美女大奶头视频| 国产又黄又爽又无遮挡在线| 国产视频首页在线观看| 精品不卡国产一区二区三区| 中文字幕精品亚洲无线码一区| 少妇丰满av| av专区在线播放| 一二三四中文在线观看免费高清| 我的老师免费观看完整版| 婷婷色av中文字幕| 国产男人的电影天堂91| 黄色配什么色好看| 乱系列少妇在线播放| 国产一区二区在线观看日韩| 日韩视频在线欧美| 一夜夜www| 永久网站在线| 特大巨黑吊av在线直播| 天堂√8在线中文| 一个人看视频在线观看www免费| 国产精品熟女久久久久浪| 亚洲成人中文字幕在线播放| 精品久久久噜噜| 国产高清有码在线观看视频| 寂寞人妻少妇视频99o| 国产精品久久久久久久久免| 国产黄a三级三级三级人| 国产精品.久久久| 久久国内精品自在自线图片| 国产成人精品久久久久久| 亚洲欧美一区二区三区国产| 天堂中文最新版在线下载 | 日本黄色片子视频| av国产免费在线观看| 又爽又黄a免费视频| 国产成人精品婷婷| 麻豆一二三区av精品| 欧美性猛交╳xxx乱大交人| 两性午夜刺激爽爽歪歪视频在线观看| 校园人妻丝袜中文字幕| 国产精品1区2区在线观看.| 99久国产av精品国产电影| 亚洲av中文av极速乱| 中文字幕免费在线视频6| 99热网站在线观看| 成人欧美大片| 免费看美女性在线毛片视频| 亚洲成色77777| 好男人在线观看高清免费视频| 国产极品天堂在线| 亚洲精品456在线播放app| 久久亚洲精品不卡| 亚洲在线观看片| 丰满乱子伦码专区| 国产探花极品一区二区| 日日摸夜夜添夜夜爱| 亚洲成色77777| 男插女下体视频免费在线播放| 亚洲欧美精品自产自拍| 亚洲人与动物交配视频| 亚洲真实伦在线观看| 一级av片app| 国产精品av视频在线免费观看| 国产av一区在线观看免费| 国产成人freesex在线| 免费搜索国产男女视频| 精品国产露脸久久av麻豆 | 视频中文字幕在线观看| 国产黄片美女视频| 99久久精品国产国产毛片| 欧美一区二区精品小视频在线| 少妇熟女欧美另类| 97人妻精品一区二区三区麻豆| 国产久久久一区二区三区| 色吧在线观看| 联通29元200g的流量卡| 国产高清国产精品国产三级 | 午夜激情福利司机影院| 日韩欧美三级三区| 国产精品国产高清国产av| 一级黄片播放器| 亚洲精品乱久久久久久| 少妇熟女aⅴ在线视频| 国产成人aa在线观看| 日韩欧美三级三区| 免费无遮挡裸体视频| 日韩一区二区三区影片| 亚洲av免费在线观看| h日本视频在线播放| 超碰97精品在线观看| 国产黄a三级三级三级人|