欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于改進(jìn)文件管理的方法和裝置的制作方法

文檔序號:6477710閱讀:213來源:國知局

專利名稱::用于改進(jìn)文件管理的方法和裝置的制作方法領(lǐng)域本公開內(nèi)容涉及計(jì)算機(jī)和通信系統(tǒng)。更具體而言,它涉及到用于在計(jì)算機(jī)和通信系統(tǒng)中改進(jìn)文件管理的方法和裝置。背景計(jì)算機(jī)和通信系統(tǒng)在體系結(jié)構(gòu)上常常是相似的。每種系統(tǒng)可以包括大量的獨(dú)立部件,它們每個(gè)都被設(shè)計(jì)成執(zhí)行確定的功能。這些部件可以通過互連系統(tǒng)將信息傳送到其他部件?;ミB系統(tǒng)操作來管理通過通信介質(zhì),諸如金屬引線、雙絞線、同軸電纜、光纖、射頻等等對信息的傳送。在部件之間的通信典型地有助于協(xié)調(diào)單個(gè)部件的操作,從而使得它們可以作為內(nèi)聚的系統(tǒng)來活動(dòng)。這種類型的分布式系統(tǒng)的體系結(jié)構(gòu)在性能、冗余、可伸縮性和效率上可以提供某些優(yōu)點(diǎn)。不過,也存在與這種類型的系統(tǒng)設(shè)計(jì)相關(guān)聯(lián)的缺點(diǎn)。一個(gè)缺點(diǎn)是部件在等待著來自另一個(gè)部件的信息時(shí),它可能不得不保持空閑??臻e時(shí)間可代表系統(tǒng)資源的低效率使用。另一個(gè)缺點(diǎn)是功能性可能采用增加部件之間傳送的信息量的方式被分配給部件。這種通信中的增加會(huì)增加對該互連系統(tǒng)的有限資源的需求。附圖簡述關(guān)于本發(fā)明的實(shí)施例的主題在本說明書的結(jié)論部分被特別指出和被不同地要求權(quán)利。不過,通過參考如下的詳細(xì)說明并結(jié)合附圖閱讀時(shí),就會(huì)對本發(fā)明的實(shí)施例,對于組織和操作方法這二者,以及本發(fā)明的目的、特征、和優(yōu)點(diǎn)有最好的理解,在這些附圖中圖1是一種適用于實(shí)踐本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的客戶系統(tǒng)的框圖。圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的服務(wù)器系統(tǒng)的框圖。圖4由根據(jù)本發(fā)明的一個(gè)實(shí)施例的客戶系統(tǒng)所執(zhí)行的操作的方框流程圖。圖5由根據(jù)本發(fā)明的一個(gè)實(shí)施例的服務(wù)器系統(tǒng)所執(zhí)行的操作的方框流程圖。圖6說明一種根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件體系結(jié)構(gòu)。詳述在以下的詳細(xì)描述中,對大量的具體細(xì)節(jié)進(jìn)行了闡述以便提供對本發(fā)明的實(shí)施例的徹底理解。不過,對于本領(lǐng)域普通技術(shù)人員而言,應(yīng)該理解的是,在沒有這些具體細(xì)節(jié)的情況下,本發(fā)明的實(shí)施例也是可以被實(shí)踐的。在其他例子中,并沒有在細(xì)節(jié)上對公知的方法、過程、部件和電路進(jìn)行描述,以便不使本發(fā)明的實(shí)施例不清楚。本發(fā)明的實(shí)施例可以通過減小分布式部件的空閑時(shí)間以及對于互連系統(tǒng)的帶寬需求來改進(jìn)分布式系統(tǒng)的性能。更具體而言,本發(fā)明的一個(gè)實(shí)施例可以改進(jìn)用來管理文件的分布式系統(tǒng)的性能。因此,這樣就可以減小與文件操作相關(guān)聯(lián)的時(shí)延。相應(yīng)地,用戶就可以在更多的響應(yīng)式應(yīng)用和服務(wù)方面受益。文件管理系統(tǒng)典型地包括客戶和服務(wù)器。在本上下文中的客戶可以指服務(wù)的請求者。在本上下文中的服務(wù)器可以指服務(wù)的提供者。該客戶典型地通過互連系統(tǒng)將文件請求發(fā)送到服務(wù)器。該文件請求可以采用消息的形式,并且可以包括功能請求和文件名。在本上下文中的消息可以包括一個(gè)或者多個(gè)字母數(shù)字字符、符號或者邏輯表達(dá)式,當(dāng)它們被組合時(shí),表示例如控制字、命令、指令、信息或者數(shù)據(jù)。該消息在構(gòu)成上可以變化,例如從一個(gè)位到完整的短語。該服務(wù)器將一惟一的標(biāo)識符與該文件名關(guān)聯(lián)起來,標(biāo)識該文件的位置信息,并且將它與該惟一的標(biāo)識符存儲(chǔ)在一起。該服務(wù)器然后將該惟一標(biāo)識符送回到該客戶。該客戶接收該惟一標(biāo)識符,并且對于后續(xù)的文件請求就用它來代替該文件名。惟一標(biāo)識符被指配給文件名,以便減小對該互連系統(tǒng)的帶寬需求。文件名例如可以包括許多字母數(shù)字字符或者符號(″字符串″)。每個(gè)字符或者符號被轉(zhuǎn)換成一個(gè)或者多個(gè)位,典型地是每個(gè)字符8位(例如,1字節(jié))。因?yàn)槲募梢园ㄔS多字符,所以該互連系統(tǒng)可能不得不傳輸數(shù)目相對大的位。為了減少這一問題,該服務(wù)器可以將惟一標(biāo)識符指配給每個(gè)文件名,并且將該惟一標(biāo)識符發(fā)送給該客戶。該惟一標(biāo)識符典型地在長度上要小于該文件名。例如,一個(gè)惟一標(biāo)識符可能的長度為32或者64位。于是,該客戶對于后續(xù)的文件請求就可以使用該惟一標(biāo)識符。不過,讓該服務(wù)器將惟一標(biāo)識符指配給文件名也存在缺點(diǎn)。一個(gè)缺點(diǎn)是在處理后續(xù)的文件請求之前,當(dāng)該客戶等待著該惟一標(biāo)識符時(shí),它可能不得不保持空閑。另一個(gè)缺點(diǎn)是該客戶和服務(wù)器可能需要傳送比所需的更多的信息,由此就增加了對該互連系統(tǒng)的需求。相對于第一缺點(diǎn),該客戶在等待著來自該服務(wù)器的惟一標(biāo)識符時(shí),它可能不得不保持空閑。為了啟動(dòng)該指配過程,該客戶將一條消息發(fā)送到該服務(wù)器,請求將惟一標(biāo)識符指配給文件名。該服務(wù)器將一個(gè)惟一標(biāo)識符與該文件名關(guān)聯(lián)起來,標(biāo)識該文件的位置信息,并且將它與該惟一標(biāo)識符存儲(chǔ)在一起。該服務(wù)器然后就將一條消息與該惟一標(biāo)識符一起送回到該客戶。在等待著接收來自該服務(wù)器的惟一標(biāo)識符的同時(shí),該客戶可以接收具有該相同文件名的后續(xù)的文件請求。該客戶也許直到該整個(gè)指配過程完成時(shí)才能開始處理這些文件請求。因此,在這一時(shí)間段期間,該客戶也許被迫要保持空閑。相對于第二缺點(diǎn),為了執(zhí)行指配功能,該客戶和服務(wù)器可能需要傳送不必要的信息,由此就增加了對該互連系統(tǒng)的需求。上述的文件管理系統(tǒng)要求至少兩條消息。該客戶將第一條消息發(fā)送到該服務(wù)器,請求將惟一標(biāo)識符指配給文件名。該服務(wù)器將第二條消息與該惟一標(biāo)識符一起發(fā)送給該客戶。每條消息要求使用該互連系統(tǒng)的一定量的帶寬。在本上下文中的帶寬可以指信息在互連系統(tǒng)上能夠被傳送的速度,并且典型地采用每秒千位(kbps)來加以測量。通過對比,本發(fā)明的一個(gè)實(shí)施例可以僅僅使用一條消息來執(zhí)行該指配過程,由此潛在地就將對該互連系統(tǒng)的帶寬需求降低達(dá)50%之多。本發(fā)明的實(shí)施例可以通過降低客戶的空閑時(shí)間以及對該互連系統(tǒng)的帶寬需求來改進(jìn)分布式系統(tǒng)的性能。本發(fā)明的一個(gè)實(shí)施例在客戶端將一惟一標(biāo)識符指配給文件名,并將該惟一標(biāo)識符發(fā)送到該服務(wù)器。這樣就可以減小客戶的空閑時(shí)間,因?yàn)樵摽蛻粼诓槐氐却齺碜栽摲?wù)器的消息的情況下就可以開始處理后續(xù)的文件請求。這樣也可以減小帶寬需求,因?yàn)樵摲?wù)器不必為完成該指配過程而將消息送回到該服務(wù)器,或者可選地,可以發(fā)送比以前的文件管理系統(tǒng)所需要的消息更短的消息。值得指出的是在本說明書對″一個(gè)實(shí)施例″或者″實(shí)施例″的任何參考在本上下文中意思是結(jié)合該實(shí)施例所描述的特定的特征、結(jié)構(gòu)、或者特性可能被包括在本發(fā)明的至少一個(gè)實(shí)施例中。在本說明書的各個(gè)地方所出現(xiàn)的短語″在一個(gè)實(shí)施例中″未必都要指向相同的實(shí)施例。現(xiàn)在詳細(xì)地參考這些附圖,其中相同的部件自始至終由相同的附圖標(biāo)記來指定,圖1說明一種適用于實(shí)踐本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)100。如圖1所示,系統(tǒng)100包括由互連系統(tǒng)104所連接的客戶102和服務(wù)器106。在此所使用的術(shù)語″客戶″可以指信息的任何請求者。在此所使用的術(shù)語″服務(wù)器″可以指信息的任何提供者。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的客戶系統(tǒng)的框圖。圖2說明可以代表客戶102的客戶200。如圖2所示,客戶200包括處理器202、存儲(chǔ)器204和接口208,它們都由連接210所連接。存儲(chǔ)器204可以存儲(chǔ)程序指令和數(shù)據(jù)。術(shù)語″程序指令″包括計(jì)算機(jī)代碼段,該計(jì)算機(jī)代碼段包括預(yù)定的計(jì)算機(jī)語言的字、值和符號,當(dāng)它們以按照預(yù)定的方式或者語法的組合被放置時(shí),使處理器執(zhí)行確定的功能。計(jì)算機(jī)語言的例子包括C、C++和匯編語言。處理器202執(zhí)行該程序指令,并且處理在存儲(chǔ)器204中所存儲(chǔ)的數(shù)據(jù)。接口208協(xié)調(diào)數(shù)據(jù)從客戶200到另一個(gè)設(shè)備的傳輸。連接210傳送處理器202、存儲(chǔ)器204、和接口208之間的數(shù)據(jù)。處理器202可以是能夠提供本發(fā)明的各實(shí)施例所需要的速度和功能性的任何類型的處理器。例如,處理器202可以是由英特爾公司(Intel)、摩托羅拉(Motorola)、康柏(Compaq)或者太陽微系統(tǒng)(Sun)制造的處理器系列中的處理器。在本發(fā)明的一個(gè)實(shí)施例中,處理器202可以是用于管理輸入/輸出(I/O)設(shè)備,諸如硬盤驅(qū)動(dòng)器、鍵盤、打印機(jī)、網(wǎng)絡(luò)接口卡等等的專用處理器。這種處理器典型地被稱為I/O處理器(IOP)。在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)器204包括機(jī)器可讀介質(zhì),并且可以包括能夠存儲(chǔ)適用于由處理器加以執(zhí)行的指令的任何介質(zhì)。這種介質(zhì)的一些例子包括但不限于,只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、可編程ROM、可擦除可編程ROM、電可擦除可編程ROM、動(dòng)態(tài)RAM、磁盤(例如,軟盤和硬盤驅(qū)動(dòng)器)、光盤(例如,CD-ROM)和可以存儲(chǔ)數(shù)字信息的任何其他介質(zhì)。在本發(fā)明的一個(gè)實(shí)施例中,該指令采用壓縮和/或加密的格式存儲(chǔ)在該介質(zhì)上。如此處所使用的,短語″適用于由處理器加以執(zhí)行″意思是包括采用壓縮和/或加密格式所存儲(chǔ)的指令,以及必須被編譯或者在由該處理器執(zhí)行之前由安裝程序安裝的指令。此外,客戶200通過各種I/O控制器可以包含機(jī)器可讀存儲(chǔ)設(shè)備的各種組合,它們可由處理器202加以訪問并且能夠存儲(chǔ)計(jì)算機(jī)程序指令和數(shù)據(jù)的組合。存儲(chǔ)器204可以存儲(chǔ)和允許由處理器202執(zhí)行的程序指令和數(shù)據(jù),以便實(shí)現(xiàn)客戶(諸如客戶106和客戶200)的功能。在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)器204包括一組程序指令,該組程序指令在此共同地被稱為文件系統(tǒng)接口206。文件系統(tǒng)接口206可以是這樣的一個(gè)接口,它操作來提供對系統(tǒng)100的一個(gè)或者多個(gè)文件的訪問。在本上下文中的接口可以指一種定義的協(xié)議,通過該協(xié)議,一個(gè)軟件模塊可以訪問另一個(gè)軟件模塊的功能性。在本上下文中的文件是指在存儲(chǔ)器諸如存儲(chǔ)器204或者硬盤驅(qū)動(dòng)器中所存儲(chǔ)的數(shù)據(jù)的離散集。文件系統(tǒng)接口206可以接收請求以便對文件執(zhí)行某些操作,諸如建立、打開、查找、讀、寫、重命名、刪除、復(fù)制、移動(dòng)等等。該請求例如可以源自主機(jī)OS或者應(yīng)用程序。主機(jī)OS可以包括用于系統(tǒng)的OS。例如,如果本發(fā)明的實(shí)施例是作為個(gè)人計(jì)算機(jī)的一部分加以實(shí)現(xiàn)的,則該主機(jī)OS可以包括微軟公司所出售的OS,例如像MicrosoftWindows95、98、2000和NT。在本發(fā)明的一個(gè)實(shí)施例中,文件系統(tǒng)接口206作為由智能I/O規(guī)范(I2O)所定義的操作系統(tǒng)服務(wù)模塊(OSM)進(jìn)行操作,智能I/O規(guī)范(I2O)由I2O特殊興趣組(SIG)(I2OSIG)開發(fā),版本為1.5,于1997年4月采用,并且可從″www.i20sig.org″(″I2O規(guī)范″)中獲得,不過本發(fā)明在范圍上并不限制于這一方面。作為背景,該I2O規(guī)范定義了用于獨(dú)立于受控的專用設(shè)備和主機(jī)操作系統(tǒng)(OS)這二者的智能I/O的標(biāo)準(zhǔn)體系結(jié)構(gòu)。在本上下文中的智能I/O是指將處理低級中斷的功能從中央處理單元(CPU)或者其他處理器移到特別設(shè)計(jì)成對I/O功能提供處理的I/O處理器(IOP)。這樣就可以改進(jìn)I/O性能以及允許該CPU或者其他處理器給其他任務(wù)提供處理功能性。在本上下文中的中斷是指對訪問I/O設(shè)備,諸如硬盤驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、打印機(jī)、監(jiān)視器、鍵盤、網(wǎng)絡(luò)接口卡(NIC)等等的請求。該I2O規(guī)范描述OSM、中間服務(wù)模塊(ISM)和硬件設(shè)備模塊(HDM)。該OSM可以是一個(gè)驅(qū)動(dòng)器,該驅(qū)動(dòng)器作為主機(jī)OS和ISM之間的接口進(jìn)行操作。在本上下文中的驅(qū)動(dòng)器是指一組程序指令,該組程序指令管理特定部件、設(shè)備或者軟件模塊的操作。該ISM可以作為在該OSM和硬件設(shè)備模塊(HDM)之間的接口進(jìn)行操作。該ISM可以執(zhí)行用于I/O管理功能的特定功能性、網(wǎng)絡(luò)協(xié)議或例如像后臺歸檔這樣的對等功能性。該HDM可以是用于操作來控制特定I/O設(shè)備的驅(qū)動(dòng)器。該I2O規(guī)范定義一種通信模型,該通信模型包括消息傳遞系統(tǒng)。該OSM、ISM和HDM通過采用消息的形式經(jīng)消息層傳遞信息來通信和協(xié)調(diào)操作。在本上下文中的消息層可以管理和調(diào)度請求,提供用于交付消息的一組應(yīng)用編程接口(API),以及提供用于處理消息的一組支持例程。在本發(fā)明的一個(gè)實(shí)施例中,文件系統(tǒng)接口206作為根據(jù)I2O規(guī)范的OSM進(jìn)行操作。在本發(fā)明的一個(gè)實(shí)施例中,文件系統(tǒng)接口206通過主機(jī)OS接收來自應(yīng)用程序的文件請求,根據(jù)該I2O規(guī)范將該請求翻譯成消息,并且將它發(fā)送到文件系統(tǒng)管理器(在以下描述)以便處理。在本上下文中的應(yīng)用程序是指這樣的程序,該程序?yàn)閷iT任務(wù)提供預(yù)定的一組函數(shù),典型地具有用戶界面以便有利于處理用戶和該計(jì)算機(jī)系統(tǒng)之間的命令和指令。應(yīng)用程序的例子可以包括字處理程序、擴(kuò)展頁、數(shù)據(jù)庫或者因特網(wǎng)瀏覽器。接口208可以包括任何適合于使用例如希望的一組通信協(xié)議、服務(wù)和操作過程來控制在計(jì)算機(jī)或者網(wǎng)絡(luò)設(shè)備之間的通信信號的技術(shù)。在本發(fā)明的一個(gè)實(shí)施例中,接口208可以例如根據(jù)PCI規(guī)范和I2O規(guī)范進(jìn)行操作。在本發(fā)明的另一個(gè)實(shí)施例中,接口208可以根據(jù)如下協(xié)議進(jìn)行操作,該協(xié)議分別是由因特網(wǎng)工程任務(wù)組(IETF)標(biāo)準(zhǔn)7的、于1981年9月采用的請求評注(RFC)793所定義的傳輸控制協(xié)議(TCP),和IETF標(biāo)準(zhǔn)5的、1981年9月采用的請求評注(RFC)791所定義的網(wǎng)際協(xié)議(IP),這二者都可從″www.ietf.org″中獲得。盡管接口208可以根據(jù)上述協(xié)議進(jìn)行操作,但是應(yīng)該理解的是,接口208可以使用任何適合于使用例如希望的一組通信協(xié)議、服務(wù)和操作過程來控制計(jì)算機(jī)或者網(wǎng)絡(luò)設(shè)備之間的通信信號的技術(shù)進(jìn)行操作,并且仍然落在本發(fā)明的范圍之內(nèi)。接口208還包括用于將接口208連接到適合的通信介質(zhì)的連接器。接口208可以通過任何合適的介質(zhì)諸如銅線、雙絞線、同軸電纜、光纖、射頻等等接收通信信號。在本發(fā)明的一個(gè)實(shí)施例中,該連接器適合與總線一起使用,以便承載遵從PCI規(guī)范的信號。圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的服務(wù)器系統(tǒng)的框圖。圖3說明根據(jù)本發(fā)明的一個(gè)實(shí)施例、代表服務(wù)器106的服務(wù)器300。如圖3所示,服務(wù)器300包括處理器302、存儲(chǔ)器304和接口308,它們都由連接310加以連接。圖3的元件302、304、308和310在結(jié)構(gòu)和操作上與參考圖2所描述的對應(yīng)元件202、204、208和210是相似的。盡管所展示的服務(wù)器300帶有處理器302,但是應(yīng)該理解的是,服務(wù)器300在沒有處理器302的情況下可以通過使用可用于服務(wù)器300的另一個(gè)處理器(例如,處理器202)來進(jìn)行操作,并且仍然落在本發(fā)明的范圍之中。例如,如果本發(fā)明的該實(shí)施例被并入到個(gè)人計(jì)算機(jī)中,其中該客戶和服務(wù)器由PCI總線加以連接并且都共享單一的處理器,則這種配置可以出現(xiàn)。在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)器304包含文件系統(tǒng)管理器306的程序指令。文件系統(tǒng)管理器306執(zhí)行文件管理,并提供對包含多個(gè)文件的存儲(chǔ)介質(zhì)(未示出)的訪問。文件系統(tǒng)306對從文件系統(tǒng)接口206所接收的文件請求作出響應(yīng)而執(zhí)行文件操作,諸如建立、打開、查找、讀、寫、重命名、刪除、復(fù)制、移動(dòng)等等。文件系統(tǒng)接口206的一個(gè)例子包括根據(jù)I2O規(guī)范操作的ISM,不過本發(fā)明的范圍并不限制于這一方面。將參考圖4和5,更詳細(xì)地對系統(tǒng)100、200和300的操作進(jìn)行描述。盡管在此所展示的圖4和5包括特定的操作順序,但是應(yīng)該理解的是,操作的順序僅僅提供在此所描述的通用功能是如何實(shí)現(xiàn)的例子。此外,操作的順序不一定必須要按照所展示的次序加以執(zhí)行,除非另有指示。圖4是由根據(jù)本發(fā)明的一個(gè)實(shí)施例的客戶執(zhí)行的操作的方框流程圖。在本發(fā)明的該實(shí)施例中,文件系統(tǒng)接口206作為客戶106的一部分進(jìn)行操作。不過,應(yīng)該理解的是,文件系統(tǒng)接口206,可以由位于計(jì)算機(jī)或者網(wǎng)絡(luò)系統(tǒng)中的任何地方的任何設(shè)備,或者設(shè)備的組合加以實(shí)現(xiàn),并仍然落在本發(fā)明的范圍之內(nèi)。如圖4所示,在塊402,客戶接收訪問具有文件名的文件的請求。在塊404,該客戶將該文件名與標(biāo)識符關(guān)聯(lián)起來。在塊406,該客戶將該關(guān)聯(lián)的標(biāo)識符和文件名發(fā)送到服務(wù)器。在塊408,該客戶將該關(guān)聯(lián)的標(biāo)識符和文件名存儲(chǔ)到存儲(chǔ)器中。在塊410,該客戶接收來自該服務(wù)器的確認(rèn)消息。一旦該客戶將標(biāo)識符指配給文件,則該標(biāo)識符就被用于對該文件的以后的請求。該客戶在該客戶端接收訪問該文件的第二個(gè)請求。該客戶從存儲(chǔ)器中檢索與該文件名相關(guān)聯(lián)的標(biāo)識符。該客戶使用該關(guān)聯(lián)的標(biāo)識符將第二個(gè)請求發(fā)送到該服務(wù)器。圖5是由根據(jù)本發(fā)明的一個(gè)實(shí)施例的服務(wù)器加以執(zhí)行的操作的方框流程圖。在本發(fā)明的該實(shí)施例中,文件系統(tǒng)管理器306作為客戶106的一部分進(jìn)行操作。不過,應(yīng)該理解的是,這一功能性可以由位于計(jì)算機(jī)或者網(wǎng)絡(luò)系統(tǒng)中任何地方的任何設(shè)備,或者設(shè)備的組合加以實(shí)現(xiàn),并仍然落在本發(fā)明的范圍之內(nèi)。如5圖所示,在塊502,服務(wù)器接收文件的文件名和關(guān)聯(lián)的標(biāo)識符。在塊504,該服務(wù)器將確認(rèn)消息發(fā)送給該客戶。在塊506,該服務(wù)器搜索該文件的位置信息。在塊508,該服務(wù)器將該位置信息和該標(biāo)識符關(guān)聯(lián)起來。該服務(wù)器將該關(guān)聯(lián)的位置信息和標(biāo)識符存儲(chǔ)到存儲(chǔ)器中。一旦該服務(wù)器使用該標(biāo)識符索引到了文件的位置信息,該服務(wù)器就能夠?qū)罄m(xù)的文件請求使用該標(biāo)識符來訪問該位置信息。該服務(wù)器接收具有該標(biāo)識符的訪問文件的第二個(gè)請求。該服務(wù)器使用該標(biāo)識符從存儲(chǔ)器檢索該位置信息。通過例子,對系統(tǒng)100、200和300的操作,以及在圖4和5中所展示的流程圖可以有更好的理解。應(yīng)用程序發(fā)送請求以便將信息從文件名為″測試文件一″的文件中讀到系統(tǒng)100的主機(jī)OS。在本上下文中的惟一標(biāo)識符是指一系列字母數(shù)字字符,當(dāng)它們被組合時(shí),相對于該客戶、服務(wù)器和/或系統(tǒng)所使用的其他字、值或者二進(jìn)制串,它們代表對該客戶、服務(wù)器和/或系統(tǒng)惟一的字、值或者二進(jìn)制串。主機(jī)OS將該文件請求傳遞給文件系統(tǒng)接口206。文件系統(tǒng)接口206生成惟一標(biāo)識符″A123″,并將它指配給文件名″測試文件一″。在本發(fā)明的該實(shí)施例中,該惟一標(biāo)識符″A123″例如可以是十六進(jìn)制的32位數(shù)。文件系統(tǒng)接口206建立一條消息″標(biāo)識(測試文件一,A123)″,并且將它放置到出站消息隊(duì)列,以便通過連接104傳輸?shù)轿募到y(tǒng)管理器306。在本上下文中的該出站消息隊(duì)列是指諸如先進(jìn)先出(FIFO)這樣的隊(duì)列,該隊(duì)列用于保持消息直到該互連系統(tǒng)能夠傳輸該消息為止。文件系統(tǒng)接口206將″測試文件一″與″A123″一起存儲(chǔ)在存儲(chǔ)器204中的查找表中。文件系統(tǒng)管理器306通過連接104接收該消息。文件系統(tǒng)管理器306解析該消息,并且調(diào)用函數(shù)″identify(測試文件一,A123)″。在本上下文中的術(shù)語“解析”是指將單個(gè)的字符或者字符的子集從表示例如命令、控制字、文件名、數(shù)據(jù)、函數(shù)調(diào)用、子例程名、標(biāo)志等等的消息中分離開。在本上下文中術(shù)語″調(diào)用″是指被發(fā)送到該處理器的命令開始執(zhí)行與給定的函數(shù)或者子例程相關(guān)聯(lián)的程序指令。這一函數(shù)接受作為輸入的″測試文件一″和″A123″,并且通知文件系統(tǒng)管理器306該文件名″測試文件一″將在后續(xù)的文件請求中作為″A123″被加以引用。這可以通過以下方式來實(shí)現(xiàn)將該文件名和惟一標(biāo)識符一起作為對應(yīng)的或者鏈接的項(xiàng)存儲(chǔ)來更新存儲(chǔ)器中的查找表,即,通過搜索一個(gè)可以找到另一個(gè)。文件系統(tǒng)管理器306搜索文件″A123″的位置信息,它典型地位于諸如硬盤驅(qū)動(dòng)器這樣的存儲(chǔ)設(shè)備上。位置信息的例子可以包括尋址信息、設(shè)備、柱面號和磁道號,不過,本發(fā)明在范圍上并不限制于這一方面。文件系統(tǒng)管理器306將該位置信息與標(biāo)識符″A123″關(guān)聯(lián)起來,并且將該位置信息與標(biāo)識符″A123″存儲(chǔ)在存儲(chǔ)器304中的查找表中。文件系統(tǒng)管理器306向文件系統(tǒng)接口206發(fā)送確認(rèn)消息該文件名標(biāo)識符和位置信息已經(jīng)被接收。在本上下文中的確認(rèn)消息是指一條短消息,指示前一條消息已被接收。該確認(rèn)消息可以包括單個(gè)位、字符、字或者短語,如特定系統(tǒng)所希望的。當(dāng)請求對文件名″測試文件一″進(jìn)行操作時(shí),由文件系統(tǒng)管理器306所接收的后續(xù)的文件請求然后將使用標(biāo)識符″A123″。例如,文件系統(tǒng)接口206接收第二個(gè)請求來執(zhí)行對″測試文件一″的″delete(刪除)″操作。文件系統(tǒng)接口206從存儲(chǔ)器中檢索″測試文件一″的先前關(guān)聯(lián)的標(biāo)識符″A123″。文件系統(tǒng)接口206將消息″delete(′A123′)″發(fā)送到文件系統(tǒng)管理器306。文件系統(tǒng)管理器306接收該消息″delete(′A123′)″,并且使用該標(biāo)識符″A123″檢索文件名″測試文件一″的位置信息。文件系統(tǒng)管理器306然后使用所檢索的位置信息執(zhí)行所請求的文件操作。在本發(fā)明的一個(gè)實(shí)施例中,文件系統(tǒng)接口206可以作為根據(jù)I2O規(guī)范的OSM以及作為諸如可從″www.kernel.org″(″Linuxkernel″)中獲得的LinuxOS版本2.3.99pre-3內(nèi)核這樣的特定主機(jī)OS加以實(shí)現(xiàn)。在本發(fā)明的這一實(shí)施例中,該OSM還可以包括流森林(streamforest)OSM、流樹(streamtree)OSM、以及類的說明。在本上下文中的類可以指特定的接口定義。在本上下文中的樹可以指被稱為圓錐(cone)的存儲(chǔ)對象的集合。在本上下文中的對象可以指類的實(shí)例。在本上下文中的圓錐可以指例如支持讀、寫和加鎖能力的存儲(chǔ)對象。在本上下文中的森林可以指樹的集合。在本發(fā)明的這一實(shí)施例中,流森林OSM可以被用于建立文件系統(tǒng)集合的模型。流森林OSM可以例如提供文件命名操作,諸如建立名字、刪除名字、或者重命名特定的森林。此外,打開和關(guān)閉操作也可以被支持。樹OSM可以被用于建立特定文件系統(tǒng)的模型。文件可以被建立成圓錐的模型。流森林OSM例如還可以用來支持文件操作,諸如命名文件、重命名它、刪除它、給它加鎖以防改變、讀取它或者寫入它。該OSM可以被設(shè)計(jì)成與ISM進(jìn)行通信。該ISM還可以包括流森林ISM和流樹ISM。流森林ISM可以支持該OSM的文件系統(tǒng)命名能力。在本發(fā)明的一個(gè)實(shí)施例中,流樹ISM可以支持長度為28個(gè)字符的流圓錐標(biāo)識符。流樹ISM還可以支持216個(gè)打開的流圓錐,以及232個(gè)可能的流圓錐。流樹ISM對于所有包含的流圓錐可以支持264個(gè)字節(jié)。應(yīng)該理解的是,這些值并未將本發(fā)明的范圍限制在這一方面。在操作中,流樹OSM、流森林OSM、流樹ISM和流森林ISM都可以使用根據(jù)以上所述的類規(guī)范的消息傳送方案進(jìn)行通信。這種消息傳送方案將被稱為流式消息傳送方案,并且以下還要詳細(xì)地加以論述。主機(jī)OS可以使用由流森林OSM和流樹OSM所提供的功能性。該主機(jī)OS例如可以使用該流森林OSM來建立文件系統(tǒng)的編組的模型,并且使用該流樹OSM來建立特定文件系統(tǒng)的模型。該流森林OSM可以使用該流森林ISM來管理IRTOS環(huán)境之中的文件系統(tǒng)的編組。該流樹OSM可以使用該流樹ISM來管理在I2O實(shí)時(shí)操作系統(tǒng)(IRTOS)環(huán)境之中的文件系統(tǒng)。該流森林OSM和流樹OSM可以使用該流消息傳送方案分別與該流森林OSM和流樹ISM進(jìn)行通信。還將參考圖7對本發(fā)明的該實(shí)施例進(jìn)行描述。圖6說明一種根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件體系結(jié)構(gòu)。如圖6所示,系統(tǒng)600可以包括具有流森林OSM602、LinuxOS604、Linux虛擬文件系統(tǒng)(VFS)606、流樹OSM608、和一個(gè)或者多個(gè)LinuxI2O驅(qū)動(dòng)器610的文件系統(tǒng)接口。LinuxI2O驅(qū)動(dòng)器610可以根據(jù)Linux內(nèi)核和I2O規(guī)范進(jìn)行操作。LinuxI2O驅(qū)動(dòng)器610可以包括PCII2O驅(qū)動(dòng)器612。PCII2O驅(qū)動(dòng)器612可以根據(jù)PCI規(guī)范和I2O規(guī)范進(jìn)行操作。該文件系統(tǒng)接口通過用于根據(jù)PCI規(guī)范傳送信號的總線614與文件系統(tǒng)管理器進(jìn)行通信。該文件系統(tǒng)管理器可以包括流森林ISM616、流樹ISM618、廉價(jià)磁盤冗余陣列(RAID)ISM620、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)HDM622和IRTOS624。在本發(fā)明的這一實(shí)施例中,在系統(tǒng)600中所展示的模塊可以使用C編程語言加以實(shí)現(xiàn),不過本發(fā)明的范圍并不限制于這一方面。此外,在本發(fā)明的這一實(shí)施例中,在系統(tǒng)600中展示的模塊支持長度為255個(gè)字符的標(biāo)識符。流樹OSM608可以被配置成提供對典型文件系統(tǒng)的訪問。流樹OSM608可以被配置成支持一個(gè)或者多個(gè)LinuxVFS所要求的函數(shù),如由Linux規(guī)范所定義的。流樹OSM608可以被配置成支持流樹類消息,如在以下將更加詳細(xì)地加以論述的。流樹OSM608可以被配置成使用例如Linux內(nèi)核與LinuxOS604一起操作。流樹OSM608可以支持流樹ISM,諸如流樹ISM618。流森林OSM602可以提供函數(shù)loct1()kernelinterface(內(nèi)核接口)。流森林OSM602可以用于使用函數(shù)名諸如″IOCTL_SF_TREECREATE″在流森林中建立流樹。這一函數(shù)可以接收例如用C語言按如下定義的輸入緩沖器作為輸入structik_sf_treecreate{U32SizeInBlocks;charname[256];}。流森林OSM602還可以用于使用函數(shù)名諸如″IOCTL_SF_TREERENAME″來重命名已有的流樹。這一函數(shù)可以接收例如用C語言按如下定義的輸入緩沖器作為輸入structik_sf_treerename{charIdentifierBeforeRename[256];charIdentifierAfterRename[256];}。流森林OSM602還可以用于使用函數(shù)名諸如″IOCTL_SF_TREEERASE″來刪除已有的流樹。這一函數(shù)可以接收例如用C語言按如下定義的輸入緩沖器作為輸入structik_sf_treeerase{charIdentifierToErase[256];}。流森林OSM602可以使用一個(gè)或者多個(gè)如下的數(shù)據(jù)結(jié)構(gòu)。此處被稱為″超級塊(superblock)″的數(shù)據(jù)結(jié)構(gòu)可以被用于代表文件系統(tǒng)的初始″i節(jié)點(diǎn)(inode)″。在本上下文中的″i節(jié)點(diǎn)″可以指該文件系統(tǒng)的文件節(jié)點(diǎn)。超級塊操作列表可以是函數(shù)的編組,該函數(shù)被用于操縱該超級塊。i節(jié)點(diǎn)記錄數(shù)據(jù)結(jié)構(gòu)可以被用于代表該文件系統(tǒng)的每個(gè)文件節(jié)點(diǎn)。i節(jié)點(diǎn)操作列表可以是函數(shù)的編組,該函數(shù)被用于操縱i節(jié)點(diǎn)。文件記錄數(shù)據(jù)結(jié)構(gòu)可以被用于代表文件系統(tǒng)中的抽象文件。文件操作列表可以被用于支持文件操作。與操作列表操作組合在一起的所有這些數(shù)據(jù)結(jié)構(gòu)可以被用于代表文件系統(tǒng)。流樹類消息可以向幾個(gè)該數(shù)據(jù)結(jié)構(gòu)發(fā)出。流樹類消息可以例如對于i節(jié)點(diǎn)操作建立、查找、建立目錄(″mkdir″)、刪除目錄(″rmdir″)、和重命名目錄而被發(fā)出。流樹類消息可以對于各種文件操作,諸如打開、讀、寫、查找、和關(guān)閉而被發(fā)出。流森林OSM602可以使用標(biāo)識符″i2Ofs″將所包含的文件系統(tǒng)注冊到例如Linux內(nèi)核中。例如,對于根樹圓錐容器,流森林OSM602可以使用NULL標(biāo)識符。例如,對于當(dāng)前的樹圓錐容器,流森林OSM602可以使用標(biāo)識符′.′。例如,對于父樹圓錐容器,流森林OSM602可以使用標(biāo)識符′..′。系統(tǒng)600可以包含對于一個(gè)或者多個(gè)如下模塊的系統(tǒng)描述1.內(nèi)核的MODULE_AUTHOR描述;2.″I2OFilesystemOffloadDriver(I2O文件系統(tǒng)卸載驅(qū)動(dòng)器)″的MODULE_DESCRIPTION;3.module_init(),它可以注冊該文件系統(tǒng);4.module_exit(),它可以除去該文件系統(tǒng)的注冊;5.DECLARE_FSTYPE模塊,它可以具有參數(shù)i2ofs_typei2ofs、讀超級操作以及0;6.OSM句柄管理器模塊,它可以具有第一句柄零,它按照每使用的句柄增加1;a.內(nèi)部軟件接口AcquireHandle(),它可以檢索未用過的句柄;和b.內(nèi)部軟件接口ReleaseHandle(int),它可以將當(dāng)前使用的句柄釋放到空閑池中。系統(tǒng)600還可以提供函數(shù)VFSi2ofs_read_super(structsuper_block*sb,void*options,intsilent)。這一函數(shù)可以接收如表1中所定義的輸入。表1這一函數(shù)將該超級塊結(jié)構(gòu)中的值設(shè)置為0。以下變量可以按如下被設(shè)置sb-&gt;s_blocksize=512。sb-&gt;s_blocksize_bits=10。sb-&gt;S_s_magic=I2OFS_SUPER_MAGICsb-&gt;s_op=在該OSM中所定義的super_operations結(jié)構(gòu)。該函數(shù)可以使用被稱為get_empty_inode()的模塊建立新的i節(jié)點(diǎn)。該i節(jié)點(diǎn)可以被設(shè)置為零,各種關(guān)聯(lián)的變量具有如下的設(shè)置inodei_uid=20。inodei_gid=20。i節(jié)點(diǎn)操作可以被設(shè)置成描述該i節(jié)點(diǎn)操作列表的指針。inodei_fop可以被設(shè)置成描述該文件操作列表的點(diǎn)。inodeI_mode可以被設(shè)置成S_IFDIR|S_IRUGO|S_IXUGO。i節(jié)點(diǎn)可以被插入到i節(jié)點(diǎn)哈希表中。Sb-&gt;s_root可以被設(shè)置成該根i節(jié)點(diǎn)的d_alloc_root()。VFS606中的每個(gè)文件系統(tǒng)可以具有至少一個(gè)超級塊,該超級塊包含有關(guān)該文件系統(tǒng)的足夠信息以啟動(dòng)該文件系統(tǒng)的活動(dòng)的。該超級塊可以用C結(jié)構(gòu)structsuper_block如下地加以實(shí)現(xiàn)<prelisting-type="program-listing"><![CDATA[  structsuper_block{  structlist_heads_list;  kdev_ts_dev;  unsignedlongs_blocksize;  unsignedlongs_blocksize_bits;  unsignedchars_lock;  unsignedchars_dirt;  structfile_system_type*s_type;  structsuper_operations*s_op;  structdquot_operations*dq_op;  unsignedlongs_flags;  unsignedlongs_magic;  structdentry*s_root;  wait_queue_head_ts_wait;  structinode*s_ibasket;  shortints_ibasket_count;  shortints_ibasket_max;  structlist_heads_dirty;  structlist_heads_files;  structblock_device*s_bdev;  }。]]></pre>變量super_block-&gt;s_op可以包含如下C函數(shù),并且提供對該超級塊的訪問。<prelisting-type="program-listing"><![CDATA[  structsuper_operations{  void(*read_inode)(structinode*);  void(*write_inode)(structinode*)void(*put_inode)(structinode*);  void(*delete_inode)(structinode*);  void(*put_super)(structsuper_block*);  void(*write_super)(structsuper_block*);  void(*statfs)(structsuper_block*,s6tructstatfs*);  int(*remount_fs)(structsuper_block*,int*,char*);  void(*clear_inode)(structinode);  void(*umount_begin)(structsuper_block*);  }。]]></pre>i節(jié)點(diǎn)接口的例子可以如下<prelisting-type="program-listing"><![CDATA[  structinode{  structlist_headi_hash;  structlist_headi_list;  structlist_headi_dentry;  unsignedlongi_ino;  unsignedinti_count;  kdev_ti_dev;  umode_ti_mode;  nlink_ti_nlink;  uid_ti_uid;  gid_ti_gid;  kdev_ti_rdev;  loff_tI_size;  time_tI_atime;  time_tI_mtime;  time_tI_ctime;  unsignedlongI_blksize;  unsignedlongI_blocks;  unsignedlongI_version;  structsemaphoreI_sem;  structsemaphoreI_zombie;  structinode_operations*I_op;  structfile_operations*I_fop;  structsuper_block*I_sb;  wait_queue_head_tI_wait;  structfile_lock*I_flock;  structaddress_space*I_mapping;  structaddress_spaceI_data;structdquot*l_dquot[MAXQUOTAS];   structpipe_inode_info*I_pipe;   Structblock_deviceI_bdev;   UnsignedlongI_state;   UnsignedintI_flags;   UnsignedcharI_sock;   Atomic_tI_writecount;   UnsignedintI_attr_flags;  __u32I_generation;  }。]]></pre>變量inode-&gt;i_op可以包含如下C函數(shù),并提供對該超級塊的方法訪問,如下<prelisting-type="program-listing"><![CDATA[ structinode_operations{ structfile_operations*default_file_ops; int(*create)(structinode*,constchar*,int,int,structinode**); structdentry*(*lookup)(structinode*,structdentry*) int(*link)(structdentry*,structinode*,structdentry*);  int(*unlink)(structinode*,structdentry*);  int(*symlink)(structinode*,structdentry*,constchar*);  int(*mkdir)(structinode*,structdentry*,int);  int(*rmdr)(structinode*,structdentry*);  int(*mknod)(structinode*,structdentry*,int,int);  int(*rename)(structinode*,structdentry*,structinode*,struct  dentry*);  int(*readlink)(structdentry*,char*,int);  structdentry*(*follow_link)(structdentry*,structdentry*,  unsignedint);  void(*truncate)(structinode*);  int(*permission)(structinode*,int);  int(*revalidate)(structdentry*);  int(*setattr)(structdentry*,structiattr*);  int(*getattr)(structdentry*,structiattr*);  }。]]></pre>系統(tǒng)600還提供函數(shù)create(structinode*,constchar*,int,int,structinode**)。這一函數(shù)可以接受在表2中所闡述的輸入。表2這一函數(shù)可以使用get_empty_inode()來建立新的i節(jié)點(diǎn)。該函數(shù)可以通過經(jīng)由dentry關(guān)系將constchar*變量附加到該新的i節(jié)點(diǎn)上而初始化該新的i節(jié)點(diǎn)。該函數(shù)可以使用所指定的大小來初始化新的i節(jié)點(diǎn)結(jié)構(gòu)。該函數(shù)可以使用所指定的模式初始化該新的i節(jié)點(diǎn)結(jié)構(gòu)。該函數(shù)可以將StreamConeCreate消息發(fā)送到該流樹ISM。該消息可以按照如下加以配置1.HANDLE可以被從該OSM句柄管理器中加以檢索;2.TYPE可以被設(shè)置為1,指示一個(gè)文件;和3.SGL可以被設(shè)置成NewName。NewInode的參考解除可以使用該新的i節(jié)點(diǎn)結(jié)構(gòu)加以設(shè)置。系統(tǒng)600還可以提供函數(shù)structdentry*lookup(structinode*,structdentry*)。這一函數(shù)可以接受在表3中所闡述的輸入。表3這一函數(shù)可以將StreamConeIdentify消息發(fā)送到流樹ISM618。該消息可以按如下配置1.PARENTHANDLE可以被設(shè)置成ParentDirectoryinode局部數(shù)據(jù)之內(nèi)所標(biāo)識的句柄;2.CHILDHANDLE可以被設(shè)置成從該OSM句柄管理器中所檢索的句柄;3.ATTRIBUTES可以被設(shè)置成STREAMCONECREATE_QUERY;和4.SGL可以被設(shè)置成Name。該函數(shù)可以使用get_empty_inode()建立新的i節(jié)點(diǎn)。該函數(shù)可以通過經(jīng)由dentry關(guān)系將constchar*變量附加到該新的i節(jié)點(diǎn)來初始化它。該函數(shù)可以將StreamConeGetInformation消息發(fā)送到該流樹ISM。該消息可以按如下配置1.HANDLE可以按如上被設(shè)置成CHILDHANDLE;和2.SGL可以被設(shè)置成局部數(shù)據(jù)結(jié)構(gòu)類型的信息結(jié)果塊。該函數(shù)可以根據(jù)該信息結(jié)果塊設(shè)置該i節(jié)點(diǎn)的值。該函數(shù)可以將該NewINODE變量的參考解除設(shè)置到已經(jīng)被建立的i節(jié)點(diǎn)。系統(tǒng)600可以提供函數(shù)mkdir(structinode*,structdentry*,int)。這一函數(shù)可以接受在表4中所闡述的輸入。表4該函數(shù)可以發(fā)送StreamConeCreate消息以便建立目錄。該消息可以按如下配置1.HANDLE可以被設(shè)置成在i節(jié)點(diǎn)結(jié)構(gòu)輸入ParentDirectory中所標(biāo)識的句柄;2.TYPE可以被設(shè)置成2;和3.SGL可以被設(shè)置成包含該實(shí)際名字的輸入Name。系統(tǒng)600可以提供函數(shù)rmdir(structinode*,structdentry*)。這一函數(shù)可以接受表5所闡述的輸入。表5這一函數(shù)可以發(fā)送StreamConeErase消息以便刪除目錄。該消息可以按如下配置1.HANDLE可以被設(shè)置成在該i節(jié)點(diǎn)結(jié)構(gòu)輸入ParentDirectory中所標(biāo)識的句柄;和2.SGL可以被設(shè)置成該輸入Name。系統(tǒng)600還可以提供函數(shù)rename(structinode*,structdentry*,structinode*,structdentry*)。這一函數(shù)可以接受表6所闡述的輸入。表6這一函數(shù)可以將StreamConeIdentify消息發(fā)送到該ISM。該消息可以按如下配置1.PARENTHANDLE可以根據(jù)OldDiri節(jié)點(diǎn)內(nèi)部存儲(chǔ)被設(shè)置用于OSM句柄;2.CHILDHANDLE可以被設(shè)置成從該OSM句柄管理器中檢索的新的句柄;3.ATTRIBUTES可以被設(shè)置成STREAMCONECREATE_QUERY;和4.SGL可以被設(shè)置成OldName。該函數(shù)可以將StreamConeRename消息發(fā)送到該ISM。該消息可以按如下配置1.HANDLE可以被設(shè)置成StreamConeIdentify的CHILDHANDLE;2.NEWPARENT可以為OSM句柄被設(shè)置到NewDiri節(jié)點(diǎn)內(nèi)部存儲(chǔ);和3.SGL可以被設(shè)置成NewName。該函數(shù)可以將StreamConeClose消息發(fā)送到該ISM。該消息可以按如下配置HANDLE可以根據(jù)StreamConeRename消息被設(shè)置成以前的HANDLE。系統(tǒng)600還可以提供函數(shù)truncate(structinode*)。這一函數(shù)可以接受表7所闡述的輸入。表7該函數(shù)可以將StreamConeResize消息發(fā)送到該ISM。該消息可以按如下配置1.HANDLE可以被從該i節(jié)點(diǎn)內(nèi)部OSM句柄存儲(chǔ)中檢索到;和2.SIZE可以被從該i節(jié)點(diǎn)變量i_size中檢索到。VFS606中的每個(gè)文件可以具有至少一個(gè)超級塊,該超級塊可以包含關(guān)于該文件系統(tǒng)的足夠信息以啟動(dòng)該文件系統(tǒng)的活動(dòng)。這一超級塊的細(xì)節(jié)用C結(jié)構(gòu)structsuper_block給出,諸如前面所描述的超級塊。方法變量,f_op,可以提供對文件操作的訪問。structsuper_operate*s_op函數(shù)可以提供對根i節(jié)點(diǎn)的訪問,它對于該OSM可能是需要的。<prelisting-type="program-listing"><![CDATA[  structfile{  structlist_headf_lst;  strtuctdentry*f_dentry;  structfile_operations*f_op;  atomic_tf_count;  unsignedintf_flags;  mode_tf_mode;  loff_tf_pos;  unsignedlongf_reada;  unsignedlongf_ramax;  unsignedlongf_raend;  unsignedlongf_ralen;  unsignedlongf_rawin;  structfown_structf_owner;  unsignedintf_uid;  unsignedintf_gid;  intf_error;  unsignedlongf_version;  }。]]></pre>系統(tǒng)600可以提供以下描述的一個(gè)或者多個(gè)文件操作。變量f-&gt;s_op可以包含以下的C函數(shù),并且可以提供對該超級塊的訪問。<prelisting-type="program-listing"><![CDATA[  structfile_operations{  loff_t(*11seek)(structfile*,off_t,int)  ssize_t(*read)(structfile*,char*,size_t,lofft*);  ssize_t(*write)(structfile*,constchar*,size_t,loff_t*);  int(*readdir)(structfile*,void*,filldir_t);  u_int(*poll)(structfile*,structpoll_table_struct*);  int(*ioct1)(structinode*,structfile*,unsignedint,  unsignedlong);  int(*mmap)(structfile*,structvm_area_struct*);int(*open)(structinode*,structfile*);  int(*release)(structinode*,structfile*);  int(*fsync)(structinode*,structdentry*);  int(*fasynch)(int,structfile*,int);  int(*lock)(structfile*,int,structfile_lock*);  ssize_t(*readv)(structfile*,conststructiovec*,unsignedlong,loff_t*);  ssize_t(*writev)(structfile*,conststructiovec*,unsignedlong,loff_t*);  }。]]></pre>系統(tǒng)600可以提供函數(shù)11seek(structfile*,off_t,int)。這一函數(shù)可以接受表8中所闡述的輸入。表8這一函數(shù)可以將StreamConeSeek消息發(fā)送到該ISM。該消息可以按如下配置1.HANDLE可以為OSM句柄根據(jù)節(jié)點(diǎn)內(nèi)部存儲(chǔ)而加以設(shè)置;和2.NEWPOSITION可以被設(shè)置成根據(jù)Offset和Origin的計(jì)算而獲得的位置。系統(tǒng)600可以提供函數(shù)read(structfile*,char*,size_t,loff_t)。這一函數(shù)可以接受表9所闡述的輸入。表9這一函數(shù)可以將StreamConeRead消息發(fā)送到該ISM。該消息可以按如下配置1.HANDLE可以為OSM句柄根據(jù)節(jié)點(diǎn)內(nèi)部存儲(chǔ)而加以設(shè)置;和2.SGL可以被設(shè)置成Buffer和Size。系統(tǒng)600可以提供函數(shù)write(structfile*,constchar*,size_t,loff_t*)。這一函數(shù)可以接受表10所闡述的輸入。表10這一函數(shù)可以將StreamConeWrite消息發(fā)送到該ISM。該消息可以按如下配置1.HANDLE可以為OSM句柄根據(jù)節(jié)點(diǎn)內(nèi)部存儲(chǔ)而加以設(shè)置;和2.SGL可以被設(shè)置成Buffer和Size。系統(tǒng)600可以提供函數(shù)readdir(structfile*,void*,filldir_t)。這一函數(shù)可以接受表11所闡述的輸入。表11這一函數(shù)可以將StreamConeEnumerate消息發(fā)送到該ISM。該消息可以按如下配置1.HANDLE可以為OSM句柄根據(jù)節(jié)點(diǎn)內(nèi)部存儲(chǔ)而加以設(shè)置;2.ENUMERATOR被設(shè)置為Count;3.SGL可以被設(shè)置成Entry的文件名緩沖器;4.SGL的大小可以被設(shè)置成255。系統(tǒng)600還可以提供如下的dentry接口<prelisting-type="program-listing"><![CDATA[  structdentry{  intd_count;  unsignedintd_flags;  structinode*d_inode;  structdentry*d_parent;  structdentry*d_mounts;  structdentry*d_covers;  structlist_headd_ash;  structlist_headd_lru;  structlist_headd_child;  structlist_headd_subdirs;  structlist_headd_alias;  structqstrd_name;  unsignedlongd_time;  structdentry_operations*d_op;  structsuper_block*d_sb;  unsignedlongd_reftime;  void*d_fsdata;  unsignedchard_iname[DNAME_INLINE_LEN];  }。]]></pre>流樹ISM618可以支持一個(gè)或者多個(gè)流樹類消息,如此處所定義的。流樹618可以運(yùn)行并支持來自流樹OSM,諸如流樹OSM608的消息。流森林ISM616可以支持流森林類消息,如此處所定義的。流森林ISM616可以運(yùn)行并支持來自流森林OSM,諸如流森林OSM602的消息。流森林ISM616可以包括用戶界面。該用戶界面可以包括用戶屏幕,該用戶屏幕可以在初始化時(shí)顯示一個(gè)或者多個(gè)流樹。用戶可能能夠建立新的流樹。當(dāng)建立新的流樹時(shí),可以向該用戶展示一個(gè)屏幕,來詢問大小和標(biāo)識。如果流樹被建立了,則流樹類對象就可以被建立。用戶還可能能夠刪除流樹。該用戶界面可以提供用于對刪除流樹進(jìn)行確認(rèn)。流森林消息可以被處理,并且樹對象被適當(dāng)?shù)亟ⅰO到y(tǒng)600可以提供消息StreamConeCreate。這一消息可以被用于建立新的流圓錐,該新的流圓錐將存儲(chǔ)信息,并且可以接受表12中所闡述的輸入。表12系統(tǒng)600還可以提供消息StreamConeEnumerate。這一消息可以被用于列出在流圓錐容器中的一個(gè)或者多個(gè)流圓錐,并且可以接受表13中所闡述的輸入。表13系統(tǒng)600可以從該句柄管理器中檢索涉及到HANDLE的i節(jié)點(diǎn)。當(dāng)枚舉型量(enumberator)被設(shè)置為0時(shí),″e(cuò)xt2fs″庫調(diào)用dir_iterate()可以與涉及到作為父的句柄的i節(jié)點(diǎn)一起使用以便在該″e(cuò)xt2″文件系統(tǒng)上生成流圓錐標(biāo)識符的列表。對應(yīng)于ENUMERATOR索引的列表?xiàng)l目可以被拷貝到SGL中。系統(tǒng)600可以提供消息StreamConeErase。這一消息被用于刪除流圓錐標(biāo)識符,并且可以接受在表14中所闡述的輸入。表14系統(tǒng)600可以提供消息StreamConeGetInformation。這一消息可以被用于檢索關(guān)于該流圓錐的信息,并且可以接受表15中所闡述的輸入。表15系統(tǒng)600可以提供消息StreamConeIdentify。這一消息可以被用于將句柄標(biāo)識符映射成字符串標(biāo)識符,并且可以接受表16所闡述的輸入。表16系統(tǒng)600可以提供消息streamConeLock。這一消息可以被用于加鎖文件的字節(jié)范圍,并且可以接受表17中所闡述的輸入。表17系統(tǒng)600可以提供消息StreamConeRead。這一消息可以被用于從流圓錐中讀取塊,并且可以接受表18中所闡述的輸入。表18系統(tǒng)600還可以提供消息StreamConeRelease。這一消息可以被用于關(guān)閉所指定的句柄的標(biāo)識,并且可以接受表19中所闡述的輸入。表19這一函數(shù)可以不鏈接來自該i節(jié)點(diǎn)標(biāo)識符的HANDLE。系統(tǒng)600可以提供消息StreamConeRename。這一消息可以被用于重命名流圓錐,并且可以接受在表20中所闡述的輸入。表20系統(tǒng)600還可以提供消息StreamConeResize。這一消息被用于調(diào)整流圓錐的大小,并且可以接受表21中所闡述的輸入。表21系統(tǒng)600可以提供消息StreamConeSeek。這一消息被用于改變流圓錐的位置,并且可以接受表22中所闡述的輸入。表22系統(tǒng)600可以提供消息StreamConeGetInformation。這一消息可以被用于設(shè)置關(guān)于該流圓錐的信息,并且可以接受表23中所闡述的輸入。表23系統(tǒng)600可以提供消息StreamConeUnlock。這一消息可以被用于解鎖以前設(shè)置的字節(jié)加鎖范圍,并且可以接受表24中所闡述的輸入。表24系統(tǒng)600可以提供消息StreamConeWrite。這一消息可以被用于將塊寫入到流圓錐,并且可以接受表25中所闡述的輸入。表25盡管如在此所描述的那樣對本發(fā)明的實(shí)施例的某些特征進(jìn)行了說明,但是現(xiàn)在,許多修改、替換、改變以及等價(jià)內(nèi)容對于本領(lǐng)域普通技術(shù)人員而言是會(huì)想到的。因此,應(yīng)該理解的是,所附的權(quán)利要求書旨在涵蓋落在本發(fā)明的實(shí)施例的實(shí)際精神之中的所有這種修改和改變。權(quán)利要求1.一種用于管理文件的方法,包括在客戶端接收訪問具有文件名的文件的第一請求;在所述客戶端將一標(biāo)識符與所述文件名關(guān)聯(lián)起來;和將所述第一請求與所述標(biāo)識符和所述文件名一起發(fā)送到一個(gè)服務(wù)器。2.權(quán)利要求1的方法,還包括將所述標(biāo)識符和文件名存儲(chǔ)到存儲(chǔ)器中。3.權(quán)利要求1的方法,還包括接收來自所述服務(wù)器的確認(rèn)消息。4.權(quán)利要求1的方法,還包括在所述客戶端接收訪問所述文件的第二請求;從所述存儲(chǔ)器中檢索與所述文件名相關(guān)聯(lián)的所述標(biāo)識符;和使用所述關(guān)聯(lián)的標(biāo)識符將所述第二請求發(fā)送到所述服務(wù)器。5.權(quán)利要求4的方法,其中所述第一和第二請求指定一個(gè)文件操作。6.一種用于管理文件的方法,包括在服務(wù)器端接收訪問具有文件名和標(biāo)識符的文件的第一請求;和將一確認(rèn)消息發(fā)送到所述客戶。7.權(quán)利要求6的方法,還包括搜索所述文件的位置信息;將所述位置信息與所述標(biāo)識符關(guān)聯(lián)起來;和將所述位置信息和所述標(biāo)識符存儲(chǔ)到存儲(chǔ)器中。8.權(quán)利要求7的方法,還包括在所述服務(wù)器端接收使用所述標(biāo)識符訪問所述文件的第二請求;和使用所述標(biāo)識符從所述存儲(chǔ)器中檢索所述位置信息。9.一種用于管理文件的方法,包括在客戶端接收具有文件名的文件請求;將一標(biāo)識符與所述文件名關(guān)聯(lián)起來;將所述標(biāo)識符和所述文件名發(fā)送到一服務(wù)器;使用所述文件名來搜索位置信息;和存儲(chǔ)所述位置信息與所述標(biāo)識符。10.權(quán)利要求9的方法,還包括將一確認(rèn)消息發(fā)送到所述客戶。11.一種用于管理文件操作的方法,包括通過一文件系統(tǒng)接口接收帶有文件名的文件請求;通過所述文件系統(tǒng)接口將一個(gè)惟一標(biāo)識符指配給所述文件名;和將所述惟一標(biāo)識符和文件名發(fā)送到一文件系統(tǒng)管理器。12.權(quán)利要求11的方法,還包括在所述文件系統(tǒng)管理器接收所述惟一標(biāo)識符和所述文件名;使用所述文件名搜索文件信息;和使用所述惟一標(biāo)識符存儲(chǔ)所述文件信息。13.一種產(chǎn)品,包括存儲(chǔ)介質(zhì);所述存儲(chǔ)介質(zhì)包括存儲(chǔ)的指令,當(dāng)該指令被處理器執(zhí)行時(shí),導(dǎo)致在客戶端接收訪問具有文件名的文件的第一請求,在所述客戶端將一標(biāo)識符與所述文件名關(guān)聯(lián)起來,以及將所述第一請求與所述標(biāo)識符和所述文件名一起與發(fā)送到一服務(wù)器。14.權(quán)利要求13的產(chǎn)品,其中當(dāng)該存儲(chǔ)的指令被處理器執(zhí)行時(shí),還導(dǎo)致將所述標(biāo)識符和文件名存儲(chǔ)到存儲(chǔ)器中。15.權(quán)利要求13的產(chǎn)品,其中當(dāng)該存儲(chǔ)的指令被處理器執(zhí)行時(shí),還導(dǎo)致接收來自所述服務(wù)器的一個(gè)確認(rèn)消息。16.權(quán)利要求13的產(chǎn)品,其中當(dāng)該存儲(chǔ)指令被處理器執(zhí)行時(shí),還導(dǎo)致在所述客戶端接收訪問所述文件的第二請求,從所述存儲(chǔ)器中檢索與所述文件名相關(guān)聯(lián)的所述標(biāo)識符,以及使用所述關(guān)聯(lián)的標(biāo)識符將所述第二請求發(fā)送到所述服務(wù)器。17.一種產(chǎn)品,包括存儲(chǔ)介質(zhì);所述存儲(chǔ)介質(zhì)包括存儲(chǔ)的指令,當(dāng)該指令被處理器執(zhí)行時(shí),導(dǎo)致在客戶端接收具有文件名的文件請求,將一標(biāo)識符與所述文件名關(guān)聯(lián)起來,將所述標(biāo)識符和所述文件名發(fā)送到一服務(wù)器,使用所述文件名搜索位置信息,以及存儲(chǔ)所述位置信息與所述標(biāo)識符。18.權(quán)利要求的產(chǎn)品17,其中當(dāng)該存儲(chǔ)的指令被處理器執(zhí)行時(shí),還導(dǎo)致將一確認(rèn)消息發(fā)送到所述客戶。19.一種用于執(zhí)行文件管理的裝置,包括接收對具有文件名的文件的請求的客戶,所述客戶將一個(gè)惟一標(biāo)識符指配給所述文件名,并且將所述惟一標(biāo)識符和所述文件名發(fā)送到一服務(wù)器;和與所述客戶相連接的互連系統(tǒng),該互連系統(tǒng)將所述惟一標(biāo)識符和所述文件名傳送到所述服務(wù)器。20.權(quán)利要求19的裝置,還包括接收所述惟一標(biāo)識符和文件名的服務(wù)器,所述服務(wù)器用于定位所述文件的信息,并且使用所述惟一標(biāo)識符來存儲(chǔ)所述信息。21.一種用于執(zhí)行文件管理的裝置,包括將一個(gè)標(biāo)識符指配給一個(gè)文件名的客戶;用于使用所述文件名來定位文件信息以及使用所述標(biāo)識符存儲(chǔ)所述文件信息的服務(wù)器;和用于在所述客戶和所述服務(wù)器之間傳輸所述文件名和所述標(biāo)識符的互連系統(tǒng)。22.權(quán)利要求21的裝置,其中所述客戶包括一個(gè)操作系統(tǒng)服務(wù)模塊。23.權(quán)利要求21的裝置,其中所述服務(wù)器包括一個(gè)中間服務(wù)模塊。24.權(quán)利要求21的裝置,其中所述互連系統(tǒng)根據(jù)外圍部件互連系統(tǒng)和I2O系統(tǒng)進(jìn)行操作。25.一種用于執(zhí)行文件管理的裝置,包括接收對具有文件名的文件的請求并且將一個(gè)惟一標(biāo)識符指配給所述文件名的文件系統(tǒng)接口;使用所述文件名定位文件信息和使用所述惟一標(biāo)識符存儲(chǔ)所述文件信息的文件系統(tǒng)管理器;和在所述文件系統(tǒng)接口和所述文件系統(tǒng)管理器之間傳送所述惟一標(biāo)識符和所述文件名的通信系統(tǒng)。26.權(quán)利要求25的裝置,其中所述通信系統(tǒng)包括通信介質(zhì),該通信介質(zhì)包括如下組中的至少一種,該組包括雙絞線、同軸電纜、光纖和射頻;以及根據(jù)一組通信協(xié)議操作的通信接口。全文摘要描述一種用于在計(jì)算機(jī)和通信網(wǎng)絡(luò)中管理文件的方法和裝置。文檔編號G06F12/00GK1549981SQ01822945公開日2004年11月24日申請日期2001年11月20日優(yōu)先權(quán)日2000年12月30日發(fā)明者S·達(dá)克,S達(dá)克申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
两当县| 乌拉特中旗| 宝鸡市| 精河县| 舒城县| 鄂州市| 柳林县| 积石山| 赤壁市| 襄汾县| 龙南县| 保定市| 江北区| 凤山县| 阳西县| 叶城县| 湘西| 南和县| 略阳县| 太原市| 巍山| 蕲春县| 吉首市| 井研县| 永川市| 蓬莱市| 瓦房店市| 大港区| 郧西县| 韶关市| 永新县| 九寨沟县| 沾益县| 东阿县| 兴海县| 滨海县| 连州市| 南开区| 赤城县| 界首市| 宝坻区|