計算機系統基礎:文件管理相關知識筆記

? ? ? ???

一、文件的相關概念

1、為什么要有文件管理?

文件系統主要是為了方面用戶訪問外部存儲器信息,而不去關注內部存儲的機制,只需要根據文件名就可以高效的存取信息。

2、文件的定義

文件是這一組具有符號名、在邏輯上具有完整意義的一組相關信息項的集合。比如一個文本文件、一個電影等。

信息項是構成文件內容的基本單位,可以是一個字符、一個記錄。

文件的組成:文件名、文件內部標識、文件類型、文件存儲地址、文件長度、訪問限制、創建時間、訪問時間等。

文件是一種抽象機制,它隱藏了硬件和實現細節,提供了將信息保存在磁盤上方便以后讀取的手段。

3、什么是文件系統?

定義:操作系統中實現文件統一管理的一組軟件和相關數據的集合,專門負責管理和存取文件信息的軟件機構。

文件系統功能:按文件名存取、針對不同設備提供文件的統一訪問接口、實現并發訪問和控制、優化文件性能(提高文件存儲效率、提高讀寫性能、差錯恢復等)。

4、文件類型

按照文件性質和用途分類:系統文件、庫文件、用戶文件。

按照信息保存期限:臨時文件、永久文件、檔案文件。

文件保護方式:只讀文件、讀寫文件、可執行文件、普通(不受保護)文件。

Unix系統:普通文件、目錄文件、設備文件。

文件系統類型:FAT、FAT32、NTFS、E系統、HPFS等。

二、文件的結構和組織

文件的結構是指文件的組織形式。主要有邏輯結構、物理結構。

1、文件的邏輯結構

文件的邏輯結構分為兩大類:

結構式記錄式文件:由一個以上的記錄構成的文件。

無結構式流式文件:由一串順序字符流構成的文件。

1.1 有結構的記錄式文件

記錄式文件,所有的記錄通常都是描述一個實體集的,有著相同或者不同數組的數據項,記錄的長度分為定長和不定長。

定長記錄:指文件中所以記錄的長度相同。特點:處理方便、開銷小。是一種常見的記錄格式,廣泛用于數據處理中,

變長記錄:指文件中各記錄的長度不相同。因為很多情況下一個記錄所包含的數據項數組可能不同,比如文字的標題、內容等。

1.2 無結構的流式文件

流式文件的文件體是字節流,不劃分記錄。無結構的流式文件通常采用順序訪問的方式,并且每次讀寫訪問可以指定任意長度,以字節為單位。

2、文件的物理結構

文件的物理結構:指文件內部的組織形式,也就是文件在物理設備上的存放方法。文件的物理結構決定了文件在存儲設備上的存放位置,文件的邏輯塊號到物理塊號的轉換也是由文件的物理結構決定的。

1、連續結構

也稱為順序結構,它將邏輯上連續的文件信息依次存放在連續編號的物理塊上。針對文件記錄的批量存取時,連續結構存取效率最高。如果針對交互應用場合連續結構的性能就會很差。如果文件很大的情況效率會更低。

連續結構的另外一個缺點是不便于記錄的增加和刪除操作。

2、鏈式結構

也稱為串聯結構,它是將邏輯上連續的文件信息存放在不連續的物理塊上,每個物理塊設有下一個指針指向下一個物理塊。如果知道第一個物理塊號就可以查找整個文件。

3、索引結構

將邏輯上連續的文件存放在不連續的物理塊上,系統為每一個文件建立一張索引表。索引表會記錄文件信息所在邏輯塊號對應的物理塊號。

4、多個物理塊的索引表

索引表右文件創建時系統自動創建,并且和文件一起存放在同一個文件卷上。多塊索引表組織形式:鏈式文件、多重索引文件。

UNIX文件系統采用三級索引結構,inode是文件系統的基本構成單位,表示文件系統樹形結構的節點。

UNIX文件索引表項尋址方式:直接尋址、一級間接尋址、二級間接尋址、三級間接尋址。

三、文件目錄

文件控制塊(FCB):包含文件名和存放文件物理地址的數據結構。

文件目錄:文件控制塊的有序集合。

1、文件控制塊

文件控制塊包含基本信息、存儲控制信息、使用信息類。

基本信息類:文件名、文件物理地址、文件長度、文件塊數。

存儲控制信息類:文件存取權限,常見的RWX權限。

使用信息類:文件創建日期、最后一次修改日期、最后一次訪問日期、當前使用的信息(打開文件的進程數、在文件上的等待隊列等)。

2、目錄結構

常見的目錄結構有一級目錄結構、二級目錄結構、多級目錄結構

1、一級目錄結構

整個目錄組織是一個線性結構,整個系統中只需建立一張目錄表,系統給每個文件分配一個目錄項。

特點:結構簡單、查找速度慢,不能重名、不方便實現文件共享,適合當用戶環境中。

2、二級目錄結構、多級目錄結構

二級目錄結構由主文件目錄(MFD)、用戶目錄(UFD)組成。在主文件目錄中,每個用戶文件目錄都占有一個目錄項,器目錄項中包括用戶名和指向該用戶目錄文件的指針。用戶目錄是由用戶所有文件的目錄項組成的。

特點:提高了檢索目錄的速度、較好地解決了重名問題;用戶隔離不方便文件的共享。

3、多級目錄結構

目前多道程序設計系統常采用多級目錄結構,這種目錄結構像一棵倒置的有根樹,也稱為樹形目錄結構每一個節點是目錄,葉子節點是文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271409.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271409.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271409.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

list 根據某個數字所在位置_【Python學習筆記】09、使用list和tuple

listPython內置的列表數據類型是:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。如:>>> classmates [Kuaie, Bob, Tracy]>>> classmates[Kuaie, Bob, Tracy]變量classmates就是一個list。用len()函數可以獲得…

連接maven_如何在Eclipse中使用Maven工程連接遠程的Spark

如何在Eclipse中使用Maven工程連接遠程的Spark本地Spark跑不會出現什么問題,但是切換到服務器上各種問題。異常java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to fieldorg.apache.spark.api.java.JavaRDDLike$$anonf…

FastJSON的依賴

<!-- 添加 FastJSON依賴 --> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.59</version> </dependency>

莫隊模板

莫隊的模板&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 嘿嘿嘿 #include<bits/stdc.h> using namespace std; const int maxn 1000005; inline int read() {int x0,f1;char chgetchar();while(ch>9||ch<0){if(ch-)f-1;chgetchar();}while(ch&g…

計算機系統基礎:文件的存取和存儲空間管理知識筆記

1、文件的存取 文件的存取實際上就是針對文件存儲器上物理塊的讀寫操作。存取方法主要有順序存儲、隨機存儲兩種。 2、文件存儲空間管理 磁盤分配表&#xff1a;外存空閑空間管理的數據結構。 2.1 空閑空間管理方法 1、空閑區表 將外存空間的一個連續未分配的區域稱為空閑區。操…

語言篩選法選素數怎么解決輸出超限_論文深耕 | 什么時候才能把文獻看完?——論文的正確篩選、閱讀順序...

Hello!這是你與「大學生科研競賽」的第 50 次相遇。搞科研免不了要看文獻&#xff0c;一提到看文獻就有很多人頭疼&#xff0c;“那么多文獻什么時候才能看完啊&#xff1f;”01篩選論文這個時候就需要我們對文獻有一個篩選&#xff0c;篩選的辦法也很簡單&#xff1a;1標題首先…

ft2232驅動安裝方法_ST-Link資料03_ST-Link固件升級、驅動下載安裝方法

說明&#xff1a;本文原創作者『strongerHuang』本文首發于微信公眾號『嵌入式專欄』&#xff0c;同時也更新在我的個人網站&#xff1a;EmbeddedDevelop一、寫在前面前兩篇文章講述的都是關于ST-Link的一些理論知識&#xff0c;建議初學者看看&#xff1a;ST-Link資料01_ST-Li…

Java 泛形通配符 ?

Class<Integer> cla;與Class<?> cl; 前一個表示baicla只能指向Integer這種類型&#xff0c;而后一個cl表示可以du指向任意類型。 cla Integer.class 可以&#xff0c;但cla Double.class就不可zhi以。 但是cl Integer.class 可以&#xff0c;cl Double.class也…

操作系統基礎:計算機作業管理知識筆記

1、計算機作業的概念計算機中的作業是為了完成某個用戶的計算任務所做工作的總和。作業管理程序&#xff1a;操作系統中用來控制作業進入、執行、撤銷的一組程序。2、作業與作業的控制方式脫機控制方式&#xff1a;用戶需要把自己需要計算機完成的任務用作業控制語言編寫成作業…

easyui的驗證

多重驗證&#xff1a; Js代碼 { field : startPort, title : "起始端口", editor: "text", width : 50, editor: { …

403 forbidden_[SpringSecurity] 自定義403頁面

使用 Spring Security 時經常會看見 403&#xff08;無權限&#xff09;&#xff0c;默認情況下 顯示的效果如下&#xff1a;而在實際項目中可能都是一個異步請求&#xff0c;顯示上述效果對于用戶 就不是特別友好了。Spring Security 支持自定義權限受限。具體做法1.新建一個類…

大疆口袋相機美顏怎么設置_靈眸Osmo口袋云臺相機評測-大疆靈眸云相機使用說明...

大疆正式發布靈眸Osmo口袋云臺相機&#xff0c;機身小巧&#xff0c;便于隨身攜帶&#xff0c;可拍攝4K/60fps超清影像&#xff0c;配備了獨立屏幕&#xff0c;可愛的小巧機身對女性用戶更加合適。據說這款產品 DJI 憋了一年多才正式發布&#xff0c;本期9號小編就帶大家一起來…

java判斷當前時間距離第二天凌晨的秒數

/*** 判斷當前時間距離第二天凌晨的秒數** return 返回值單位為[s:秒]*/public Long getSecondsNextEarlyMorning() {Calendar cal Calendar.getInstance();cal.add(Calendar.DAY_OF_YEAR, 1);cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.SECOND, 0);cal.set(Calendar…

硬件基礎:嵌入式軟件可靠性設計要注意的問題

自從40多年前嵌入式系統誕生以來&#xff0c;隨著技術的發展和需求的變化&#xff0c;嵌入式系統軟件就在嵌入式系統中越來越重要。現在&#xff0c;甚至一些嵌入式系統硬件一模一樣&#xff0c;僅僅是軟件不同&#xff0c;就是不一樣的產品&#xff08;如交換機和路由器&#…

jdk1.6 改 jdk1.7或jdk1.8(改回也可以)(圖文詳解)

不多說&#xff0c;直接上干貨&#xff01; 第一步&#xff1a;設置默認使用的JDK和JRE環境 具體步驟&#xff1a;菜單window->preferences->java->Installed JRES 點中了&#xff0c;右邊的窗口點Add按鈕 記住選擇添加安裝了Java目錄下的Jdk目錄&#xff0c;而不是Jr…

python替換所有標點符號 正則_python 把標點符號替換為空

Python str.replace(old, new[, max]) 方法把字符串str中的 old&#xff08;舊字符串&#xff09; 替換成 new(新字符串)&#xff0c;如果指定第三個參數max&#xff0c;則替換不超過 max 次。 如果非要用replace()函數來實現要這樣寫&#xff1a; import string m l forc inst…

無法打開“XXXX”,因為Apple無法檢查其是否包含惡意軟件。怎么解決?

今天在安裝navicat的時候&#xff0c;因為apple無法檢查其是否包含惡意軟件&#xff0c;大概是如下圖所示&#xff1a; 仔細查詢過后才發現&#xff0c;只需要在Mac上設置下即可&#xff0c;具體方法如下&#xff1a; 打開Mac自帶的軟件「終端」&#xff08;一般在“其它”這個…

vue路由跳轉子組件_vue-router之路由鉤子(組件內路由鉤子必須在路由組件調用,子組件沒用)...

模式vue-router中的模式選項主要在router實例化的時候進行定義的&#xff0c;如下const router new VueRouter({mode: ‘history‘, // 兩種類型history 還有 hashroutes: routes // 可以縮寫成routes})有兩種模式可供選擇&#xff0c;history 和 hash&#xff0c;大致對比一下…

計算機網絡基礎概念知識筆記

1、計算機網絡的發展階段 1.1、具有通信功能的單機系統 該階段的模式為終端-計算機網絡&#xff0c;屬于早期計算機網絡的主要形式。它將一臺計算機經過通信線路和若干個終端直接相連 1.2 具有通信功能的多機系統 針對單機系統的改進&#xff0c;在主計算機的外圍增加了一臺計算…

python模塊下載失敗_python 安裝tushare模塊出錯的一個解決方法

&#xff08;寫于20200519&#xff09; Tushare金融大數據社區 免費提供各類金融數據和區塊鏈數據。我學python的動力之一就是使用金融數據進行量化投資。 原以為安裝thshare是很容易的事&#xff0c;在cmd窗口輸入pip install tushare后&#xff0c;似乎安裝沒報錯&#xff0c…