㈠ 數據結構的一些小問題
5.4 文件系統的實現
5.4.1 存儲空間的分配與回收
在計算機系統中,存儲空間是一種寶貴的資源。外存儲設備中的空間容量雖然比較大,但也不是無限的,故對文件刪除之後而不再使用的空間,必須加以回收,然後在建立文件等操作中重新利用。
對於制度的存儲設備,無所謂回收,也無所謂動態分配,這種存儲設備在物理上就是不可重用的。
為了進行存儲空間的分配與回收,在外存儲設備上設置有空閑空間登記表,該表動態跟蹤該外存儲設備上所有還沒有分配給任何文件的空閑塊的數目和塊號。
該空閑空間登記表雖然稱為表,但不一定以一個二維表格的形式實現。從方便、高效和安全的角度考慮,通常把空閑空間登記表放在存儲介質上。
對空閑空間表的訪問與修改工作是經常發生的。在進行文件刪除、文件建立、寫文件等操作中都會訪問和修改空閑空間表。
在設計空閑空間登記表的數據結構時,一般有四種不同的方案可以考慮,下面分別介紹。
1、 位示圖
位示圖的基本思想是,利用一串二進制位(BIT)的值來反映磁碟空間的分配使用情況。在位示圖中,沒一個磁碟中物理塊用一個二進制位對應,如果某個物理塊為空閑,則相應的二進制位為0;如果該物理塊已分配了,則相應的二進位為,如圖5-15所示。
位示圖對空間分配情況的描述能力強。一個二進位就描述一個物理塊的狀態。另外,位示圖佔用空間較小,因此可以復制到內存,使查找既方便又快速。位示圖適用於各種文件物理結構的文件系統。使用位示圖能夠簡單有效地在盤上找到N個連續的空閑塊。
2、 空閑塊表
空閑塊表是專門為空閑塊建立的一張表,該表記錄外存儲器全部空閑的物理塊:包括每個空閑塊的第一個空閑物理塊號和該空閑塊只能感空閑物理塊的個數。如圖5-16所示。空閑塊表方式特別適合於文件物理結構為順序結構的文件系統。
在建立新文件時,應該尋找一組連續的空閑物理塊,其空閑塊個數恰好等於所申請值,或接近於所申請值。系統首先查找空閑塊表,主要查看該空閑塊表項中是否有符合上述申請值的對應表項,如果有,就將該表項從空閑塊表中刪去,並且把所對應的一組連續的空閑物理塊分配給申請者。
當刪除文件時,系統收回它所佔用的物理塊,並且考慮所收回的物理塊是否可以與原有空閑塊相鄰接,以便合並成更大的空閑區域,最後修改有關空閑塊表項。
3、 空閑塊鏈表
將外存儲器中所有的空閑物理塊連成一個鏈表,用一個空閑塊首指針指向第一個空閑塊,隨後的每個空閑塊中都含有指向下一個空閑塊的指針,最後一塊的指針為空,表示鏈尾,這樣就構成了一個空閑塊鏈表,如圖5-17所示。
在圖45-17中,一個空閑塊鏈表的首指針維持一個指向物理塊12的指針,該塊是第一個空閑物理塊。物理塊12包含一個指向物理塊13的指針,物理塊13指向物理塊14,如此等等。
空閑塊鏈表模式效率低。要遍歷整張空閑塊鏈表,必須讀每一個物理塊,這就需要大量的I/O時間。
在空閑塊鏈表模式中對空間的申請和釋放是以塊為單位的。申請空間時從鏈首取空閑塊。空間釋放時將物理塊接入鏈尾。
空閑塊鏈表法節省內存,但申請空間和回收空間的速度較慢,實現效率較低。
4、 成組鏈接
對鏈接表的一個改進方案是將N個空閑盤塊的地址存放在第一個空閑塊中,如圖5-18所示。期於N-1個空閑盤塊是實際空閑的。假設每100個空閑塊為一組。第一組的100個空閑塊塊號放在第二組的頭一塊中,而第二組的其餘99塊是完全空閑的。第二組的100個塊號又放在第三組的頭一塊中,依次類推,組與組之間形成鏈接關系。在最後一組的塊號中第2個單元填「0」,表示該塊中指出的塊號是最後一組的塊號,空閑塊鏈到此結束。在這個空閑塊鏈中,不組100塊的一個組的塊號,通常放在內存的一個專用塊中。這種方式稱為成組鏈接。
系統在初始化時先把專用塊內容讀到內存中,當需分配空閑塊時,就直接在內存中找到哪些塊是空閑的,每分配一塊後把空閑塊數減1。但在把一組中的第一個空閑塊分配出去之前,應把登記在該塊中的下一組的塊號及塊數保存到專用塊中(此時原專用塊中的信息已經無用,因為它指出的一組空閑塊都已被分配了)。當一組空閑塊被分配完後,則再把專用塊的內容讀到內存中,指出另一組可供分配的空閑塊。
假設初始化時系統已把專用塊讀入主存儲器L單元開始的區域中,分配和回收的演算法如下:
⑴分配一個空閑塊
查L單元內容(空閑塊數):
當空閑塊數>1,I:=L+空閑塊數;
從I單元得到一空閑塊號;
把該塊分配給申請者;
空閑塊數減1。
當空閑塊數=1,取出L+1單元內容(一組的第一塊塊號或0);
取值 =0,無空閑塊,申請者等待;
≠0,把該塊內容復制到專用塊;
把專用塊內容獨到主存L開始的區域。
⑵歸還一塊
查L單元的空閑塊數;
當空閑塊數〈100,空閑塊數加1;
J:=L+空閑塊數;
規劃塊號填入J單元。
當空閑塊數=100,把主存中登記的信息寫入歸還塊中;
把歸還塊號填入L+1單元;
將L單元置成1。
採用成組鏈接後,分配回收空閑塊時均在內存中查找和修改,只有在一組空閑塊分配完或空閑的磁碟塊構成一組時才需要啟動磁碟讀寫。因此,成組鏈接的管理方式比普通的鏈接方式效率高。
成組鏈接這種方案能夠迅速找到大量空閑盤塊地址。有些版本的UNIX操作系統便採用了這種方案。
5.4.2 實現文件系統的表目
當用戶申請打開一個文件時,系統要在內存中為該用戶保存一些必要的信息,這些信息以表格欄目中內容的形式出現,被稱為表目。在實現文件系統時所需要的表目有若干種,其中在內存中所需的重要表目有如下一些:
1、 系統打開文件表
系統打開文件表,專門用於保存已打開文件的文件控制塊。該系統打開文件表放在內存。除了保存已打開文件的文件控制塊之外,在該表格中還保存有已打開的文件號、共享計數、修改標志等等,圖5-19。
2、 用戶打開文件表
在每個進程中,都有一個「用戶打開文件表」。該表的內容有文件描述符、打開方式、讀寫指針、系統打開文件表入口等,圖5-20。另外在進程的進程式控制制塊PCB中,還記錄了「用戶打開文件表」的位置。
3、 系統打開文件表與用戶打開文件表之間的關系
用戶打開文件表指向了系統打開文件表。如果多個進程共享同一個文件,則一定有多個用戶打開文件表目對應著系統打開文件表的同一入口,圖5-21。
5.4.3 記錄的成組與分解
用戶的文件毫無疑問是由用戶按名自己的需要組織的。用戶還可按信息的內在邏輯關系,把文件劃分成若干個邏輯記錄。顯然,邏輯記錄的大小是由文件性質決定的。
另外,存儲介質上的物理分塊與存儲介質的特性有關,尤其是磁碟。磁碟上的塊的大小是在磁碟初始化時預先劃好的。因此,邏輯記錄的大小往往與存儲介質物理分塊的大小不一直。
當用戶文件的邏輯記錄比存儲介質的物理分塊小得多時,把一個邏輯記錄存入一個物理塊中,就會造成存儲空間的浪費。為此,可把多個邏輯記錄存放在一個物理塊中,當用戶需要某個邏輯記錄時再從一物理塊信息中將其分解出來。
1、 記錄的成組
把若干個邏輯記錄合成一組存放一物理塊的工作稱「記錄的成組」,每塊中的邏輯記錄個數稱「塊因子」。
記錄的成組在不同存儲介質上進行信息轉儲是很有用的。
由於信息交換以塊為單位,所以,要進行成組操作時必須使用內存的緩沖區。該緩沖區的長度等於要進行成組的最大邏輯記錄長度乘以成組的塊因子。成組轉儲操作如圖5-22所示。
在進行記錄成組時,還應考慮邏輯記錄的格式。這是因為在記錄式文件中,有「定長記錄格式」和「不定長記錄格式」。對定長記錄格式的文件按記錄成組的方式存儲到存儲介質上,則除最後一塊外,每塊中存放的邏輯記錄個數是相同的。故只要在文件目錄中說明邏輯記錄的長度和塊因子,在需要使用某個記錄時就能方便地將其找出。
如果是一個不定長記錄格式的文件,各個邏輯記錄的長度可能不相等,在進行記錄成組操作時,就應在每個邏輯記錄前附加說明該記錄長度的控制信息。
2、 記錄的分解
對應簽署記錄成組的操作,有必要考慮從一組邏輯記錄中把一個邏輯記錄分離出來的操作,這種操作稱為「記錄的分解」。
顯然,從事記錄的分解操作也要使用內存緩沖區。
當用戶請求讀一個文件中的某個記錄時,文件系統首先找出該記錄所在物理塊的位置,然後把含有該記錄的物理塊全部信息讀入內存緩沖區,由於讀入內存緩沖區的物理塊信息中含有多個邏輯記錄,所以要再從內存緩沖區中分解出指定的記錄,然後傳送到用戶工作區。
對定長記錄格式,只要的邏輯記錄的長度就可容易地進行分解。對不定長記錄格式,要根據說明邏輯記錄長度的控制信息,計算出用戶所指定的記錄在內存緩沖區中的位置,然後把記錄分解出來。圖5-23是記錄的分解操作示例。
在圖5-23中,用戶要求讀出邏輯記錄K4。用戶文件中的記錄是成組存放在磁碟上的,系統找出含有記錄K4的物理塊,從中讀出了6個邏輯記錄K1,K2,K3,K4,K5和K6,並且知道這些邏輯記錄的長度為80,塊因子為6。該塊信息被讀入內存緩沖區後,根據邏輯記錄的長度和塊因子胃,立即就能取出其中的邏輯記錄K4,並把K4傳送到用戶工作區。
從上面的討論可以看到,為了提高存儲空間的利用率和減少啟動設備的次數,採用了記錄的成組和分解技術。但是上述效果的獲得也付出了代價,主要包括:需要設立內存緩沖區,另外操作系統增加了成組和分解的操作的功能。
5.4.4 文件的操作
文件系統是提供給用戶使用的,用戶可以進行按名存取所需要的文件。在文件系統的實現中,為用戶提供使用文件的手段是文件系統的重要任務之一。
1、 建立文件
用戶首先調用文件系統的「建立文件」操作,在請求調用該操作時,提供所要創建的文件的文件名及若干參數:用戶名、文件名、存取方式、存儲設備類型、記錄格式、記錄長度,等等。
系統依據用戶提供的文件名及若干參數,為這一新創建的文件分配一個文件控制塊,填寫文件控制塊中的有關項。
建立文件的實質是建立文件的文件控制塊FCB,並建立必要的存儲空間,分配空的FCB。從而建立起系統與文件的聯系。
建立文件系統調用的一般格式為:CREATE(文件名,訪問許可權,(最大長度))。
建立文件的具體步驟如下:
⑴檢查參數的合法性:
文件名是否符合命名規則,若是,則進行下一步⑵;否則報錯,返回。
⑵檢查同一目錄下有無重名文件:
若沒有,則進行下一步⑶;否則報錯,返回。
⑶在目錄中有無空閑位置;
若有,則進行下一步⑷;否則,不成功返回。
⑷填寫目錄項內容:
包括:文件名、用戶名、存取許可權、長度置零,首地址等等。
⑸返回
2、 打開文件
打開文件,是使用文件的第一步,任何一個文件使用前都要先打開,即把文件控制塊FCB送到內存。
打開文件系統調用的一般格式為:FD=OPEN(文件路徑名,打開方式)。
打開文件時,系統主要完成以下工作:
⑴根據文件路徑名查目錄,找到FCB主部。
⑵根據打開方式、共享說明和用戶身份檢查訪問合法性。
⑶根據文件號查系統打開文件表,看文件是否已被打開。
如果是,共享計數加1;
否則,將外存中的CB主部等信息填入系統打開文件表空表項,共享計數置為1。
⑷在用戶打開文件表中取一空表項,填寫打開方式等,並指向系統打開文件表對應表項。
返回信息:FD:文件描述符,是一個非負整數,用於以後讀寫文件。
3、 讀文件
打開文件後,就可以讀取文件中的信息。
讀文件系統調用的一般格式為:READ(文件名,(文件內位置),要讀的長度,內存目的地址)。
隱含參數:文件主。
讀寫方式可為讀、寫合既讀又寫等。
讀文件時,系統主要完成以下工作:
⑴檢查長度是否為正整數;
若是,則進行下一步;否則,轉向(10)。
⑵根據文件名查找目錄,確定該文件在目錄中的位置。
⑶根據隱含參數中的文件主和目錄中該文件的存儲許可權數據,檢查是否有權讀:
若是,則進行下一步,否則,轉向(10)。
⑷由文件內位置與要讀的長度計算最末位置,將其與目錄中的文件長度比較,超過否?
若是,則轉向(10);否則,進行下一步(5)。也可將參數中的長度修正為目錄中的文件長度。
⑸根據參數中的位置、長度和目錄中的映射信息,確定物理塊號、需要讀出的塊數等讀盤參數。
⑹根據下一塊號讀塊至內存緩沖區。
⑺取出要讀的內容,也許要進行成組的分解,將取出的內容送至參數中的內存目的地址。
⑻根據塊內長度或起始塊號+塊數,確定還讀下一塊嗎?同時確定下一塊號:
若是,則轉向(5);否則,進行下一步(9)。
⑼正常返回。
⑽錯誤返回,返回響應錯誤號。
4、 寫文件
寫文件系統調用的一般格式為:WRITE文件名,記錄鍵,內存位置)。
把內存中指定單元的數據作為指定的一個記錄寫入指定文件中,系統還將為其分配物理塊,以便把記錄信息寫到外存上。
5、 關閉文件
若文件暫時不用每則應將它關閉。文件關閉後一般不能存取,若要存取,則必須再次打開
6、 刪除文件
刪除文件文件系統調用的一般格式為:DELETE(文件名)。
7、 指針定位
指針定位的一般格式為:SEEK(FD,新指針的位置)。
指針定位時,系統主要完成以下工作:
⑴由FD檢查用戶打開文件表,找到對應的入口;
⑵將用戶打開文件表中文件讀寫指針位置設為新指針的位置,供後續讀寫命令存取該指針處文件內容。
希望對你有幫助
㈡ 操作系統原理文件管練習題
1、(1)2的9次方等於512,可以用9位二進制來標示每一個磁碟塊。因此需要2個位元組來存放這個信息(8位為一位元組)。(2) 第i位元組第j位:求出2的8*i-(8-j)次方值,這個值減去1(因為虧散橘塊號從零開始)掘隱就是塊號。
比如第1位元組第3位。 二進制標示:00000100 ,轉換成十進制就是2的8*1-(8-3),也就是2的3次方,因此是第8-1=7塊。
2、由於1024*4 < 4769 < 1024*5,因此存放在第5個快上。從這45、157、175、340、418、4466塊銷團可知,第5塊就是418.因此需要訪問418這個磁碟塊。
㈢ 誰來幫我解答這個題目急
應該是4000個邏輯記錄
柱面號:3680/64=57
磁軌號:(3680%64)/8=4
扇區號:(3680%64)%8=0
0*64+78*8+6=630
mod是取余運算
㈣ 某文件為鏈接文件,由5個邏輯記錄組成,每個邏輯記錄的大小與磁碟塊大小相等,均為512位元組,
1569
/
512
得到商為:3
,余數為:33
。所以,訪問的是互磁碟塊的第33
個位元組
㈤ 操作系統的計算題
磁碟地址用「柱面號·盤面號·扇區號(塊號)」表示。柱面號即磁軌號
3680/(8*8)=57……這是柱面號
3680%(8*8)/8=4……這是盤面號
3680/%(8*8)%8=0……這是扇區號
所以該文件的第3680塊應在57柱面4盤面的0扇區
根據上述規則,第78盤面6磁軌6扇區
6*(8*8)+78*8+6=1014
第78盤面6磁軌6扇區存放的是文件的第1014塊
2(1)32+3+5+21+14+35+12+32+15=169
(2)採用流水線方式,共有6種情況,需分別討論,比較最小值
ABC 32+21+14+35+15=117
ACB 32+12+32+15+35=126
BAC 21+32+35+32+15=135
BCA 21+14+35+15+5=90
CAB 12+32+21+14+35=114
CBA 12+32+32+35+5=116
很明顯,採用BCA流水線方式所需時間最少,為90
㈥ 《操作系統》名詞解釋總結(1)
1、操作系統具有層次結構
層次結構特點是整體問題局部化來優化系統,提高系統的正確性、高效性使系統可維護、可移植。
主要優點是有利於系統設計和調試;主要困難在於層次的劃分和安排。
2、多道程序設計系統
「多道程序設計系統」 簡稱「多道系統」,即多個作業可同時裝入主存儲器進行運行的系統。在多道系統中一點必須的是系統須能進行程序浮動。所謂程序浮動是指程序可以隨機地從主存的一個區域移動到另一個區域,程序被移動後仍不影響它的執行。多道系統的好處在於提高了處理器的利用率;充分利用外圍設備資源;發揮了處理器與外圍設備以及外圍設備之間的並行工作能力。可以有效地提高系統中資源的利用率,增加單位時間內的算題量,從而提高了吞吐率。
3、程序浮動
若作業執行時,被改變的有效區域依然能正確執行,則稱程序是可浮動的。
4、進程
進程是一個程序在一個數據集上的一次執行。鄭乎由定義知進程關鍵組成是程序、數據集。
進程通過一個控制塊來被系統所指揮,因此進程由程序、數據集和進程式控制制塊三部分組成。進程式控制制塊是進程存在的標志 .進程是要執行的,據這點可分將進程的狀態分為等待態然後是就緒態最後是運行態。
進程的基本隊列也就是就緒隊列和等待隊列,因為進程運行了,也就用不上排隊了,也就沒有運行隊列了。
5、重定位
重定位即把邏輯地址轉換成絕對地址。
重定位的方式有「靜態重定位」和「動態重定位」兩種。
(1)靜態重定位
在裝入一個作業時,把作業中的指令地址和數據地址全部轉換成絕對地址。這種轉換工作是在作業開始前集中完成的,在作業執行過程中無需再進行地址轉換。所以稱為「靜態重定位」。
(2)動態重定位
在裝入一個作業時,不進行地址轉換,而是直接把作業裝到分配的主區域中。在作業執行過程中,每當執行一條指令時都由硬體的地址轉換機構轉換成絕對地址。這種方式的地址轉換是在作業執行時動態完成的,所以稱為動態重定位。
動態重定位由軟體(操作系統)和硬體(地址轉換機構)相互配合來實現。動態重定位的系統支持「程序浮動」,而靜態重定位則不能。
6、單分區管理
除操作系統佔用的一部分存儲空間外,其餘的用戶區域作為一稿帆個連續的分區分配給用戶使用。
固定分區的管理
分區數目、大小固定 設置上、下限寄存器 邏輯地址+下限地址→絕對地址。
可變分區的管理
可變分區管理方式不是把作業裝入到已經劃分好的分區中,而是在作業要求裝入主存儲器時,根據作業需要的主存量和當時的主存情況決定是否可以裝入該作業。
分區數目大小不定 設置基址、限長寄存器
邏輯地址+基址寄存器的值→絕對地址。 基址值≤絕對地址≤基址值+限長值
頁式存儲管理
主存儲器分為大小相等的「塊」。程序中的邏輯地址進行分「頁」,頁的大小與塊的大小一致。 用頁表登記塊頁分配情況 邏輯地址的頁號部分→頁表中對應頁鍵叢雹號的起始地址→與邏輯地址的頁內地址部分拼成絕對地址。 由頁表中的標志位驗證存取是否合法,根據頁表長度判斷是否越界。
段存儲管理 程序分段 每一段分配一個連續的主存區域,作業的各段可被裝到不相連的幾個區域中。 設置段表記錄分配情況 邏輯地址中的段號→查段表得到本段起始地址+段內地址→絕對地址 由段表中的標志位驗證存取是否合法,根據段表長度判斷是否越界。
頁式虛擬存儲管理 類似頁式管理將作業信息保存在磁碟上部分裝入主存 類似頁式管理:邏輯地址的頁號部分→頁表中對應頁號的起始地址→與邏輯地址的頁內地址部分拼成絕對地址。
若該頁對應標志為0,則硬體形成「缺頁中斷」先將該頁調入主存 類似頁式管理。
段式虛擬存儲管理
類似段式管理將作業信息保存在磁碟上部分裝入主存 類似段式管理。
7、存儲介質是指可用來記錄信息的磁帶、硬磁碟組、軟磁碟片、卡片等。 存儲介質的物理單位定義為「卷」。
存儲設備與主存儲器之間進行信息交換的物理單位是塊。塊定義為存儲介質上存放的連續信息所組成的一塊區域。
邏輯上具有完整意義的信息集合稱為「文件」。
用戶對文件內的信息按邏輯上獨立的含義劃分的信息單位是記錄,每個單位為一個邏輯記錄。
8、文件的分類
文件可以按各種方法進行分類:
按用途 系統文件、庫文件、用戶文件
按保護級別 可執行文件、只讀文件、讀寫文件
按信息流向 輸入文件、輸出文件、輸入輸出文件
按存放時限 臨時文件、永久文件、檔案文件
按設備類型 磁碟文件、磁帶文件、卡片文件、列印文件
按文件組織結構 邏輯文件、物理文件(順序文件、鏈接文件、索引文件)
9、文件結構
文件結構分為邏輯結構和物理結構
邏輯結構
用戶構造的文件稱為文件的邏輯結構。如用戶的一篇文檔、一個資料庫記錄文件等。邏輯文件有兩種形式:流式文件和記錄式文件。
流式文件是指用戶對文件內信息不再劃分的可獨立的單位,如我們的word文件,圖片文件等。整個文件是以順序的一串信息組成。
記錄式文件:是指用戶對文件內信息按邏輯上獨立的含義再劃分信息單位,每個單位為一個邏輯記錄。記錄式文件可以存取的最小單位是記錄項。每個記錄可以獨立存取。這個在資料庫中我們學得比較多,容易理解。
2、物理結構
由文件系統在存儲介質上的文件構造方式稱為文件的物理結構。物理結構有:
1)順序結構:在磁碟上就是一塊接著一塊地放文件。邏輯記錄的順序和磁碟順序文件塊的順序一致。順序文件的優點是存取速度快(可以連續訪問)。
2)鏈接結構:把磁碟分塊,把文件任意存入其中,再用指針把各個塊按順序鏈接起來。這樣所有空閑塊都可以被利用,在順序讀取時效率較高但需要隨機存取時效率低下(因為要從第一個記錄開始讀取查找)。
3)索引結構:磁碟不分塊,文件的邏輯記錄任意存放在磁碟中,通過一張「索引表」指示每個邏輯記錄存放位置。這樣,訪問時根據索引表中的項來查找磁碟中的記錄,既適合順序存取記錄,也可以隨機存取記錄,並且容易實現記錄的增刪和插入,所以索引結構被廣泛應用。
10、記錄的成組與分解
1、記錄的成組與分解的原因:由於磁碟塊的大小是預先劃分好的,大小固定,而邏輯記錄的大小是用戶文件性質決定的,不一定和塊大小一致。
2、記錄的成組:把若干個邏輯記錄存入一個塊的工作稱為「記錄的成組」。每塊中邏輯記錄的個數稱「塊因子」。
3、記錄的分解:這是記錄成組的一個逆過程。經程是先從磁碟中找到記錄所在的塊,並將本塊讀入主存緩沖區,再從緩沖區取出所需要的記錄送到用戶工作區。如果用戶所需的記錄已經在緩沖區中,則不需要啟動外設讀塊信息,這也可以提高系統工作效率。
11、作業和作業步
1、作業:我們把用戶要求計算機系統處理的一個問題稱為一個「作業」
2、作業步:完成作業的每一個步聚稱為「作業步」。
㈦ 文件的物理大小是指
文件的物理大小是指它的數組單元的總數。
文件是由一個或者多個物理塊構成,一個文件的大小不一定是物理塊的整數倍,比如一個文件只有10位元組,一個物理塊的大小為1KB,那麼這個文件就需要佔用一個物理塊,哪怕它的大小沒有一個物理塊大,這樣就有1014個位元組被浪費。
再比如一個文件大小為2049個位元組,物理塊的大小為1KB,那麼這個文件佔用3個物理塊,2個物理塊用滿了,還剩下一個物理塊用於存儲剩下的1個位元組,有1023個位元組浪費了,這樣看,文件或多或少都會有些碎片,這種碎片叫做內部碎片,這個是無法避免的。
文件的類型:
文件有很多種類型,比如源文件,目標文件,可執行文件,文本文件,文字處理文件,視頻文件,音頻文件,圖像文件,歸檔類文件,庫文件等,這些文件的邏輯記錄結構可以是位元組流也可以其它結構,無論其結構如何,都需要有專門的軟體去分析這些文件。
所以文件類型是相對於能分析它的軟體來說的。
㈧ 文件目錄結構有哪幾種,各有什麼優缺點
文件目錄結構又稱文件索引結構,分一級文件索引、二級文件索引和三級文件索引三種。
一級文件索引(直接索引)的結構中:文件目錄條目中有一組條目用於建立索引,並且每個條目都會注冊邏輯記錄所在的磁碟塊號。邏輯記錄的大小和磁碟塊號等於512B。激活創建表後,系統會自動創建第一級索引。其具有穩定性和大數據量的優點。缺點是無法修改,檢索效率低。
二級文件索引(第一級間接索引)的結構中:文件目錄中有一組條目,文件寄存器的內容為第一級索引表塊的塊號。一級索引表塊中的索引表注冊文件邏輯記錄所在的磁碟塊號。二級索引的優點是可以由用戶修改,但缺點是安全性和穩定性低。
三級文件索引(第二級間接索引)的結構中:文件目錄條目中有一組表條目,並且文件注冊的內容是第二級索引表塊的塊號。第二級索引表塊中的索引表項記錄了第一級索引表塊的塊號,而第一級索引表項記錄了文件邏輯記錄所在的磁碟塊號。其優點是結構搜索效率高,但缺點是數據內容少。
(8)文件的邏輯記錄的大小是什麼擴展閱讀:
文件目錄結構的三個屬於漸進關系,並且在可以構造上一級目錄結構之前,必須完全構造下一級文件索引。 文件索引結構意味著文件的信息存儲在許多離散的物理塊中。 系統為每個文件(索引表)創建一個專用的數據結構,並將這些塊的塊號存儲在索引表中。
其次,這三種文件目錄結構的優點是保留了鏈接結構,同時解決了其缺點,即可以順序和隨機地訪問,滿足了動態文件增長,插入和刪除的需求,並且還可以完全利用外部存儲空間。 缺點是系統本身帶來的系統開銷。