操作系統(tǒng)通過文件系統(tǒng)對程序和數(shù)據(jù)進行管理。文件系統(tǒng)的管理功能是通過把它所管理的程序和數(shù)據(jù)組織成一系列文件的方法來實現(xiàn)的。而文件則是指具有文件名的若干相關(guān)元素的集合。
本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
現(xiàn)代OS幾乎都是通過文件系統(tǒng)來組織和管理在計算機中所存儲的大量程序和數(shù)據(jù)的。文件系統(tǒng)的管理功能是通過把它所管理的程序和數(shù)據(jù)組織成一系列文件的方法來實現(xiàn)的。而文件則是指具有文件名的若干相關(guān)元素的集合。元素通常是記錄,而記錄是一組有意義的數(shù)據(jù)項的集合??梢园褦?shù)據(jù)組成分為數(shù)據(jù)項、記錄、文件。
①數(shù)據(jù)項,數(shù)據(jù)項是最低級數(shù)據(jù)組織形式。分為基本數(shù)據(jù)項(用于描述一個對象某種屬性的字符集,是數(shù)據(jù)組織中可以明明的最小邏輯數(shù)據(jù)單位,即原子數(shù)據(jù),又稱為數(shù)據(jù)元素或字段)和組合數(shù)據(jù)項(由若干個基本數(shù)據(jù)項組成)
?、?記錄,是一組相關(guān)數(shù)據(jù)項的集合,用于描述一個對象在某方面的屬性,為了能夠唯一標識一個記錄,需要在一個記錄的各個數(shù)據(jù)項中確定一個或幾個數(shù)據(jù)項,把他們的集合稱為關(guān)鍵字,關(guān)鍵字是能夠唯一標識一個記錄的數(shù)據(jù)項。
?、?文件,文件是具有文件名的一組相關(guān)元素的集合,分為有結(jié)構(gòu)文件(又稱記錄式文件:文件由一組相似記錄組成 。如報考某學校的所有考生的報考信息記錄)和無結(jié)構(gòu)文件(又稱流式文件:被看成是一個字符流。比如一個二進制文件或字符文件)。有結(jié)構(gòu)文件由若干個相關(guān)記錄組成,無結(jié)構(gòu)文件則被看成一個字符流。文件是文件系統(tǒng)的最大數(shù)據(jù)單位。文件應該具有自己的屬性,包括文件類型(如源文件、目標文件、可執(zhí)行文件等),文件長度(文件的當前長度,也可能是最大允許長度),文件的物理位置(指示文件在哪一個設備上及在該設備的哪個位置的指針),文件的建立時間(文件最后一次修改時間)?!∫粋€文件可對應若干個記錄,一個記錄可對應若干個數(shù)據(jù)項。
文件系統(tǒng)管理的對象有:文件(作為文件管理的直接對象),目錄(為了方便用戶對文件的存取和檢索,在文件系統(tǒng)中配置目錄,每個目錄項中,必須含有文件名及該文件所在的物理地址,對目錄的組織和管理是方便和提高對文件存取速度的關(guān)鍵),磁盤(文件和目錄必定占用存儲空間,對這部分空間的有效管理,不僅能提高外存的利用率,而且能提高對文件的存取速度)。
文件的屬性
①名稱:文件名稱唯一,以容易讀取的形式保存。
②標識符:標識文件系統(tǒng)內(nèi)文件的唯一標簽,通常為數(shù)字,它是對人不可讀的一種內(nèi)部名稱。
③類型:被支持不同類型的文件系統(tǒng)所使用。
④位置:指向設備和設備上文件的指針。
⑤大?。何募斍按笮。ㄓ米止?jié)、字或塊表示),也可包含文件允許的最大值。
⑥保護:對文件進行保護的訪問控制信息。
⑦時間、日期和用戶標識:文件創(chuàng)建、上次修改和上次訪問的相關(guān)信息,用于保護、 安全和跟蹤文件的使用。
文件的基本橾作
① 創(chuàng)建文件,在創(chuàng)建一個新文件時,系統(tǒng)首先要為新文件分配必要的外存空間,并在文件系統(tǒng)的目錄中,為之建立一個目錄項,目錄項中應該記錄新文件的文件名及其在外存的地址等屬性。
?、?刪除文件,當已不再需要某文件時,可將其從文件系統(tǒng)中刪除,在刪除時,系統(tǒng)應先從目錄中找到要刪除文件的目錄項,使之成為空項,然后回收該文件所占用的存儲空間。
?、?讀文件,讀文件時,須在相應系統(tǒng)調(diào)用中給出文件名和應讀入的內(nèi)存目標地址。此時,系統(tǒng)要查找目錄,找到指定目錄項,從中得到被讀文件在外存中的位置。在目錄項中,還有一個指針用于對文件進行讀/寫。
?、?寫文件,寫文件時,須在相應系統(tǒng)調(diào)用中給出文件名和其在內(nèi)存源地址。此時,系統(tǒng)要查找目錄,找到指定目錄項,從再利用目錄中的寫指針進行寫操作。
?、?截斷文件,如果一個文件的內(nèi)容已經(jīng)陳舊而需要全部更新時,一種方法是將此文件刪除,再重新創(chuàng)建一個新文件,但如果文件名和屬性均無改變,則可采取截斷文件的方法,其將原有的文件長度設置為0,放棄原有文件的內(nèi)容。
⑥ 設置文件的讀/寫位置,用于設置文件讀/寫指針的位置,以便每次讀/寫文件時,不需要從始端開始而是從所設置的位置開始操作??梢愿捻樞虼嫒殡S機存取。
文件的打開和關(guān)閉
來源:當前OS所提供的大多數(shù)對文件的操作,其過程大致都是這樣兩步:首先,檢索文件目錄來找到指定文件的屬性及其在外存上的位置;然后,對文件實施相應的操作,如讀/寫文件等,當用戶要求對一個文件實施多次讀/寫或其他操作時,每次都要從檢索目錄開始,為了避免多次重復地檢索目錄,在大多數(shù)OS中都引入了打開這一文件系統(tǒng)調(diào)用,當用戶第一次請求對某文件系統(tǒng)進行操作時,先利用open系統(tǒng)調(diào)用將該文件打開。
打開是指系統(tǒng)將指名文件的屬性(包括該文件在外存上的物理位置)從外存拷貝到內(nèi)存打開文件表的一個表目中,并將該表目的編號(索引號)返回給用戶,以后,當用戶再要求對該文件進行操作時,便可利用系統(tǒng)所返回的索引號向系統(tǒng)提出操作請求,系統(tǒng)便可直接利用該索引號到打開文件表中去查找,從而避免了對該文件的再次檢索,如果用戶不再需要對該文件實施操作,可利用關(guān)閉系統(tǒng)調(diào)用來關(guān)閉此文件,OS將會把該文件從打開文件表中的表目上刪除掉。
文件的邏輯結(jié)構(gòu)類型
無結(jié)構(gòu)文件(流式文件)
無結(jié)構(gòu)文件是最簡單的文件組織形式。無結(jié)構(gòu)文件將數(shù)據(jù)按順序組織成記錄并積累保存,它是有序相關(guān)信息項的集合,以字節(jié)(Byte)為單位。由于無結(jié)構(gòu)文件沒有結(jié)構(gòu),因而對記錄的訪問只能通過窮舉搜索的方式,故這種文件形式對大多數(shù)應用不適用。但字符流的無結(jié)構(gòu)文件管理簡單,用戶可以方便地對其進行操作。所以,那些對基本信息單位操作不多的文件較適于釆用字符流的無結(jié)構(gòu)方式,如源程序、可執(zhí)行文件、庫函數(shù)等。
有結(jié)構(gòu)文件(記錄式文件)