tft每日頭條

 > 科技

 > 文件和文件夾的路徑

文件和文件夾的路徑

科技 更新时间:2024-07-19 20:15:35

文件控制塊和文件目錄

1.文件控制塊

用戶對文件是“按名存取”,所以用戶首先要創建文件,為它命名。以後對該文件讀、寫以至最後删除它,都要用到文件名,為了便于對文件進行控制和管理,在文件系統内部,給每個文件唯一地設置一個文件控制塊,這種數據結構通常由下列信息項組成:

(1)文件名——符号文件名,如file5,mydata,m1.c等。

(2)文件類型——指明文件的屬性,是普通文件,還是目錄文件,特殊文件,是系統文件還是用戶文件等。

(3)位置——指針,它指向存放該文件的設備和該文件在設備上的位置,如哪台設備的哪些盤塊上。

(4)大小——當前文件的大小(以字節、字或塊為單位)和允許的最大值。

(5)保護信息——對文件讀、寫及執行等操作的控制權限标志。

(6)使用計數——表示當前有多少個進程在使用(打開了)該文件。

(7)時間——日期和進程标志,這個信息反映出文件有關創建、最後修改和最後使用等情況,可用于對文件實施保護和監控等。

操作系統利用這種結構對文件實施各種管理。例如,按名存取文件時,先要找到對應的文件控制塊,驗證權限。僅當存取合法時,才能取得存放文件信息的盤塊地址。

2.文件目錄

為了加快對文件的檢索,往往将文件控制塊集中在一起進行管理。這種文件控制塊的有序集合稱為文件目錄。文件控制塊就是其中的目錄項。由目錄項構成的文件稱為目錄文件

文件目錄具有将文件名轉換成該文件在外存的物理位置的功能,它實現文件名與存放盤塊之間的映射,這是文件目錄所提供的最基本的功能。

MS-DOS系統的文件目錄:

在MS-DOS系統中,一個目錄項有16個字節長,其中包含文件名、擴展名、屬性、時間、日期、首塊号和文件大小。利用首塊号作為查找物理塊鍊接表的索引,按索引鍊向下查找,可以找到該文件所有的盤塊。圖5-12是MS-DOS目錄項示意圖。在MS-DOS中,一個目錄中可包含其他目錄,從而形成層次結構的文件系統。

文件和文件夾的路徑(文件系統-目錄文件)1

圖5-12 MS-DOS目錄項示意圖

UNIX系統的文件目錄:

UNIX系統的目錄項非常簡單,它隻由文件名和I節點(Inode)組成,如圖5-13所示。有關文件的類型、大小、時間、文件主和磁盤塊等信息都包含在I節點中。UNIX系統中所有目錄文件都由這種目錄項組成。按照給定路徑名的層次結構,一級一級地向下找。由文件名找到對應的I節點号,再從I節點中找到文件的控制信息和盤塊号。

文件和文件夾的路徑(文件系統-目錄文件)2

圖5-13 UNIX目錄項示意圖

在考慮一個具體的目錄結構時,必須注意對目錄所實行的操作。主要的目錄操作有如下幾種:

(1)查找。通過查找一個目錄結構,找到特定文件所對應的項,實現按名查找。

(2)建立文件。建立新文件,把相應控制塊加到目錄中去。

(3)删除文件。當一個文件不再需要時,把它從目錄中抹掉。

(4)列出目錄清單。顯示目錄内容和該清單中每個文件目錄項的值。

(5)備份。為了保證可靠性,需要定期保留文件系統。通常的辦法是把全部文件複制到磁盤上。這樣,在系統失效需要重新恢複運行時,能夠提供備份副本。目錄文件經常要存檔或轉儲。

(二)目錄結構

目錄的基本組織方式包含單級目錄、二級目錄、樹形目錄和非循環圖目錄。

1.單級目錄

最簡單的目錄結構就是單級目錄。在這種組織方式下,全部文件都登記在同一目錄中,如圖5-14所示。這種結構在實現和理解上都很容易。由圖5-14可見,每當創建一個新文件時,就在目錄表中找一個空目錄項,把新文件名、物理地址和其他屬性填入該目錄項中。在删除一個文件時,從目錄中找到該文件的目錄項,回收該文件占用的外存空間,然後清空其所占用的目錄項。

文件和文件夾的路徑(文件系統-目錄文件)3

圖5-14 單級目錄結構

單級目錄結構的優點是簡單,能夠實現按名存取。但是,單級目錄結構有以下3個缺點:

(1)查找速度慢。當系統中存在大量文件或衆多用戶同時使用文件時,由于每個文件占一個目錄項,單級目錄中就擁有數目很大的目錄項。如果要從目錄中查找一個文件,就需花費較長時間才能找到。平均而言,找一個文件需要掃描半個目錄表。

(2)不允許重名。因為各個文件都在同一目錄中管轄,它們各自的名字應是唯一的。如果兩個用戶都為自己的文件起了同一名字(如fileA),就破壞了文件名唯一的規則。然而,用戶對文件命名完全是根據需要和個人習慣,無法由系統強行規定各用戶的命名範圍。這樣,在多個用戶(如學生)上機過程中,文件同名現象經常會發生。當出現同名時,系統就無法實現“辨認”工作,即使隻有一個用戶,随着大量文件的創建,也難于記住哪些名字已使用過,不能再使用了。

(3)不便于共享。因為各個用戶對同一文件可能用不同的名稱,而單級目錄卻要求所有用戶用同一名字來訪問同一個文件。

2.二級目錄

單級目錄的主要缺點是無法解決多個用戶間文件“重名”的問題。标準的解決辦法是為每個用戶單獨建立一個目錄,各自管轄自己下屬的文件。在大型系統中,用戶目錄是邏輯結構,它們在邏輯上分開,而在物理上全部文件都可放在同一設備上。

圖5-15為二級目錄結構。每個用戶有自己的用戶文件目錄(UFD),用戶文件目錄都有同樣的結構,其中隻列出每個用戶的文件。在主文件目錄(MFD)中記載各個用戶的名稱,當用戶作業開始或用戶登錄時,需要檢索主文件目錄,找到唯一的用戶名(或用戶編号),再按項中指針的指向找到對應的用戶目錄。用戶使用特定文件時,隻需在自己的用戶目錄中檢索,與其他用戶目錄無關。從而使不同用戶能夠使用相同的文件名,隻要單獨的用戶目錄中所有文件不重名即可。建立或删除文件也僅限于一個用戶目錄。

文件和文件夾的路徑(文件系統-目錄文件)4

圖5-15 二級目錄結構

優點:二級目錄結構基本上解決了單級目錄存在的問題,使得不同用戶可有相同的文件名;提高了檢索目錄的速度;不同用戶可用不同的文件名訪問系統中同一文件。

缺點:這種結構能夠把一個用戶與其他用戶有效地隔開,當各個用戶之間毫無聯系時,它是優點;當多個用戶要對某些盤區共同操作和共享文件時,它就是缺點。就是說,這種結構仍不利于文件共享。

3.樹形目錄

可以把二級目錄自然推廣成多級目錄。在這種結構中,每一級目錄中可以包含文件,也可以包含下一級目錄。從根目錄開始,一層一層地擴展下去,形成一個樹形層次結構,如圖5-16所示。

文件和文件夾的路徑(文件系統-目錄文件)5

圖5-16 樹形目錄結構

每個目錄的直接上一級目錄稱作該目錄的父目錄,而它的直接下一級目錄稱作子目錄。除根目錄外,每個目錄都有父目錄。這樣,用戶創建自己的子目錄和相應的文件就很方便。在樹形結構文件系統中,隻有一個根目錄。系統中的每一個文件(包括目錄文件本身)都有唯一的路徑名,它是從根目錄出發、經由所需子目錄、最終到達指定文件的路徑分量名的序列。

在這種結構中,末端一般是普通的數據文件(圖中用圓圈表示),而路徑的中間節點是目錄文件(用方框表示)。在樹形目錄結構中,從根目錄到末端的數據文件之間隻有一條唯一的路徑。這樣利用路徑名就可唯一地表示一個文件。路徑名有絕對路徑名和相對路徑名兩種表示形式。

優點:在這種目錄結構下,文件的層次和隸屬關系很清晰,便于實現不同級别的存取保護和文件系統的動态裝卸。

缺點:在上述純樹形目錄結構中,隻能在用戶級對文件進行臨時共享。就是說,文件主創建一個文件并指定對其共享權限後,有權共享的用戶可以利用相同的路徑名對文件實施限定操作(如讀、寫、執行等)。當文件主删除該文件後,其他用戶就無法再使用該文件了。當然,其他用戶可以使用copy命令把共享文件複制到自己的目錄下面,但這樣做不符合共享的本義。它既占用額外的存儲空間,又花費I/O時間。

4.非循環圖目錄

樹形目錄結構的自然推廣就是非循環圖目錄結構。它允許一個文件或目錄在多個父目錄中占有項目,但并不構成環路,如圖5-17所示。在MULTICS和UNIX系統中,這種結構方式叫做鍊接(Link)。由圖5-17看出,對文件共享是通過兩種鍊接方式實現的:一種是允許目錄項鍊接到任一表示文件目錄的節點上,另一種是隻允許鍊接到表示普通文件的葉節點上。

文件和文件夾的路徑(文件系統-目錄文件)6

圖5-17 非循環圖目錄結構

第1種方式表示可共享被鍊接的目錄及其各子目錄所包含的全部文件。例如dict鍊接spell的子目錄words,這樣words目錄中所包含的3個文件(list1、radc和w7)都為dict所共享。就是說,可以通過兩條不同的路徑訪問上述3個文件。在這種結構中,可把所有共享的文件放在一個目錄中,所有共享這些文件的用戶可以建立自己的子目錄,并且鍊接共享目錄。這樣做的好處是便于共享,但問題是限制太少,對控制和維護造成困難,甚至因為使用不當而造成環路鍊接,産生目錄管理混亂。

UNIX系統基本上采取第2種鍊接方式,即隻允許對單個普通文件鍊接。從而通過幾條路徑來訪問同一文件,即一個文件可以有幾個“别名”。如/spell/count和/dict/count表示同一文件的兩個路徑名。這種方式雖限制了共享範圍,但更可靠,且易于管理。

應該指出,一般常說UNIX文件系統是樹形結構的,嚴格地說,是帶鍊接的樹形結構,也就是上述的非循環圖結構,而不是純樹形結構。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved