1. 什麼是文件的邏輯組織和物理組織文件的邏輯組織有幾種形式
1 文件的邏輯組織
文件的邏輯組織通常分為兩種形式,即有結構文件和無結構文件.
1)有結構文件
又稱作記錄式文件,它在邏輯上可被看成一組連續記錄的集合,即文件是由若干個相關的記錄組成.每個記錄是一組相關的數據集合,用於描述一個對象某個方面的屬性.
記錄式文件按其記錄的長度是否相同又可分為:定長記錄文件和變長記錄文件兩種.
(1)定長記錄文件:指文件中所有記錄的長度都相同.文件的長度可用記錄的數目來表示.定長記錄處理方便,開銷小,被廣泛用於數據處理中.
(2)變長記錄文件:指文件中各記錄的長度不相同.在處理之前每個記錄的長度是已知的.
2)無結構文件
無結構文件是指文件內部不再劃分記錄,它是由一組相關信息組成的有序字元流,即流式文件,其長度直接按位元組計算.如大量的源程序、可執行程序、庫函數等採用的文件形式是無結構文件形式.在UNIX系統中,所有的普通文件都被看做是流式文件,系統不對文件進行格式處理.
2 文件的物理組織
幾種基本的文件物理存儲組織形式:
1)連續文件
連續文件(又稱做順序文件)是基於磁帶設備的最簡單的物理文件結構,它是把一個邏輯上連續的文件信息存放在連續編號的物理塊(或物理記錄)中.
連續文件的優點是在順序存取時速度較快,常用於存放系統文件,如操作系統文件、編譯程序文件和其它由系統提供的實用程序文件,因為這類文件往往被從頭至尾依次存取.
但連續文件也存在如下缺點:
(1)要求建立文件時就確定它的長度,依此來分配相應的存儲空間,這往往很難實現.
(2)不便於文件的動態擴充.
(3)可能出現外部碎片,就是在存儲介質上存在很多空閑塊,但它們都不連續,無法被連續的文件使用,從而造成浪費.
2)串連文件
為克服連續文件的缺點,可把一個邏輯上連續的文件分散存放在不同的物理塊中,這些物理塊不要求連續,也不必規則排列.為了使系統能找到下一個邏輯塊所在的物理塊,可在各物理塊中設立一個指針(稱為連接字),它指示該文件的下一個物理塊.
串連文件克服了連續文件的缺點,但它又帶來新的問題:
(1)一般僅適於對信息的順序訪問,而不利於對文件的隨機存取.
(2)每個物理塊上增加一個連接字,為信息管理添加了一些麻煩.
3)FAT文件
串連文件的缺點可通過把連接字放在一個內存表格中的方式加以克服.這種在內存中的表格就稱為文件分配表(FAT,File Allocation Table).
由於連接字保存在FAT表項中,因此整個盤塊都可以用來存放數據.另外,也更容易實現隨機存取了.與串連文件相似,在文件目錄中要添加一個整數,標明該文件的起始盤塊號.
這種方法的主要缺點是整個FAT必須在系統工作期間始終駐留在內存中,從而佔用了較多內存空間.當然,可以把這個表移到分頁內存中,採用調頁方式進行管理.但是,仍然要佔用大量的虛存空間和盤空間,同時也會產生額外缺頁問題.
4)索引文件
索引文件是實現非連續分配的另一種方案:系統為每個文件建立一個索引表.其中的表項指出存放該文件的各個物理塊號,而整個索引表由文件說明項指出.
這種結構除了具備串連文件的優點之外,還克服了它的缺點.它可以方便地進行隨機存取.但是這種組織形式需要增加索引表帶來的空間開銷.如果這些表格僅放在盤上,那麼在存取文件時首先得取出索引表,然後才能查表、得到物理塊號.這樣就至少增加了一次訪盤操作,從而降低了存取文件的速度,加重了 I/O負擔.一種改進辦法是同時把索引表部分或全部地放人內存.這是以內存空間為代價來換取存取速度的改善.
5)多重索引文件
為了用戶使用方便,系統一般不應限制文件的大小.如果文件很大,那麼不僅存放文件信息需要大量盤塊,而且相應的索引表也必然很大.在這種情況下把索引表整個放在內存是不合適的,為此引出多重索引結構(又稱多級索引結構).在這種結構中採用了間接索引方式,即由最初索引項中得到某一盤塊號,該塊中存放的信息是另一組盤塊號;而後者每一塊中又可存放下一組盤塊號(或者是文件本身信息),這樣間接幾級(通常為1~3級),最末尾的盤塊中存放的信息一定是文件內容.例如,UNIX文件系統就採用了多重索引的方式.
這種方法具有一般索引文件的優點,但也存在間接索引需要多次訪盤而影響速度的缺點.由於UNIX分時環境中多數文件都較小,這就大大減弱了其缺點所造成的不利影響。
2. 6.根據文件的邏輯結構,文件分為
文件的邏輯結構分為:字元流式的無結構文件和記錄式的有結構文件
3. 2、 按邏輯結構可把文件分為記錄式文件和 什麼兩類
按邏輯結構可把文件分為記錄式文件和( 流式文件 )兩類。