現代作業系統 之檔案

2021-09-12 12:37:08 字數 2206 閱讀 2522

通過提取處理器的概念,我們建立了程序的抽象,通過提取物理儲存器的概念,我們建立了虛擬記憶體的抽象,同樣通過提取磁碟等永久性儲存器的概念,我們建立了檔案的抽象。檔案是用來對磁碟建模的,是程序建立的資訊邏輯單元。檔案是受作業系統管理的,作業系統中管理檔案的部分稱為檔案系統。

檔案的命名規則在不同的系統中是不同的

windows

1、檔名或資料夾名可以由1~256個西文字元或128個漢字(包括空格)組成,不能多於256個字元。

2、檔名可以有副檔名,也可以沒有。有些情況下系統會為檔案自動新增副檔名。一般情況下,檔名與副檔名中間用符號「.」分隔。

3、檔名和資料夾名可以由字母、數字、漢字或~、!、@、#、$、%、^、&、( )、_、-、{}、』等組合而成。

4、可以有空格,可以有多於乙個的圓點。

5、檔名或資料夾名中不能出現以下字元:\、/、:、*、?、"、<、>、| 。

6、不區分英文本母大小寫。

linux

1、除了/之外,所有字元都合法;

2、特殊字元如@、#、¥、&、()、-、空格等最好不要使用,當使用空格作為檔名時,執行命令會出錯。

3、避免使用」.」作為檔名的第乙個字元,因為在linux系統中以」.」為開頭的檔案代表隱藏,系統將自動隱藏以」.」為開頭的檔案。

4、linux系統區分大小寫,因此檔案命名也區分大小寫。

5、linux檔案字尾名無意義,但是為方便識別應定義字尾(.txt、.php等),定義字尾在大多數情況亦能將檔案與目錄區分。

6、檔案位置最好設定在linux專用目錄下,如配置檔案大多時候放置於/etc目錄下。

7、三個特殊目錄,」.」:代表當前目錄,」…」:代表上一級目錄,」/」:代表根目錄。

8、在x86_64 linux下,檔名的最大長度是255個字元(characters),檔案路徑的最大長度是4096字元(characters), 即可以包含16級的最大檔案長度的路徑。

一共有三種結構。

第一種:檔案是一種無結構的位元組序列,作業系統不知道也不關心檔案的內容是什麼,作業系統見到的就是位元組,具體的位元組含義由使用者解釋,unix和windows都採用這種方式。這種方式為使用者操作提供了很大的靈活性,作業系統不會提供任何幫助,也不會構成任何阻礙。對於想做特殊操作的使用者來說,這是十分重要的。

第二種已經過時,第三種用於處理商業資料的大型計算機中。

檔案型別有普通檔案和目錄檔案,在unix系統中還有字元特殊檔案和塊特殊檔案,普通檔案包含使用者資訊,目錄檔案是管理檔案系統結構的系統檔案,字元檔案和輸入輸出有關,用於序列i/o類裝置,如終端、印表機、網路等。塊特殊檔案用於磁碟類裝置。

普通檔案一般分為ascii檔案和二進位制檔案。

檔案訪問分為順序訪問和隨機訪問,順序訪問也就是從頭順序地讀取檔案的全部位元組和記錄,不能跳過某一些內容,也不能不按順序讀取,當儲存介質是磁帶時,這種方式是必須的。當用磁碟來儲存檔案時,我們可以不按順序來讀取檔案,有兩種方法可以指示從何處開始讀取檔案,一種是每次read操作都會給出檔案的起始位置,另一種是用seek操作來設定當前位置,seek操作完成後,從這個設定好的位置開始順序地讀取檔案。unix和windows都使用第二種。

作業系統儲存的檔案的附加資訊叫做檔案屬性,有時也叫做元資料,不同的作業系統檔案屬性差別很大。下面是一些常見屬性。

屬性含義

保護誰可以訪問檔案,以什麼方式訪問

口令訪問檔案需要的口令

建立者建立檔案者的id

所有者當前所有者

唯讀標誌

0表示讀寫,1表示唯讀

隱藏標誌

0表示正常,1表示不在列表中顯示

系統標誌

0表示普通檔案,1表示系統檔案

存檔標誌

0表示已備份,1表示需要備份

ascii/二進位制標誌

0表示ascii,1表示二進位制

隨機訪問標誌

0表示允許順序訪問,1表示隨機訪問

臨時標誌

0表示正常,1表示程序退出時刪除該檔案

加鎖標誌

0表示未加鎖,非0表示加鎖

記錄長度

乙個記錄中的位元組數

鍵的位置

每個記錄中,鍵的偏移量

鍵的長度

鍵字段的位元組數

建立時間

檔案建立的日期和時間

最後一次訪問時間

檔案上一次訪問的日期和時間

最後一次修改時間

檔案上一次修改的日期和時間

當前大小

檔案的位元組數

檔案可能增長到的位元組數

現代作業系統

只有認為等待時間非常短的情形下,才使用忙等待。用於忙等待的鎖,稱為自旋鎖 spin lock 在互斥時間很短而掛起等待的時間開銷很大時,可以採用活鎖 livelock,沒有出現死鎖,但現象上看好像死鎖發生了 輪詢 忙等待 可用於進入臨界區或訪問資源。接收者發起的分布式啟發演算法。分布式系統新增在其底...

現代作業系統 死鎖

前言 現代作業系統 死鎖這一部分也是非常的重要,在這裡詳細介紹了死鎖出現的條件已經避免死鎖的方法。我的github 死鎖 概述 一 資源定義 1.我們把需要排他性使用的物件叫做資源。2.資源分成可搶占和不可搶占型 二 死鎖定義 如果乙個程序集合中的每個程序都在等待只能由該程序合集中的其他程序才能引發...

《現代作業系統》筆記

特色 1.講述了作業系統演變的過程 2.沒有空洞講述概念,用圖表和c 講了作業系統的具體實現 什麼是作業系統 自頂向下看,作業系統是擴充套件機器,向使用者提供抽象。自底向上看,作業系統是資源管理者,給程序提供資源。設計思想 1.利用cpu高速和人類及i o裝置之間的低速的差距,多個程序共享cpu,虛...