后向兼容聚合文件系統(tǒng)操作性能改進方法和相應裝置制造方法
【專利摘要】一種操作文件系統(tǒng)的方法包括以下步驟:設計虛擬文件,以從文件目錄提供結果,對于所述結果要求大量系統(tǒng)調用;由唯一名稱區(qū)分虛擬文件與文件目錄中的真實文件;以及通過打開虛擬文件并且讀取虛擬文件的內容來從所述文件目錄獲取所述結果。設計虛擬文件特別用于文件系統(tǒng)操作。
【專利說明】后向兼容聚合文件系統(tǒng)操作性能改進方法和相應裝置
【技術領域】
[0001]本發(fā)明涉及用于操作包括文件目錄的文件系統(tǒng)的方法和裝置,尤其涉及使用該方法的家用網(wǎng)關。
【背景技術】
[0002]將終端用戶的家用網(wǎng)絡連接到因特網(wǎng)的家用網(wǎng)關以在間隔時間內使用的方式被廣泛使用。家用網(wǎng)關通常通過數(shù)字用戶線路(DSL)和被稱為POTS (普通老式電話服務)的電話通信提供寬帶服務,并且此外包括用于家用網(wǎng)絡的有線傳輸(例如因特網(wǎng))和無線傳輸(W1-Fi)。為了提供服務,家用網(wǎng)關包括在類似Unix的操作系統(tǒng)上運行的微處理器系統(tǒng)(CPU)。
[0003]操作系統(tǒng)包括連同主控制程序(內核)一起的應用程序和實用工具。內核提供服務以開始和停止程序,處理文件系統(tǒng)和多數(shù)應用程序共享的其他共用的“低級”任務,并且調度訪問以避免應用程序之間的沖突。為了中介這種訪問,內核具有反映為其用戶空間和系統(tǒng)空間之間的虛擬存儲器分離的特權。系統(tǒng)空間嚴格為運行內核、內核擴展和多數(shù)設備驅動器而保留。相反,用戶空間是其中所有用戶模式應用程序工作的存儲器區(qū)域并且該存儲器在必要時可以被換出。
[0004]用于文件系統(tǒng)的關鍵想法是它們具有固定應用程序編程接口(API),其使得不同種類的文件系統(tǒng)可互操作。對于利用文件系統(tǒng)的應用程序,文件系統(tǒng)的格式(例如,F(xiàn)AT32、NTFS、Ext3...)沒有影響,并且應用程序也不應該關心這個。對于類似Unix的操作系統(tǒng),文件系統(tǒng)的API符合可移植操作系統(tǒng)接口(POSIX)標準,其是IEEE規(guī)定的標準族。
[0005]雖然文件系統(tǒng)API使得文件系統(tǒng)之間的可互操作性不重要(這是一個真正的優(yōu)點),但這也可能是對于某些應用程序的弱點。某些很基本的操作不可能是直接的并且必須利用API的可用功能模擬,這可能在資源方面成本很高。
[0006]文件系統(tǒng)是操作系統(tǒng)的一部分,并且同樣地它們在系統(tǒng)空間中運行。另一方面,應用程序運行在更少的特權的用戶空間中。為了跨越用戶空間和系統(tǒng)空間之間的邊界,操作系統(tǒng)提供圖1中圖示的系統(tǒng)調用接口。系統(tǒng)調用是應用程序如何從操作系統(tǒng)的內核請求服務。一般地,存在使得借助函數(shù)如操作系統(tǒng)使用的系統(tǒng)調用可被用戶空間訪問的中間庫,例如標準C庫。
[0007]當應用程序直接調用系統(tǒng)調用時或者調用來自將調用系統(tǒng)調用的庫中的函數(shù)時,要求用戶空間和系統(tǒng)空間之間的轉換。雖然存在其他實現(xiàn),一種使得從用戶空間轉換到系統(tǒng)空間的常用方式是借助軟件中斷。利用該軟件中斷實現(xiàn),系統(tǒng)調用的數(shù)量必須被加載到微處理器的寄存器中,并且執(zhí)行軟件中斷,以傳遞控制權(control)到內核。
[0008]由于文件系統(tǒng)駐留在特權系統(tǒng)空間中,它們不能利用任何庫。同樣,實現(xiàn)文件系統(tǒng)是很復雜的。例如,存儲器管理在系統(tǒng)空間中比其在用戶空間中難得多。為了克服此限制,也可以在用戶空間中實現(xiàn)文件系統(tǒng)。用以允許在用戶空間中實現(xiàn)文件系統(tǒng)的實現(xiàn)的一個示例是用戶空間中的文件系統(tǒng)(Filesystem in Userspace, FUSE)。FUSE是用于類似Unix的計算機操作系統(tǒng)的可加載內核模塊。其如圖2所圖示包括行為與正常文件系統(tǒng)5類似的FUSE內核驅動器4和用于在用戶空間中的文件系統(tǒng)3和FUSE內核驅動器4之間通信的FUSE庫6。駐留在用戶空間中的文件系統(tǒng)實現(xiàn)負責實現(xiàn)文件系統(tǒng)的接口。FUSE因此允許在用戶空間中運行文件系統(tǒng)代碼,同時FUSE內核驅動器4提供到操作系統(tǒng)內核的橋梁(bridge)。
[0009]當應用程序與在用戶空間中實現(xiàn)的文件系統(tǒng)3交互時,相應的系統(tǒng)調用被發(fā)起為如使用駐留在系統(tǒng)空間中的任何文件系統(tǒng)一樣。在內核內部,由FUSE內核驅動器4處理系統(tǒng)調用。FUSE內核驅動器4串行化系統(tǒng)調用并且經(jīng)由FUSE字符設備將其傳播回用戶空間,在用戶空間中,F(xiàn)USE庫6調用由文件系統(tǒng)3在用戶空間中實現(xiàn)的對應函數(shù)。返回路徑以相反的順序遵循相同路徑。
[0010]FUSE僅僅是允許在用戶空間中實現(xiàn)文件系統(tǒng)的實現(xiàn)的一個示例,但是應該在這里強調的是,用戶空間中所有種類的文件系統(tǒng)要求上下文切換。上下文切換是存儲和恢復微處理器的狀態(tài)以便可以在稍后時刻從相同點繼續(xù)執(zhí)行的計算處理。這使得多個處理更夠共享單個CPU并且上下文切換是多任務操作系統(tǒng)的必要特征。上下文切換通常是計算密集型并且操作系統(tǒng)的大部分設計用于優(yōu)化上下文切換的使用。上下文切換可以是寄存器上下文切換、任務上下文切換、線程上下文切換或者進程上下文切換。
[0011]進程上下文切換是將控制權從一個進程轉換到另一個。進行這種上下文切換涉及存儲第一進程的狀態(tài),使得其可以稍后繼續(xù),以及發(fā)起(initiate)第二進程的狀態(tài)。對于用戶空間中的文件系統(tǒng)3的實現(xiàn),系統(tǒng)調 用中的每個導致兩個上下文切換:進行系統(tǒng)調用的應用程序被暫停,使得實現(xiàn)為另一進程的文件系統(tǒng)可以處理該調用,并且當該調用返回時,調用應用程序繼續(xù)。
[0012]在實現(xiàn)在用戶空間中的文件系統(tǒng)的范圍中,最大開銷由此通過其要求的大量的上下文切換引入。圖2中的大箭頭1、2指示必須跨越的邊界。垂直箭頭I指示用戶空間和系統(tǒng)空間之間的邊界,無論文件系統(tǒng)在系統(tǒng)空間還是用戶空間中實現(xiàn),對于所有文件系統(tǒng)調用,該邊界必須被跨越。水平箭頭2圖示進程之間的邊界,其是當系統(tǒng)文件在用戶空間中實現(xiàn)時引入的額外開銷。
[0013]現(xiàn)在描述例示文件系統(tǒng)使用的三個示例,其將導致大量系統(tǒng)調用。如果向駐留在用戶空間中的文件系統(tǒng)3應用這些示例,則這將導致不可實行數(shù)量的上下文切換:
[0014]b.1)計數(shù)目錄中的元素:
[0015]下面的偽代碼例示如何能夠計數(shù)目錄/foo/bar中的元素的數(shù)量。調用系統(tǒng)調用
的函數(shù)由黑體指示。
[0016]
【權利要求】
1.一種操作包括文件目錄的文件系統(tǒng)的方法,所述文件目錄具有真實文件,所述方法包括以下步驟: 設計虛擬文件,以從文件目錄提供結果,對于所述結果要求大量的系統(tǒng)調用, 由唯一名稱區(qū)分虛擬文件與文件目錄中的真實文件,以及 通過打開虛擬文件并且讀取虛擬文件的內容來從所述文件目錄獲取所述結果。
2.如權利要求1所述的方法,包括以下步驟:設計虛擬文件用于對于其要求大量的系統(tǒng)調用的文件系統(tǒng)操作。
3.如權利要求1或2所述的方法,包括以下步驟,當改變文件目錄的內容時,更新虛擬文件的結果。
4.如權利要求1、2或3所述的方法,其中,由唯一文件擴展區(qū)分虛擬文件與文件目錄中的真實文件。
5.如前述權利要求之一所述的方法,包括以下步驟:將虛擬文件布置在所述文件目錄內部。
6.如前述權利要求之一所述的方法,包括以下步驟:設計虛擬文件用于以下文件系統(tǒng)操作:計數(shù)所述文件目錄中的元素。
7.如前述權利要求之一所述的方法,包括以下步驟:設計虛擬文件用于以下文件系統(tǒng)操作:計數(shù)所述文件目錄的所有直接子目錄的元素。
8.如前述權利要求之一所述的方法,包括以下步驟:設計虛擬文件用于以下文件系統(tǒng)操作:依據(jù)偏移量讀取所述文件目錄的目錄元素。
9.如前述權利要求之一所述的方法,包括以下步驟:設計虛擬文件用于以下文件系統(tǒng)操作:讀取塊中的完整文件目錄。
10.一種裝置,使用根據(jù)前述權利要求之一所述的方法。
11.根據(jù)權利要求10所述的裝置,其中所述裝置包括運行操作系統(tǒng)的微處理器系統(tǒng),所述操作系統(tǒng)包括處理所述文件系統(tǒng)、應用程序和實用工具的控制程序。
12.如權利要求10或11所述的裝置,其中所述裝置是家用網(wǎng)關、DSL調制解調器或者機頂盒。
【文檔編號】G06F17/30GK103443789SQ201280005843
【公開日】2013年12月11日 申請日期:2012年1月20日 優(yōu)先權日:2011年1月21日
【發(fā)明者】F.范德哈倫, D.錢尼特, G.弗雷德里克斯, K.黑塞特斯 申請人:湯姆遜許可公司