操作系統【八】文件管理

文件:一組有意義的信息/數據集合

文件的屬性:

  • 文件名:由創建文件的用戶決定文件名,主要是為了方便用戶找到文件。同一個目錄下不允許有重名文件
  • 標識符:一個系統內的個文件標識符唯一,對用戶來說毫無可讀性。因此標識符只是操作系統用于區分各個文件的一種內部名稱
  • 類型:指明文件的類型
  • 位置:文件的存放路徑、在外存中的地址(操作系統使用,對用戶不可見)
  • 創建時間
  • 上次修改時間
  • 文件所有者信息
  • 保護信息:對文件進行保護的訪問控制信息

文件組織形式

  • 無結構文件
  • 有結構文件:由記錄組成

目錄也是一種特殊的有結構文件(由記錄組成)

類似于內存分為一個個“內存塊”,外存會分為一個個“塊/磁盤塊/物理塊”。每個磁盤塊的大小是相等的,一般包含2的整數冪個地址。文件的邏輯地址也可以分為(邏輯塊號,塊內地址)。操作系統同樣需要將邏輯地址轉換為外存的物理地址。塊內地址的位數取決于磁盤塊的大小。

操作系統以塊為單位為文件分配存儲空間。外存中的數據讀入內存時同樣以塊為單位。

文件的邏輯結構

無結構文件

內部的數據就是一系列二進制流或字符流,又稱作流式文件

有結構文件

記錄式文件,每條記錄有一個數據項作為關鍵字。可分為定長記錄和可變長記錄兩種。

在這里插入圖片描述

順序文件:類似于順序表

  • 串結構:記錄之間的順序,與關鍵字無關。通常按照記錄存入的時間決定記錄的順序
  • 順序結構:記錄之間的順序按關鍵字順序排列

鏈式文件:

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

索引文件

在這里插入圖片描述

索引順序文件

在這里插入圖片描述
索引順序文件的效率比較高。
在這里插入圖片描述

當文件比較多的時候可以采用多級索引順序文件,可以大大提高效率

文件目錄

在這里插入圖片描述
目錄本身就是一種有結構文件,由一條條記錄組成。每條記錄對應一個在該目錄下的文件。
文件控制塊FCB:一個文件目錄項
FCB的有序集合稱為文件目錄。

在這里插入圖片描述

  • 單級目錄結構
  • 兩級目錄結構:MFD(主文件目錄)和UFD(用戶文件目錄)
  • 多級目錄結構(樹形目錄結構):樹形結構不便于實現文件的共享
  • 無環圖目錄結構:可以用不同的文件名指向同一個文件。需要為每個共享節點設置一個共享計數器,用于記錄此時有多少個地方在共享該節點。用戶提出刪除節點的請求時,要是刪除該用戶的FCB,并使得共享計數器減一。

索引節點:FCB的改進

在這里插入圖片描述
在這里插入圖片描述

減小目錄表項長度,因此每個磁盤塊可以存放更多個目錄項,因此檢索文件時磁盤I/O的次數就會減少許多。

文件的物理結構

在這里插入圖片描述
內存塊和外存塊的大小一般相同

連續分配

要求每個文件在磁盤上占有一組連續的塊。文件目錄中需要記錄起始塊號和長度。
優點:支持順序訪問和直接訪問(隨機訪問)

讀取某個磁盤塊時,需要移動磁頭,連續分配的文件在順序讀寫時速度最快

缺點:物理上采用連續分配的文件不方便拓展。而且會產生磁盤內部碎片。存儲空間利用率低。

鏈接分配

隱式分配

在這里插入圖片描述

不會產生內部碎片

顯式鏈接

把用于鏈接文件各個物理塊的指針顯式地存放在一張表中,即文件分配表(FAT)
在這里插入圖片描述
在這里插入圖片描述

默認鏈接分配是隱式鏈接的

索引分配

在這里插入圖片描述

鏈接方案

多層索引

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

數據庫原理及應用【六】數據庫設計

數據依賴 函數依賴FD:一個屬性或者一組屬性的值可以決定另一個屬性的值 多值依賴MVD:一個屬性或者一組屬性的值可以決定另一個屬性的值的集合。FD是MVD的特例 符號表示:Name->->Course,課程多值依賴于姓名 連接依賴&#x…

數據可視化【一】JavaScript學習

本博客是我學習Curran Kelleher老師數據可視化課程的筆記,感興趣的小伙伴可以點擊這里學習。 three cores of data visualization: analysisdesignconstruction 推薦書籍《visualization analysis & design》 使用https://vizhub.com/進行編程學習&#xff…

數據庫原理及應用【二】數據模型

層次模型 tree Record and fieldParent-Child relationship(PCR) 每個記錄類型只有一個父節點 無法表達多對多信息 采用虛記錄解決多對多 網狀數據模型 系:主記錄->屬記錄 主記錄和屬記錄都可以有好多個 關系模型 表:table/relation 擁有更高的…

數據可視化【二】HTML+CSS+SVG+D3

HTML、CSS和SVG學習實現代碼&#xff1a;https://vizhub.com/Edward-Elric233/89185eb96bc64a9d81777873a0ccd0b9 index.html <!DOCTYPE html> <html><head><title>Shapes with SVG and CSS</title><link rel"stylesheet" href&qu…

數據可視化【三】基本概念

Visualization is suitable when there is a need to augment human capabilities rather than replace people with computational decision-making methods. 當可以信賴的智能化的解決方案存在的時候&#xff0c;可視化是不必要的。 當不知道需要分析的問題是什么的時候&…

數據可視化【四】Bar Chart

Make a Bar Chart Representing a data table in JavaScriptCreating rectangles for each rowUsing linear and band scalesThe margin conventionAdding axes 以下學習內容參考博客&#xff1a;傳送門 select()選擇所有指定元素的第一個 selectAll()選擇指定元素的全部 上…

數據庫原理及應用【三】DBMS+SQL

DBMS Query LanguagesInterface and maintaining tools(GUI)APIsClass Library QL 不是圖靈完備的&#xff0c;不是一種編程語言。 QL SQL是一種非過程化的查詢語言。 DDL數據定義語言&#xff1a;表&#xff0c;視圖QL 查詢語言DML 數據操縱語言DCL 數據控制語言 Base t…

數據可視化【五】 Scatter Plot

Scatter Plot vizhub上實現的代碼&#xff1a; https://vizhub.com/Edward-Elric233/53807a1b35d94329b3689081cd2ea945 https://vizhub.com/Edward-Elric233/b9647d50899a4a0e8e917f913cd0a53a https://vizhub.com/Edward-Elric233/8c6b50cd81a04f048f490f48e4fe6264 由前…

數據可視化【六】Line Chart Area Chart

Line Chart vizhub代碼&#xff1a; https://vizhub.com/Edward-Elric233/094396fc7a164c828a4a8c2e13045308 實現效果&#xff1a; 這里先使用d3.line()設置每個點的x坐標和y坐標&#xff0c;然后再用這個東西設置path的d屬性&#xff0c;就可以得到曲線。 const lineGen…

數據可視化【七】 更新模式

Enter 以下面這個簡單的代碼進行分析 const svg d3.select(svg); // svg.style(background-color, red); testconst height svg.attr(height); // equals paresFloat() const width svg.attr(width);const makeFruit type >( {type} ); //這種寫法好像能夠直接得到一個…

數據可視化【八】根據數據類型選擇可視化方式

Marks:Rows PointsLinesAreas Channels:Columns PositionColorShape

數據可視化【九】單向數據流交互

我們使用一下上上篇博客的代碼。 例如我們想要當鼠標點擊水果的時候會出現黑色的框&#xff0c;再點擊一下黑色的框就會消失。 首先&#xff0c;我們應該給組件添加點擊事件&#xff1a; fruitBowl.js gruopAll.on(click, d > onClick(d.id));這個on函數第一個參數是事件…

數據庫原理及應用【四】數據庫管理系統

查詢優化 數據庫管理系統中非常重要的一部分。 代數優化 按照一定的規則將語句變化成關系代數以后進行優化 操作優化 對代數優化后的查詢樹使用比較好的方法進行查詢。 主要是對連接運算進行優化 嵌套循環歸并掃描索引優化哈希連接 恢復機制 備份&#xff08;完整備份差…

數據庫原理及應用【五】安全性和完整性約束

數據庫一致性被破壞&#xff1a; 系統故障許多用戶的并發訪問人為破壞事務本身不正確 保護數據庫一致性的方法&#xff1a; 視圖/查詢修改訪問控制 普通用戶擁有資源特權的用戶DBA 數據庫的安全問題 身份驗證 口令物理設備 GRANT CONNECT TO John IDENTIFIED BY 123456…

遞歸式復雜度求解

代換法 猜測復雜度驗證是否滿足遞歸式&#xff08;使用歸納法&#xff09;找到常數應該滿足的條件針對基本情況&#xff0c;常數足夠大時總是成立的 需要注意的是&#xff0c;我們猜測的復雜度有可能不滿足遞歸式&#xff0c;這個時候就要通過減去一些低階項來使得歸納成立。…

斐波那契數列計算

定義 斐波那契數列&#xff1a; F[n]{0,n01,n1F[n?1]F[n?2],elseF[n] \begin{cases} 0,n0 \\ 1,n1\\ F[n-1]F[n-2],else \end{cases} F[n]??????0,n01,n1F[n?1]F[n?2],else? 樸素計算法 根據遞歸式F[n]F[n?1]F[n?2]F[n]F[n-1]F[n-2]F[n]F[n?1]F[n?2]進行計算…

P、NP、NP完全問題、NP難問題

可以在多項式時間內求解的問題稱為易解的&#xff0c;而不能在多項式時間內求解的問題稱為難解的。 P類問題&#xff1a;多項式類型&#xff0c;是一類能夠用&#xff08;確定性的&#xff09;算法在多項式的時間內求解的判定問題。 只有判定問題才屬于P 不可判定問題&#…

數據可視化【十】繪制地圖

Loading and parsing TOPOJSON 導入Topojson d3文件 地址&#xff1a;https://unpkg.com/topojson3.0.2/dist/topojson.min.js 想要找d3文件的話去unpkg.com好像大部分都能找到的樣子 Rendering geographic features 尋找合適的地圖數據&#xff1a;谷歌搜索world-atlas npm…

數據可視化【十一】樹狀圖

Constructing a node-link tree visualization 首先將節點之間的連線畫出來。 使用json函數讀取文件以后&#xff0c;使用hierarchy等函數得到連線的數組&#xff0c;然后綁定這個數組&#xff0c;給每個元素添加一個path&#xff0c;繪畫使用的是一個函數linkHorizontal&…

數據可視化【十二】 顏色圖例和尺寸圖例

有了前面的知識&#xff0c;制作一個圖例應該不是很難&#xff0c;關鍵是我們想要制作一個可以在其他地方進行使用的圖例&#xff0c;這樣就需要能夠動態地設置圖例的大小&#xff0c;位置&#xff0c;等等。 這里直接上代碼&#xff1a; colorLegend.js export const color…