c++-存儲(chǔ)空間管理_第1頁
c++-存儲(chǔ)空間管理_第2頁
c++-存儲(chǔ)空間管理_第3頁
c++-存儲(chǔ)空間管理_第4頁
c++-存儲(chǔ)空間管理_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

存儲(chǔ)空間管理東南大學(xué)電氣工程學(xué)院定義存儲(chǔ)器的分級(jí)結(jié)構(gòu):寄存器高速緩沖存儲(chǔ)器(緩存)內(nèi)存儲(chǔ)器(簡(jiǎn)稱內(nèi)存、主存、物理存儲(chǔ)器)處理機(jī)能直接訪問的存儲(chǔ)器。用來存放系統(tǒng)和用戶的程序和數(shù)據(jù),其特點(diǎn)是存取速度快,存儲(chǔ)方式是以新?lián)Q舊,斷電信息丟失。外存儲(chǔ)器(簡(jiǎn)稱外存、輔助存儲(chǔ)器)

處理機(jī)不能直接訪問的存儲(chǔ)器。用來存放用戶的各種信息,存取速度相對(duì)內(nèi)存而言要慢得多,但它可用來長(zhǎng)期保存用戶信息。內(nèi)存——存儲(chǔ)器管理外存——文件管理存儲(chǔ)器管理的功能(系統(tǒng)區(qū)和用戶區(qū),針對(duì)用戶區(qū))存儲(chǔ)空間的分配與管理;地址重定位(邏輯地址與物理地址的對(duì)應(yīng)關(guān)系)存儲(chǔ)保護(hù)存儲(chǔ)空間擴(kuò)充:虛擬存儲(chǔ)器技術(shù)以及各種調(diào)度算法。存儲(chǔ)器管理地址重定位分區(qū)存儲(chǔ)管理覆蓋和交換頁面式存儲(chǔ)管理請(qǐng)求式頁面存儲(chǔ)管理段式存儲(chǔ)管理段頁式存儲(chǔ)管理地址重定位地址空間和存儲(chǔ)空間邏輯地址(相對(duì)地址,虛地址):用戶的程序經(jīng)過匯編或編譯后形成目標(biāo)代碼,目標(biāo)代碼通常采用相對(duì)地址的形式。其首地址為0,其余指令中的地址都相對(duì)于首地址來編址。不能用邏輯地址在內(nèi)存中讀取信息。物理地址(絕對(duì)地址,實(shí)地址):內(nèi)存中存儲(chǔ)單元的地址。物理地址可直接尋址。地址映射:將用戶程序中的邏輯地址轉(zhuǎn)換為運(yùn)行時(shí)由機(jī)器直接尋址的物理地址。邏輯地址、物理地址和地址映射地址映射1100LoadA,12003456

。

。1200物理地址空間LoadA,data1data13456源程序LoadA,20034560100200編譯連接邏輯地址空間BA=1000地址重定位地址重定位:實(shí)現(xiàn)程序的相對(duì)地址空間到絕對(duì)地址空間之間的映射。程序在成為進(jìn)程前的準(zhǔn)備工作編輯:形成源文件(符號(hào)地址)編譯:形成目標(biāo)模塊(模塊內(nèi)符號(hào)地址解析)鏈接:由多個(gè)目標(biāo)模塊或程序庫生成可執(zhí)行文件(模塊間符號(hào)地址解析)裝入:構(gòu)造PCB,形成進(jìn)程(使用物理地址)重定位方法:靜態(tài)重定位:是指在程序裝入主存時(shí)已經(jīng)完成了邏輯地址到物理地址的變換,在程序執(zhí)行期間不會(huì)再發(fā)生變化.動(dòng)態(tài)重定位:在程序運(yùn)行期間完成邏輯地址到物理地址的變換.地址重定位分區(qū)存儲(chǔ)管理基本思想:將主存儲(chǔ)空間劃分成若干個(gè)連續(xù)的存儲(chǔ)區(qū),稱為分區(qū)。每個(gè)分區(qū)只能存儲(chǔ)一道程序,一個(gè)程序只能訪問其所在分區(qū)的存儲(chǔ)單元。單一連續(xù)區(qū)存儲(chǔ)管理

適用于單道程序系統(tǒng)內(nèi)存分為兩個(gè)連續(xù)區(qū)域:系統(tǒng)區(qū),用戶區(qū)。應(yīng)用程序裝入到用戶區(qū),可使用用戶區(qū)全部空間。最簡(jiǎn)單,適用于單道程序設(shè)計(jì)的OS。優(yōu)點(diǎn):易于管理。缺點(diǎn):對(duì)要求內(nèi)存空間少的程序,造成內(nèi)存浪費(fèi)(空閑存儲(chǔ)區(qū))。0H7FFFHFFFFFH操作系統(tǒng)用戶程序區(qū)08000H界限寄存器中斷矢量表空閑區(qū)單片機(jī)中的內(nèi)存設(shè)置基本思想:把內(nèi)存分為一些大小相等或不等連續(xù)區(qū)域----分區(qū)(partition),每個(gè)分區(qū)只能駐留一個(gè)程序。操作系統(tǒng)占用其中一個(gè)分區(qū)。特點(diǎn):適用于多道程序系統(tǒng)和分時(shí)系統(tǒng)支持多個(gè)程序并發(fā)執(zhí)行問題:存在碎片(小得難以使用的分區(qū))問題,可能存在內(nèi)部碎片和外部碎片。內(nèi)部碎片:占用分區(qū)之內(nèi)未被利用的空間外部碎片:占用分區(qū)之間難以利用的空閑分區(qū)(通常是小空閑分區(qū))。固定分區(qū)存儲(chǔ)管理分區(qū)存儲(chǔ)管理固定分區(qū)(大小相同)固定分區(qū)(多種大小)分區(qū)存儲(chǔ)管理優(yōu)點(diǎn):簡(jiǎn)單易于實(shí)現(xiàn),開銷小。缺點(diǎn):內(nèi)部碎片造成浪費(fèi)分區(qū)總數(shù)固定,限制了并發(fā)執(zhí)行的程序數(shù)目。采用的數(shù)據(jù)結(jié)構(gòu):分區(qū)表(分區(qū)說明表)--記錄分區(qū)的大小和使用情況OperatingSystem空閑分區(qū)分區(qū)5作業(yè)C分區(qū)4分區(qū)3分區(qū)2分區(qū)1空閑分區(qū)作業(yè)B作業(yè)A00000H08000H0A000H12000H1A000H3A000H區(qū)號(hào)起始地址大小使用標(biāo)志作業(yè)大小108000H8KY6K20A000H32KY24K312000H32KN41A000H128KY118K53A000H512KN內(nèi)存分區(qū)說明表分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū):在裝入作業(yè)和處理過程中,按其要求的內(nèi)存容量以及當(dāng)時(shí)的內(nèi)存資源使用情況,將一塊大小與所要求相近的存儲(chǔ)區(qū)分配給作業(yè)。優(yōu)點(diǎn):沒有內(nèi)部碎片。缺點(diǎn):有外部碎片。動(dòng)態(tài)分區(qū)(dynamicpartitioning)分區(qū)存儲(chǔ)管理Operating

System128K896KOperating

SystemProcess1320

K576KOperating

SystemProcess1320KProcess2224

K352K分區(qū)存儲(chǔ)管理Operating

SystemProcess1320

KProcess2Process3224

K288K64

KOperating

SystemProcess1320KProcess3224K288K64KOperating

SystemProcess1320

KProcess3288K64

KProcess4128

K96

K分區(qū)存儲(chǔ)管理Process2結(jié)束Process4運(yùn)行分區(qū)存儲(chǔ)管理Process1結(jié)束Process2再運(yùn)行分區(qū)的數(shù)據(jù)結(jié)構(gòu):分區(qū)表,或分區(qū)鏈表可以只記錄空閑分區(qū),也可以同時(shí)記錄空閑和占用分區(qū)單一分區(qū)表中,表項(xiàng)數(shù)目隨著內(nèi)存的分配和釋放而動(dòng)態(tài)改變,表長(zhǎng)難以確定,分配回收分區(qū)時(shí)降低查找速度。分區(qū)表可以劃分為兩個(gè)表:空閑分區(qū)表,使用分區(qū)表。從而減小每個(gè)表長(zhǎng)度??臻e分區(qū)表(一般常用鏈表結(jié)構(gòu))中按不同分配算法相應(yīng)對(duì)表項(xiàng)排序。分區(qū)分配和釋放算法最先匹配法(first-fit):可能造成碎片化問題最佳匹配法(best-fit):每次要從碎片開始查找,回收算法復(fù)雜最差匹配法(worst-fit):分配速度快,碎片小動(dòng)態(tài)分區(qū)管理:分區(qū)存儲(chǔ)管理引入:其目標(biāo)是在較小的可用內(nèi)存中運(yùn)行較大的程序。常用于多道程序系統(tǒng),與分區(qū)存儲(chǔ)管理配合使用?;舅枷?一個(gè)作業(yè)的若干程序段,或幾個(gè)作業(yè)的某些部分共享同一存儲(chǔ)區(qū)。優(yōu)點(diǎn):解決小主存容量與大作業(yè)之間的矛盾。缺點(diǎn):實(shí)現(xiàn)覆蓋管理的系統(tǒng)開銷較大。覆蓋和交換覆蓋(overlay)注:另一種覆蓋方法:(100K)A(20K)占一個(gè)分區(qū):20K;B(50K)、D(20K)和E(40K)共用一個(gè)分區(qū):50K;F(30K)和C(30K)共用一個(gè)分區(qū):30K;覆蓋技術(shù)不存在調(diào)用關(guān)系的模塊不必同時(shí)裝入到內(nèi)存,從而可以相互覆蓋。(即不同時(shí)用的模塊可共用一個(gè)分區(qū))缺點(diǎn):1、確定覆蓋關(guān)系的復(fù)雜度2、犧牲時(shí)間換取空間引入:解決主存容量不足的矛盾。多個(gè)程序并發(fā)執(zhí)行,可以將暫時(shí)不能執(zhí)行的程序送到外存中,從而獲得空閑內(nèi)存空間來裝入新程序,或讀入保存在外存中而目前到達(dá)就緒狀態(tài)的進(jìn)程。交換單位為整個(gè)進(jìn)程的地址空間。常用于多道程序系統(tǒng)或小型分時(shí)系統(tǒng)中,與分區(qū)存儲(chǔ)管理配合使用。又稱作“對(duì)換”或“滾進(jìn)/滾出(roll-in/roll-out)”?;舅枷?暫停執(zhí)行內(nèi)存中的進(jìn)程,將整個(gè)進(jìn)程的地址空間保存到外存的交換區(qū)中(換出swapout),而將外存中由阻塞變?yōu)榫途w的進(jìn)程的地址空間讀入到內(nèi)存中,并將該進(jìn)程送到就緒隊(duì)列(換入swapin)。交換優(yōu)點(diǎn):增加并發(fā)運(yùn)行的程序數(shù)目,并且給用戶提供適當(dāng)?shù)捻憫?yīng)時(shí)間;編寫程序時(shí)不影響程序結(jié)構(gòu)。缺點(diǎn):

對(duì)換入和換出的控制增加處理機(jī)開銷;程序整個(gè)地址空間都進(jìn)行傳送,沒有考慮執(zhí)行過程中地址訪問的統(tǒng)計(jì)特性??紤]的問題:換出進(jìn)程的選擇:一般換出短時(shí)間不會(huì)運(yùn)行的進(jìn)程交換時(shí)機(jī)的選擇:內(nèi)存不夠后有危險(xiǎn)時(shí)換出短時(shí)間不會(huì)運(yùn)行的進(jìn)程交換空間的分配:可交換到外存的相同或不同對(duì)換區(qū)換回內(nèi)存位置的確定:動(dòng)態(tài)重定位可以換回到不同的內(nèi)存區(qū),否則只能換回到相同的內(nèi)存區(qū)交換交換技術(shù)與覆蓋技術(shù)相比,交換技術(shù)的缺點(diǎn)是要花費(fèi)大量?jī)?nèi)、外存交換時(shí)間,所以外存中應(yīng)該保留交換程序的副本覆蓋與交換技術(shù)都實(shí)現(xiàn)了大作業(yè)在小內(nèi)存上運(yùn)行。覆蓋于與換技術(shù)的區(qū)別:覆蓋由用戶解決空間不足問題(即:覆蓋只能在一個(gè)程序內(nèi)部進(jìn)行)交換由系統(tǒng)解決空間不足問題(即:交換可以在任意程序間進(jìn)行)覆蓋對(duì)程序結(jié)構(gòu)有嚴(yán)格的限制交換對(duì)程序結(jié)構(gòu)沒有限制覆蓋與交換的比較引入:避開作業(yè)的連續(xù)性要求,將一個(gè)作業(yè)存放在不連續(xù)的存儲(chǔ)空間中,以很好地解決碎片問題。基本思想:系統(tǒng)把內(nèi)存物理空間等分為若干大小相等、位置固定的塊(或幀)。將程序的邏輯地址空間劃分為與塊大小相同的頁或頁面(pageorpageframe),程序加載時(shí),分配其所需的所有塊,這些塊不必連續(xù)。需要CPU的硬件支持。頁面式存儲(chǔ)管理地址空間分成大小相同的部分–––

頁存貯空間分成大小相同的部分–––

塊(頁幀)頁大?。綁K大小

頁表(PMT)

:又稱頁面映象表,記錄一個(gè)作業(yè)程序的頁號(hào)所對(duì)應(yīng)的內(nèi)存塊號(hào)。需要CPU的硬件支持。頁號(hào)塊號(hào)012238分配時(shí)頁對(duì)應(yīng)塊,但不要求連續(xù)頁表包括:頁號(hào),塊號(hào)頁面式存儲(chǔ)管理頁幀19OperatingSystem作業(yè)2(頁0)00000H0B000H0A800H0B800H0C000H0E000H作業(yè)1(頁0)作業(yè)2(頁2)作業(yè)1(頁1)作業(yè)2(頁1)作業(yè)3(頁0)……物理地址空間頁幀0頁幀20頁幀21頁幀22頁幀23頁幀24頁幀25頁幀26頁幀27頁幀280C800H0D000H0D800H01邏輯地址空間作業(yè)1(4K)01作業(yè)2(5K)20作業(yè)3(1.8K)01頁表0120頁幀號(hào)222025212427頁面式存儲(chǔ)管理頁面式存儲(chǔ)管理硬件地址變換:指令所給出地址分為兩部分:邏輯頁號(hào),頁內(nèi)偏移地址->查進(jìn)程頁表,得物理頁號(hào)->物理地址頁面大?。和ǔJ菐譑B到幾十KB(取2的冪)。小->內(nèi)部碎片??;大->頁表短,管理開銷小,交換時(shí)對(duì)外存I/O效率高。頁面式存儲(chǔ)管理頁式地址變換頁面式存儲(chǔ)管理引入:向用戶提供大容量存儲(chǔ)器,把內(nèi)存和外存統(tǒng)一考慮,外存作為存儲(chǔ)信息的主要媒介,內(nèi)存作為處理機(jī)需要訪問的數(shù)據(jù)緩沖區(qū)。基本思想:運(yùn)行一個(gè)作業(yè)程序時(shí),并不要求把該作業(yè)的全部程序和數(shù)據(jù)都裝入內(nèi)存,可只把目前要執(zhí)行的幾頁調(diào)入內(nèi)存的空閑存儲(chǔ)塊,其余部分仍保存在外存,以后根據(jù)作業(yè)程序運(yùn)行情況需要時(shí)再調(diào)入內(nèi)存。請(qǐng)求式頁面存儲(chǔ)管理需解決的問題:提供一種機(jī)制,檢測(cè)訪問的頁是否在內(nèi)存,若不在,為之分配一物理頁,修改頁表項(xiàng),并將邏輯頁調(diào)入到物理頁。選擇淘汰算法:當(dāng)外存上某頁信息需調(diào)入內(nèi)存而內(nèi)存中又無空閑存儲(chǔ)塊時(shí),則需按某種淘汰算法從內(nèi)存中選擇一頁將其內(nèi)容淘汰。淘汰算法不合理將產(chǎn)生抖動(dòng)現(xiàn)象--剛被調(diào)出的頁馬上又被要求調(diào)入。存儲(chǔ)保護(hù)的目的:保護(hù)系統(tǒng)程序區(qū)不被用戶侵犯(有意或無意的)不允許用戶程序讀寫不屬于自己地址空間的數(shù)據(jù)(系統(tǒng)區(qū)地址空間,其他用戶程序的地址空間)1.存儲(chǔ)保護(hù)由于存儲(chǔ)保護(hù)檢查是針對(duì)每個(gè)存儲(chǔ)訪問操作進(jìn)行的,必須由相應(yīng)的處理器硬件機(jī)構(gòu)支持。頁面的共享與保護(hù)存儲(chǔ)保護(hù)類型界限保護(hù):所有訪問地址必須在上下界之間;每個(gè)進(jìn)程都有自己獨(dú)立的進(jìn)程空間,如果一個(gè)進(jìn)程在運(yùn)行時(shí)所產(chǎn)生的地址在其地址空間之外,則發(fā)生地址越界。訪問方式保護(hù):通過保護(hù)鍵匹配來判斷存儲(chǔ)訪問方式是否合法。對(duì)于允許多個(gè)進(jìn)程共享的存儲(chǔ)區(qū)域,每個(gè)進(jìn)程都有自己的訪問權(quán)限。如果一個(gè)進(jìn)程對(duì)共享區(qū)域的訪問違反了權(quán)限規(guī)定,則發(fā)生操作越權(quán)(即讀寫保護(hù))。對(duì)每個(gè)內(nèi)存區(qū)域指定一個(gè)鍵值和若干禁止的訪問方式,進(jìn)程中也指定鍵值,如果訪問時(shí)鍵值不匹配而且是被禁止的訪問方式,則出錯(cuò);環(huán)保護(hù):處理器狀態(tài)分為多個(gè)環(huán)(ring),分別具有不同的存儲(chǔ)訪問特權(quán)級(jí)別(privilege),通常是級(jí)別高的在內(nèi)環(huán),編號(hào)?。ㄈ?環(huán))級(jí)別最高;可訪問同環(huán)或更低級(jí)別環(huán)的數(shù)據(jù);可調(diào)用同環(huán)或更高級(jí)別環(huán)的服務(wù)。頁面的共享與保護(hù)共享頁面:在物理頁面表中有引用計(jì)數(shù)。只能共享不被修改的頁面。這對(duì)用戶應(yīng)用是透明的,完全由操作系統(tǒng)控制,目的在于減少系統(tǒng)內(nèi)的物理頁面總數(shù)。當(dāng)共享頁從內(nèi)存中淘汰或重新裝入內(nèi)存時(shí),共享該頁的所有作業(yè)進(jìn)程的頁表中的相應(yīng)頁表項(xiàng)必須被同時(shí)更新。寫時(shí)復(fù)制(copyonwrite):如果一個(gè)進(jìn)程要改寫共享頁面,則先把該頁面復(fù)制一份,讓該進(jìn)程訪問復(fù)制后的頁面,而讓其他進(jìn)程訪問復(fù)制前的頁面。通過引用計(jì)數(shù)(referencecount)來描述存儲(chǔ)區(qū)的共享,引用計(jì)數(shù)表示共享它的進(jìn)程的數(shù)目:2.存儲(chǔ)共享頁面的共享與保護(hù)段式存儲(chǔ)管理基本思想:將程序的地址空間劃分為若干個(gè)段(segment),程序加載時(shí),分配其所需的所有段(內(nèi)存分區(qū)),這些段不必連續(xù);物理內(nèi)存的管理采用動(dòng)態(tài)分區(qū)。需要CPU的硬件支持。段式存儲(chǔ)管理地址結(jié)構(gòu)如下:段號(hào)S段內(nèi)位移量d通過段表實(shí)現(xiàn)邏輯地址到物理地址的映射段表結(jié)構(gòu):該段在內(nèi)存中的首地址;段長(zhǎng);訪問權(quán)限,段存在位(該段是否在內(nèi)存)段表中各表項(xiàng)按段號(hào)從小到大順序排列B0SA0NY0LX0PM0K邏輯段號(hào)01234作業(yè)1的地址空間10003200500060008000PKSLN主存K

3200P1500L6000N8000S5000長(zhǎng)度

段地址01234操作系統(tǒng)段式存儲(chǔ)管理地址轉(zhuǎn)換段式存儲(chǔ)管理程序通過分段(segmentation)劃分為多個(gè)模塊,如代碼段、數(shù)據(jù)段、共享段。可以分別編寫和編譯可以針對(duì)不同類型的段采取不同的保護(hù)可以按段為單位來進(jìn)行共享,包括通過動(dòng)態(tài)鏈接進(jìn)行代碼共享優(yōu)點(diǎn):沒有內(nèi)部碎片,外部碎片可以通過內(nèi)存拼接來消除。便于改變進(jìn)程占用空間的大小。便于模塊化,便于處理共享問題。缺點(diǎn):進(jìn)程全部裝入內(nèi)存。段的最大長(zhǎng)度受限于主存空間,開銷大。段式存儲(chǔ)管理頁式管理和段式管理的比較分頁是出于系統(tǒng)管理的需要,分段是出于用戶應(yīng)用的需要。一條指令或一個(gè)操作數(shù)可能會(huì)跨越兩個(gè)頁的分界處,而不會(huì)跨越兩個(gè)段的分界處。頁大小是系統(tǒng)固定的,而段大小則通常不固定。邏輯地址表示:分頁是一維的,各個(gè)模塊在鏈接時(shí)必須組織成同一個(gè)地址空間;分段是二維的,各個(gè)模塊在鏈接時(shí)可以每個(gè)段組織成一個(gè)地址空間。通常段比頁大,因而段表比頁表短,可以縮短查找時(shí)間,提高訪問速度。是頁式和段式存儲(chǔ)管理的結(jié)合。段頁式存儲(chǔ)管理為了獲得分段在邏輯上的優(yōu)點(diǎn)和分頁在管理存儲(chǔ)空間方面的優(yōu)點(diǎn)采用段頁式存貯管理。1.將邏輯地址空間以段劃分--段式特征2.將物理地址空間以頁劃分--頁式特征3.每一段的地址空間劃分為頁存儲(chǔ)管理的分配單位是:段,頁邏輯地址的組成:段號(hào),頁號(hào),頁內(nèi)偏移地址。將段內(nèi)地址d分為段內(nèi)頁號(hào)和頁內(nèi)偏移地址兩部分。地址變換:先查段表,再查該段的頁表。缺段中斷和缺頁中斷。地址結(jié)構(gòu):SPWS:段號(hào) P:頁號(hào) W:頁內(nèi)偏移地址d段頁式存儲(chǔ)管理優(yōu)點(diǎn):具有分段存儲(chǔ)管理和分頁存儲(chǔ)管理的全部?jī)?yōu)點(diǎn);為用戶提供了大量的虛擬存儲(chǔ)空間,提高內(nèi)存的利用率。對(duì)大、中型計(jì)算機(jī)來說,是使用最廣泛、最靈活的一種存儲(chǔ)管理。缺點(diǎn):增加了硬件成本、系統(tǒng)復(fù)雜性和管理上的開銷;表格占用了大量的存儲(chǔ)空間;仍存在內(nèi)部碎片,存在系統(tǒng)顛簸的危險(xiǎn)。段頁式存儲(chǔ)管理文件管理文件管理的功能文件系統(tǒng)概念文件結(jié)構(gòu)與存取方法文件目錄管理文件存儲(chǔ)空間管理文件使用一般模型文件共享、保護(hù)和保密文件管理的功能目標(biāo):使用方便,便于共享,安全可靠功能:提供用戶對(duì)文件操作的命令;實(shí)現(xiàn)文件的“按名存取”。提供用戶共享文件的機(jī)制;提供文件的存取控制的機(jī)制,保障文件及文件系統(tǒng)的安全性;管理文件的存儲(chǔ)介質(zhì).文件系統(tǒng)概念文件:邏輯上具有完整意義的數(shù)據(jù)或信息的集合。文件名:一個(gè)有限長(zhǎng)度的字符串。文件名·[文件擴(kuò)展名]按文件性質(zhì)和用途分:系統(tǒng)文件庫文件用戶文件按保護(hù)級(jí)別分:只讀文件讀寫文件執(zhí)行文件不保護(hù)文件有效地分配文件存貯器的存貯空間(物理介質(zhì))提供一種組織數(shù)據(jù)的方法(按名存取、邏輯結(jié)構(gòu)、組織數(shù)據(jù))提供合適的存取方法(順序存取、隨機(jī)存取)從系統(tǒng)的角度看:文件系統(tǒng)是一個(gè)負(fù)責(zé)文件存儲(chǔ)空間管理的機(jī)構(gòu)。從用戶的角度看:文件系統(tǒng)是用戶在計(jì)算機(jī)上存儲(chǔ)信息和使用信息的接口。文件系統(tǒng)概念文件結(jié)構(gòu)與存取方法邏輯文件:從用戶觀點(diǎn)出發(fā),所觀察到的文件組織形式,是用戶可以直接處理的數(shù)據(jù)及其結(jié)構(gòu),它獨(dú)立于文件及其介質(zhì)的物理特性,又稱為文件組織。物理文件:文件的存儲(chǔ)結(jié)構(gòu),是文件在外存上存儲(chǔ)組織形式,與存儲(chǔ)介質(zhì)的存儲(chǔ)特性有關(guān)。邏輯結(jié)構(gòu):指用戶思維中文件的結(jié)構(gòu)。物理結(jié)構(gòu):指文件在存儲(chǔ)介質(zhì)上的結(jié)構(gòu)(或存儲(chǔ)組織)。文件的存儲(chǔ)介質(zhì):磁盤(軟盤、硬盤、光盤)、磁帶,磁鼓。目前文件的物理結(jié)構(gòu)主要是指磁盤上文件的結(jié)構(gòu)。文件的邏輯結(jié)構(gòu)記錄式文件(有格式文件):是一種有結(jié)構(gòu)的文件。由一個(gè)或多個(gè)記錄組成。

以邏輯記錄為單位進(jìn)行存取。定長(zhǎng)記錄文件:文件中所有記錄的長(zhǎng)度相同。變長(zhǎng)記錄文件:每個(gè)記錄的長(zhǎng)度可以不同無結(jié)構(gòu)的流式文件(無格式文件):是有序字符的集合,文件的長(zhǎng)度等于該文件包含的字符數(shù)。流式文件不分成記錄,而是直接由一連串信息組成。UNIX、DOS、WINDOWS系統(tǒng)中的普通文件都是流式文件。文件結(jié)構(gòu)與存取方法l1記錄1l2記錄2(a)變長(zhǎng)指示記

錄長(zhǎng)度l1l2記錄1記錄2ll(b)定長(zhǎng)記錄文件變長(zhǎng):每個(gè)記錄的頭幾個(gè)字節(jié)存儲(chǔ)記錄長(zhǎng)度文件結(jié)構(gòu)與存取方法優(yōu)點(diǎn):

在空間利用上比較省,沒有額外的說明和控制信息。對(duì)流式文件而言,它是按信息的個(gè)數(shù)或以特殊字符為界進(jìn)行存取的。流式文件文件結(jié)構(gòu)與存取方法文件的物理結(jié)構(gòu)文件存儲(chǔ)介質(zhì)格式化后就分成許多大小相等的單位--存儲(chǔ)塊(物理盤塊)。一般來說,每個(gè)物理塊是一個(gè)磁盤的扇區(qū),512字節(jié)。每個(gè)存儲(chǔ)塊有個(gè)編號(hào),稱為物理塊號(hào)。文件的物理結(jié)構(gòu)指文件在存儲(chǔ)介質(zhì)上結(jié)構(gòu),目前有三種基本結(jié)構(gòu):連續(xù)結(jié)構(gòu)鏈接結(jié)構(gòu)索引結(jié)構(gòu)連續(xù)結(jié)構(gòu)連續(xù)文件是一種連續(xù)結(jié)構(gòu)的文件,對(duì)每個(gè)文件要求存放在存儲(chǔ)介質(zhì)上的連續(xù)的物理塊中。存儲(chǔ)空間利用率不高。類似于存儲(chǔ)管理中的分區(qū),適用于變化不大的順序訪問的文件。在UNIX系統(tǒng)中仍保留了連續(xù)文件結(jié)構(gòu)。優(yōu)點(diǎn):結(jié)構(gòu)簡(jiǎn)單,實(shí)現(xiàn)容易,不需要額外的開銷。缺點(diǎn):用戶創(chuàng)建文件時(shí)要給出文件的大?。徊焕谖募膭?dòng)態(tài)增加和修改;鏈接結(jié)構(gòu)鏈接結(jié)構(gòu)是按順序由鏈接的塊組成的。即每個(gè)物理塊的最末一個(gè)字(或第一個(gè)字)作為鏈接字,它指出后繼塊的物理地址。鏈?zhǔn)字羔槾娣旁谠撐募夸浿?。文件的結(jié)尾塊的指針為“NULL”。不要求連續(xù)存放。對(duì)于記錄式文件一塊中可包含一個(gè)邏輯記錄或多個(gè)邏輯記錄,也可以若干物理塊包含一個(gè)邏輯記錄。存儲(chǔ)空間利用率高;文件創(chuàng)建時(shí)用戶不必指出文件的大?。晃募?dòng)態(tài)擴(kuò)充和修改容易。順序存取效率高,隨機(jī)存取效率太低,如果訪問文件的最后的內(nèi)容,實(shí)際上是要訪問整個(gè)文件。鏈接結(jié)構(gòu)索引結(jié)構(gòu)非連續(xù)文件存放文件索引表:每個(gè)文件有一個(gè)索引表,表中包括:邏輯塊號(hào),物理塊號(hào)。訪問文件時(shí),根據(jù)文件的邏輯塊號(hào)查文件索引表,找到對(duì)應(yīng)的物理塊號(hào),然后,進(jìn)行訪問。索引結(jié)構(gòu)即保持了鏈?zhǔn)浇Y(jié)構(gòu)的優(yōu)點(diǎn),又克服了其缺點(diǎn)(既能順序存取,也可隨機(jī)存儲(chǔ))索引結(jié)構(gòu)是當(dāng)代計(jì)算機(jī)操作系統(tǒng)中普遍采用的結(jié)構(gòu),如UNIX系統(tǒng)、LINUX系統(tǒng)。索引結(jié)構(gòu)順序存?。河涗浭轿募校簢?yán)格按照物理記錄排列的順序依次存取。無結(jié)構(gòu)的流式文件:從文件當(dāng)前位置開始讀寫,然后根據(jù)當(dāng)前位置的位移讀寫后繼的信息。讀寫文件存儲(chǔ)器上的一個(gè)物理塊的方法。直接存?。S機(jī)存?。喊慈我獯涡虼嫒∥募械挠涗洠皇琼樞虻挠涗浭轿募校簩?duì)定長(zhǎng)記錄的順序文件,可直接存?。粚?duì)變長(zhǎng)記錄的順序文件,需建立一張索引表,以指出每個(gè)記錄的長(zhǎng)度和起始位置,索引表按記錄號(hào)順序排列。無結(jié)構(gòu)的流式文件:事先把該文件的現(xiàn)行位置指針設(shè)置到欲讀寫信息的起始位置。文件的存取方法l1記錄1l2記錄2(a)變長(zhǎng)指示記

錄長(zhǎng)度l1l2記錄1記錄2ll(b)定長(zhǎng)記錄文件變長(zhǎng):每個(gè)記錄的頭幾個(gè)字節(jié)存儲(chǔ)記錄長(zhǎng)度,這里為2個(gè)字節(jié)文件的存取方法磁盤(磁鼓)磁帶文件的物理結(jié)構(gòu)

連續(xù)鏈表索引連續(xù)存取方法

順序、直接順序順序、直接順序文件結(jié)構(gòu)、存儲(chǔ)設(shè)備和存取方法之間的關(guān)系文件的存取方法文件目錄管理

文件的組成一級(jí)目錄二級(jí)目錄多級(jí)目錄文件的組成文件目錄項(xiàng):又稱為文件控制塊(F

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論