1. 程式人生 > >作業系統——檔案管理

作業系統——檔案管理

1、檔案系統基礎

檔案的概念

檔案的定義

檔案是以計算機硬碟為載體儲存在計算機上的資訊集合,檔案可以是文字文件、圖片、程式,等等

在系統執行時,計算機以程序為基本單位進行資源的排程和分配;而在使用者進行的輸入、輸出中,則以檔案為基本單位

檔案系統提供了與二級儲存相關的資源的抽象,讓使用者能在不瞭解檔案的各種屬性、檔案儲存介質的特徵以及檔案在儲存介質上的具體位置等情況下,方便快捷地使用檔案

檔案的自底向上的定義:

  • 1、資料項:檔案系統中最低階的資料組織形式(分為基本資料項組合資料項兩種)
  • 2、記錄:一組相關的資料項的集合,用於描述一個物件在某方面的屬性
  • 3、檔案:由建立者所定義的一組相關資訊的集合,邏輯上可分為有結構檔案
    (又稱記錄式檔案)和無結構檔案(又稱流式檔案)兩種

雖然上面給出了結構化的表述,但實際上關於檔案並無嚴格的定義

檔案的屬性
  • 1、名稱:檔名稱唯一,以容易讀取的形式儲存
  • 2、識別符號:標識檔案系統內檔案的唯一標籤,通常為數字,它是對人不可讀的一種內部名稱
  • 3、型別:
  • 4、位置:指向裝置和裝置上檔案的指標
  • 5、大小:檔案的當前大小和允許的最大值
  • 6、保護:對檔案進行保護的訪問控制資訊
  • 7、時間、日期和使用者標識:檔案建立、上次修改和上次訪問的相關資訊,用於保護、安全和跟蹤檔案的使用

所有檔案的資訊都儲存在目錄結構中,而目錄結構也儲存在外存上檔案資訊當需要時再調入記憶體。通常,目錄條目包括檔名稱及其唯一識別符號

,而識別符號定位其他屬性的資訊

檔案的基本操作

檔案屬於抽象資料型別。為了恰當地定義檔案,就需要考慮有關檔案的操作。作業系統提供系統呼叫,它對檔案進行建立、寫、讀、定位和截斷

  • 1、建立檔案:建立檔案有兩個必要步驟,一是在檔案系統中為檔案找到空間;二是在目錄中為新檔案建立目錄條目該條目記錄檔案的名稱、其在檔案系統中的位置及其他可能的資訊
  • 2、寫檔案:為了寫檔案,執行一個系統呼叫,指明檔名稱要寫入檔案的內容。對於給定的檔名稱,系統搜尋目錄結構以查詢檔案位置。系統必須為該檔案維護一個寫位置的指標。每當發生寫操作,便更新寫指標
  • 3、讀檔案:為了讀檔案,執行一個系統呼叫,指明檔名稱要讀入檔案塊的記憶體位置
    。系統根據給定檔名稱搜尋目錄以找到相關目錄項,系統維護一個讀位置指標。每當發生讀操作時,更新讀指標
  • 4、檔案重定位(檔案定址):按某條件搜尋目錄結構,將當前檔案位置設為給定值,並且不會讀、寫檔案
  • 5、刪除檔案:先從目錄中找到要刪除檔案的目錄項,使之成為空項,然後回收該檔案所佔用的儲存空間
  • 6、截斷檔案:允許檔案所有屬性不變,並刪除檔案內容,即將其長度設為0並釋放其空間

一個程序通常只對一個檔案讀或寫,所以當前操作位置可作為每個程序當前檔案位置指標。由於讀和寫操作都使用同一指標,所以節省了空間也降低了系統複雜度

檔案的開啟與關閉

因為許多檔案操作都涉及為給定檔案搜尋相關目錄條目,所以許多系統要求在首次使用檔案時,使用系統呼叫open,將指明檔案的屬性(包括該檔案在外存上的物理位置)從外存拷貝到記憶體中的開啟檔案表的一個表目中,並將該表目的編號(或稱為索引)返回給使用者

作業系統維護一個包含所有開啟檔案資訊的表(開啟檔案表,open-file table)。當用戶需要操作一個檔案時,可通過該表的一個索引指定該檔案,就省略了搜尋環節。當檔案不再使用時,程序可以關閉它,作業系統從開啟檔案表中刪除這一條目

大部分作業系統要求在某檔案被使用之前就應被顯式地開啟。操作open會根據檔名搜尋目錄,並將目錄條目複製開啟檔案表中。如果呼叫open的請求(建立、只讀、讀寫、新增等)得到允許,程序就可以開啟檔案,而open通常返回一個指向開啟檔案表中的一個條目的指標。通過使用該指標(而非檔名)進行所有I/O操作,以簡化步驟並節省資源

開啟檔案表分為系統開啟檔案表程序開啟檔案表

檔案在第一次被開啟和第二次被開啟的時候會有不同的操作

每個開啟檔案都有如下關聯資訊:

  • 1、檔案指標:系統跟蹤上次讀寫位置作為當前檔案位置指標
  • 2、檔案開啟計數器:跟蹤檔案被開啟和關閉的數量
  • 3、檔案磁碟位置
  • 4、訪問許可權:每個程序開啟檔案都需要一個訪問模式(建立、只讀、讀寫、新增等)

檔案指標檔案位置指標應該不是一種東西??????

檔案的邏輯結構

檔案的邏輯結構是從使用者觀點出發看到的檔案的組織形式;檔案的物理結構(又稱儲存組織形式)是從現實觀點出發,是指檔案在外存上的儲存組織形式

檔案的邏輯結構與儲存介質的特性無關;但檔案的物理結構與儲存介質的特性有很大關係

檔案的邏輯結構實際上講的就是在檔案的內部,邏輯上資料是如何組織起來的

按邏輯結構,檔案有無結構檔案有結構檔案兩種型別。有結構檔案又分為順序檔案、索引檔案、索引順序檔案、雜湊檔案(又稱直接檔案)

  • 1、無結構檔案:將資料按順序組織成記錄並積累儲存,它是有序相關資訊項的集合,以位元組為單位
  • 2、順序檔案:檔案中的記錄一個接一個地順序排列,記錄通常是定長的,可以順序儲存或以連結串列形式儲存,在訪問時需要順序搜尋檔案
  • 3、索引檔案:建立索引表,提高訪問速度
  • 4、索引順序檔案:所有記錄分組,取每組的第一個記錄建立索引,索引表中的關鍵字遞增排序,組內的關鍵字可以是無序的
  • 5、雜湊檔案:通過Hash函式可以快速得到儲存地址

索引檔案和索引順序檔案都提高了存取的速度,但因為配置索引表而增加了儲存空間

有結構檔案邏輯上的組織,是為了在檔案中查詢資料服務的(順序查詢、索引查詢、索引順序查詢、雜湊查詢)

目錄結構

檔案管理系統檔案集合相關聯的是檔案目錄,它包含有關檔案的資訊,包括屬性、位置和所有權等,這些資訊主要由作業系統進行管理

目錄管理的基本要求:

  • 1、實現按名存取
  • 2、需要提高對目錄的檢索速度
  • 3、需要提供用於控制訪問檔案的資訊
檔案控制塊和索引結點

檔案控制塊:用來存放控制檔案需要的各種資訊的資料結構,以實現按名存取

FCB的有序集合稱為檔案目錄,一個FCB就是一個檔案目錄項。為了建立一個新檔案,系統將分配一個FCB並存放在檔案目錄中,成為目錄項

FCB主要包含以下資訊:

  • 1、基本資訊:檔名、檔案的物理位置、檔案的邏輯結構、檔案的物理結構
  • 2、存取控制資訊:檔案的存取許可權
  • 3、使用資訊:檔案建立時間、修改時間

由於在檢索目錄檔案的過程中,只用到了檔名(其他的描述資訊不會用到,也不需調入記憶體),有的系統(如UNIX)採用了檔名和檔案描述資訊分開的方法,檔案描述資訊單獨形成一個稱為索引結點的資料結構,簡稱為i結點

在UNIX中,檔案目錄中的每個目錄項僅由檔名和指向該檔案所對應的i結點的指標構成

索引結點分為磁碟索引結點記憶體索引結點

FCB必須連續存放

UNIX中的i結點主要包括以下幾個方面:

  • 1、檔案主識別符號:
  • 2、檔案型別:
  • 3、檔案存取許可權:
  • 4、檔案實體地址:
  • 5、檔案長度:
  • 6、檔案連結計數:
  • 7、檔案存取時間:
  • 8、檔案被開啟時,磁碟索引結點被複制到記憶體索引結點中,以便於使用。在記憶體索引結點中又增加了幾項內容

FCB和索引結點相當於圖書館中書本的索書號

目錄結構

目錄層次上所需執行的操作:搜尋、建立檔案、刪除檔案、顯示目錄、修改目錄

有以下四種目錄結構:

  • 1、單級目錄結構:查詢速度慢、檔案不允許重名、不便於檔案共享。對於多使用者的作業系統顯然是不適用的
  • 2、兩級目錄結構:缺乏靈活性,不能對檔案分類
  • 3、多級目錄結構(樹形目錄結構):查詢一個檔案,需要按路徑名逐級訪問中間結點,這就增加了磁碟訪問次數,影響查詢速度
  • 4、無環圖目錄結構:實現了檔案的共享,但使得系統的管理變得更加複雜

檔案共享

隨著計算機技術的發展,檔案共享的範圍已由單機系統發展到多機系統,進而通過網路擴充套件到全球。這些檔案的共享是通過分散式檔案系統遠端檔案系統分散式資訊系統實現的。這些系統允許多個客戶通過C/S模型共享網路中的伺服器檔案

現代常用的兩種檔案共享方法:

  • 1、基於索引結點的共享方式(硬連結):多個目錄項中的指標指向同一個索引結點
  • 2、利用符號鏈實現檔案共享(軟連結):LINK型別的檔案中只包含被共享檔案的路徑名(絕對的還是相對的?????)

硬連結和軟連結都是檔案系統中的靜態共享方法,在檔案系統中還存在著另外的共享需求,即兩個程序同時對同一個檔案進行操作,這樣的共享可以稱為動態共享

硬連結的速度比軟連結快

檔案保護

檔案保護通過口令保護加密保護訪問控制等方式實現。口令保護和加密保護是為了防止使用者檔案被他人存取或竊取,而訪問控制則用於控制使用者對檔案的訪問方式

訪問型別:讀、寫、執行、新增、刪除、列表清單

訪問控制:解決訪問控制最常用的方法是根據使用者身份進行控制

實現基於身份訪問的方法是訪問控制列表

口令和密碼都是防止使用者檔案被他人存取或竊取,並沒有控制使用者對檔案的訪問型別

注意兩個問題:

  • 1、現代作業系統是將普通的訪問控制列表精簡的訪問控制列表一起組合使用的
  • 2、對於多級目錄結構而言,不僅需要保護單個檔案,還需要保護子目錄內的檔案

2、檔案系統的實現

檔案系統層次結構

現代作業系統有多種檔案系統型別(如FAT32、NTFS、ext2、ext3、ext4等),因此檔案系統的層次結構也不盡相同

一種合理的層次結構如下:

  • 1、使用者呼叫介面:
  • 2、檔案目錄系統:
  • 3、存取控制驗證:
  • 4、邏輯檔案系統與檔案資訊緩衝區:
  • 5、物理檔案系統:
  • 6、分配模組:
  • 7、裝置管理程式模組:

通過理解來記憶上述結構

目錄實現

目錄實現的基本方法有線性列表雜湊表兩種,要注意目錄的實現就是為了查詢,因此線性列表實現對應線性查詢,雜湊表的實現對應雜湊查詢

最大的困難是雜湊表長度固定以及雜湊函式對錶長的依賴性

為了減少I/O操作,把當前使用的檔案目錄複製到記憶體,以後要使用該檔案時只要在記憶體中操作,從而降低了磁碟操作次數,提高了系統速度

檔案實現

檔案的實現就是研究檔案的物理結構,即檔案資料在物理儲存裝置上是如何分佈以及組織起來的

同一個問題有兩個方面的回答:

  • 1、檔案的分配方式,講的是對磁碟非空閒塊的管理
  • 2、檔案儲存空間管理,講的是對磁碟空閒塊的管理
檔案分配方式

檔案分配對應於檔案的物理結構,是指如何為檔案分配磁碟塊

常用的磁碟空間分配方法有如下三種:

  • 1、連續分配:
  • 2、連結分配:
  • 3、索引分配:

關於分配方法,細節太多,只能夠理解記憶了

檔案儲存空間管理

檔案儲存器空間的劃分與初始化,即對空閒塊的組織和管理

要十分注意檔案卷超級塊的概念??????

由於存在很多種類的檔案表示和存放格式,所以現代作業系統中一般都有很多不同的檔案管理模組,通過它們可以訪問不同格式的邏輯卷中的檔案。邏輯卷在提供檔案服務前,必須由對應的檔案程式進行初始化,劃分好目錄區和檔案區,建立空閒空間管理表格及存放邏輯卷資訊的超級塊

檔案儲存空間管理有如下四種方法:

  • 1、空閒表法:
  • 2、空閒連結串列法:
  • 3、位示圖法:
  • 4、成組連結法:

上述管理方法需要理解記憶和計算練習

3、磁碟組織與管理

本節重點掌握計算一次磁碟操作的時間,以及對於給定訪盤的磁軌序列,按照特定演算法求出磁頭通過的總磁軌數以及平均尋道數

磁碟的結構

一個扇區稱為一個盤塊(大小通常為512B)

相鄰磁軌相鄰扇區之間通過一定的間隙分隔開,以避免精度錯誤

由於扇區按固定的圓心角度劃分,所以密度從最外道向裡道增加,磁碟的儲存能力受限於最內道的扇區的最大記錄密度

磁碟安裝在一個磁碟驅動器中,它由磁頭臂、用於旋轉磁碟的主軸和用於資料輸入/輸出的電子裝置組成

扇區是磁碟可定址的最小儲存單位,磁碟地址用柱面號 | 盤面號 | 扇區號(或塊號)表示

磁碟排程演算法

當有多個請求同時到達的時候,作業系統就要決定要先為哪個請求服務,這就是磁碟排程演算法要解決的問題

一次磁碟讀寫操作的時間由尋找(尋道)時間延遲時間傳輸時間決定的

尋道時間與磁碟排程演算法相關;而延遲時間和傳輸時間都與磁碟旋轉速度相關,且線性相關。所以轉速是磁碟效能的一個非常重要的引數

存取時間與磁碟排程演算法密切相關。因為排程演算法直接決定尋找時間,從而決定了總的存取時間

常用的磁碟排程演算法:

  • 1、先來先服務(First Come First Served,FCFS)演算法
  • 2、最短尋找時間優先(Shortest Seek Time First,SSTF)演算法
  • 3、掃描(SCAN)演算法(又稱電梯演算法)
  • 4、迴圈掃描(Circular SCAN,C-SCAN)演算法

磁頭移動只需要到達最遠端的一個請求即可返回,不需要達到磁碟端點。這種形式的SCAN演算法和C-SCAN演算法稱為LOOK和C-LOOK排程

三種磁碟排程演算法的比較p252

除減少尋找時間外,減少延遲時間也是提高磁碟讀寫效率的重要因素。可以對盤面扇區進行交替編號;對磁碟片組中的不同盤面錯位命名

磁碟是連續自轉裝置,磁頭讀/寫一個物理塊後,需要經過短暫的處理時間才能開始讀/寫下一塊

找的時間可以通過一定的方法削減,但傳輸時間不能減少

磁碟的管理

磁碟初始化

低階格式化(物理分割槽):在磁碟能儲存資料之前,將磁碟分成扇區以方便磁碟控制器能進行讀和寫操作

低階格式化為磁碟的每個扇區採用特別的資料結構。每個扇區的資料結構通常由頭、資料區域(通常為512B)和尾部組成。頭部和尾部包含了一些磁碟控制器所使用的資訊

為了使用磁碟儲存檔案,作業系統還需要將自己的資料結構記錄在磁碟上:

  • 1、將磁碟分為由一個或多個柱面組成的分割槽(如C盤、D盤)
  • 2、對物理分割槽進行邏輯格式化(建立檔案系統),作業系統將初始的檔案系統資料結構儲存到磁碟上,這些資料結構包括空閒和已分配的空間以及一個初始化為空的目錄
引導塊

計算機啟動時需要執行一個初始化程式(自舉程式),自舉程式通常儲存在ROM中,為了避免改變自舉程式碼需要改變ROM硬體的問題,故只在ROM中保留很小的自舉裝入程式,將完整功能的自舉程式儲存在磁碟的啟動塊上,啟動塊位於磁碟的固定位

擁有啟動分割槽的磁碟稱為啟動磁碟或者系統磁碟

壞塊

扇區備用:用在低階格式化中保留下來的扇區來邏輯地替換壞塊

對壞塊的處理實質上就是用某種機制,使系統不去使用壞塊。壞塊屬於硬體故障,作業系統是不能修復壞塊的

一般來說,尋道時間因為要移動磁臂,所以佔用時間最長

相關推薦

計算機作業系統-檔案管理 知識點歸納

1.在作業系統的引論部分介紹過作業系統的主要功能有:處理機管理功能、儲存器管理功能、裝置管理功能、檔案管理功能。 2.檔案管理功能:專門管理在外存上的檔案,並把對檔案的存取、共享和保護等手段提供給使用者。檔案系統的功能大多在中間層-對物件操縱和管理的軟體集合上實現,包括:①對檔案儲存空間的管理

作業系統檔案管理

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

作業系統——檔案管理

1、檔案系統基礎 檔案的概念 檔案的定義 檔案是以計算機硬碟為載體儲存在計算機上的資訊集合,檔案可以是文字文件、圖片、程式,等等 在系統執行時,計算機以程序為基本單位進行資源的排程和分配;而在使用者進行的輸入、輸出中,則以檔案為基本單位 檔案系統提供了與二級儲存

作業系統-檔案管理(參考王道)

檔案的概念 在系統執行時,計算機以程序為基本單位進行資源的排程和分配,而在使用者進行的輸入輸出彙總,則以檔案為基本單位。 自底向上定義 資料項: 檔案中最低階資料組織形式。 基本資料項:用於表述一個物件的某種屬性的一個值,是資料中可命名的最小邏輯資料單位,即院子資料

作業系統-檔案管理

在討論檔案時常用的4個術語。 field(域) 基本資料單元. 一個域包含一個值, 可以通過它的長度和資料型別(ASCII字串, 二進位制數等)來描述. 長度既可以是固定的,也可以是可變的, 取決於檔案的設計. 長度可變的域, 通常包含兩個或三個子域:要儲

檔案管理 作業系統

  檔案結構: 邏輯結構檔案:從使用者觀點出發所觀察到的檔案組織形式。                         邏輯結構檔案又可分為:有結構檔案

易學筆記-系統分析師考試-第3章 作業系統基本原理/3.4 檔案管理/3.4.1 檔案的組織結構

檔案的組織結構 概念:指的是檔案的構造方式,從使用者角度是檔案的邏輯組織,從系統角度是檔案的物理組織 檔案的邏輯結構 概念:使用者概念中的檔案,不依賴於物理儲存 無結構的流式檔案 指的是資訊項的組合,單位是位元組,系統不

Linux作業系統知識點五:作業系統的功能——檔案管理

檔案是具有符號名的一組相關元素的有序序列,是一段程式或資料的集合。 檔案是儲存資訊的基本結構。 資訊包括相關記錄或者字元流。 檔案通過檔名標識。 檔案分類 (1)按檔案的資料形式分:原始檔、目標檔案、可執行檔案。 (2)按用途分:系統檔案、庫檔案、使用者檔案。 (3)按存

Linux作業系統知識點六:作業系統的功能——檔案管理(程序管理

回顧:作業系統的功能 1.處理器管理 2.儲存管理 3.裝置管理 4.檔案管理 5.作業管理 程序 概念 可併發執行、具有獨立功能的程式(program)關於某個資料集合的一次執行活動。是作業系統進行資源分配和排程執行的基本單位。 程序的特性: 動態性(程序的最基

2019年王道計算機考研作業系統筆記---檔案管理

文章目錄 名詞解釋 檔案型別 檔案的邏輯結構 無結構檔案(流式檔案) 有結構檔案(記錄式檔案) 順序檔案 索引檔案

作業系統檔案管理

  一 檔案和檔案系統           檔案管理:把所管理的程式和資料組織成一系列的檔案,並能進行合理的儲存、使用等操作。          1 基本概念            資料項:描述物件某種屬性的字符集;是資料組織中可以命名的最小邏輯資料單位。      記錄:一組相關資料項集合,描述物件

[教程]linux/UNIX作業系統檔案系統許可權管理

linux/UNIX檔案的存取有三種許可權:許可權 普通檔案的存取許可權 目錄的存取許可權R 具有讀取檔案的權利 能讀取檔名稱W 具有寫入檔案的權利 能建立和刪除檔案,可以改變檔名X 具有執行檔案的權利 能使用該目錄下的檔案(如cd命令)搜尋檔案等能夠存取檔案的使用者型別有三種類型的使用者可以存取檔案:使用者

易學筆記-系統分析師考試-第3章 作業系統基本原理/3.4 檔案管理/3.4.2 儲存空間管理

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

作業系統》總結四(檔案管理

檔案的屬性 檔案有一定的屬性,這根據系統的不同而有所不同,但是通常都包括如下屬性: ①名稱:檔名稱唯一,以容易讀取的形式儲存。 ②識別符號:標識檔案系統內檔案的唯一標籤,通常為數字,它是對人不可讀的一種內部名稱。 ③型別:被支援不同型別的檔案系統所使用。 ④位置:指向裝置和裝置上檔案的指標。 ⑤大小:檔案當

[筆記]《作業系統精髓與設計原理》---(7)檔案管理

概述 檔案系統架構 最底層,裝置驅動程式程式直接與外圍裝置通訊。 基本檔案系統(物理I/O層),處理在磁碟間或磁帶系統間交換的資料塊,關注的是這些塊在輔助儲存和記憶體緩衝區中的位置,不關注資料內容或所涉及的檔案結構。 基本I/O管理,程式負責所有檔案I

理解作業系統4--檔案管理疑惑總結

檔案和檔案系統 檔案系統是作業系統的一個重要組成部分,負責管理系統裡面的檔案,為使用者提供檔案操作介面,檔案系統由實施檔案管理的軟體和被管理的檔案組成,為使用者提供使用檔案的操作介面,檔案系統軟體屬於系統核心程式碼,檔案按照特定的格式存放在磁碟分割槽。檔案系統通常安裝磁碟分

作業系統 學習筆記4-檔案管理

第四章 檔案管理 4.1檔案系統基礎 4.1.1檔案的概念 計算機以程序為基本單位進行資源的排程和分配;而在使用者進行的輸入、輸出中,則以檔案為基本單位。大多數應用程式的輸入都是通過檔案來實現的,其輸

軟考-架構師-第二章-作業系統 第五節 檔案管理 (讀書筆記)

主要針對希賽出版的架構師考試教程《系統架構設計師教程(第4版)》,作者“希賽教育軟考學院”。完成相關的讀書筆記以便後期自查,僅供個人學習使用,不得用於任何商業用途。 第五節 檔案管理 每一種軟體資源本身都是具有一定邏輯意義的相關資訊的集合,在

作業系統-10——檔案管理

檔案和檔案系統1.檔案(File)    1.1 定義:儲存在外存上具有標識名的一組相關字元流或記錄的集合。可長期儲存和共享。    1.2 分類:記錄式檔案、流式檔案。(按檔案結構劃分)            #記錄式檔案:資料有4個結構層次:域(欄位)、記錄、檔案、資料庫

檔案管理-----作業系統

檔案管理        檔案管理是作業系統不可缺少的五大重要管理功能之一,它涉及到計算機對資訊的儲存和訪問方便性、靈活性和安全性等方面。因此,本篇部落格將對作業系統的檔案系統基本概念、檔案目錄管理、檔案的組織及資料儲存和檔案系統其他功能的實現等做出詳細介紹。作業系統的五大功能