生活随笔
收集整理的這篇文章主要介紹了
在内存中建立文件_磁盘与文件,搞懂它
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
說一說計算機中的非常重要的兩個東西磁盤和文件。搞清楚這兩個東西有利于我們理解高級語言中關(guān)于I/O流操作的設(shè)計。它就像一把大殺器一樣,無往而不利。
想一想,磁盤作為一個電腦中的硬件設(shè)備,操作系統(tǒng)是如何管理磁盤設(shè)備的?文件其實一種軟件概念,運行在操作系統(tǒng)上的一個軟件或者子系統(tǒng)。不存在對應(yīng)的物理結(jié)構(gòu),那么它的底層結(jié)構(gòu)是什么,存放在哪里,如何檢索,如何設(shè)計等等,這些問題可以說是觸及到文件系統(tǒng)的本質(zhì)了。其實,就操作系統(tǒng)而言,文件管理是其四大功能之一,不可謂不重要。
文件是什么文件則是指具有文件名的若干相關(guān)元素的集合。元素通常是記錄,而記錄又是一組有意義的數(shù)據(jù)項的集合。通過文件來組織和管理在計算機中所存儲的大量程序和數(shù)據(jù)的,我們看到電腦中的各種文檔、應(yīng)用程序都是文件。文件是有很多種類的。根據(jù)文件的性質(zhì)和用途的不同,有不同的歸類:1. 按用途分類(1) 系統(tǒng)文件。這是指由系統(tǒng)軟件構(gòu)成的文件。大多數(shù)的系統(tǒng)文件只允許用戶調(diào)用,但 不允許用戶去讀,更不允許修改;有的系統(tǒng)文件不直接對用戶開放。(2) 用戶文件。指由用戶的源代碼、目標文件、可執(zhí)行文件或數(shù)據(jù)等所構(gòu)成的文件。用 戶將這些文件委托給系統(tǒng)保管。(3) 庫文件。這是由標準子例程及常用的例程等所構(gòu)成的文件。這類文件允許用戶調(diào)用, 但不允許修改。2. 按文件中數(shù)據(jù)的形式分類(1) 源文件。這是指由源程序和數(shù)據(jù)構(gòu)成的文件。通常由終端或輸入設(shè)備輸入的源程序 和數(shù)據(jù)所形成的文件都屬于源文件。它通常是由 ASCII 碼或漢字所組成的。(2) 目標文件。這是指把源程序經(jīng)過相應(yīng)語言的編譯程序編譯過,但尚未經(jīng)過鏈接程序 鏈接的目標代碼所構(gòu)成的文件。它屬于二進制文件。(3) 可執(zhí)行文件。這是指把編譯后所產(chǎn)生的目標代碼再經(jīng)過鏈接程序鏈接后所形成的文件。3. 按存取控制屬性(權(quán)限)分類根據(jù)系統(tǒng)管理員或用戶所規(guī)定的存取控制屬性(Linux中有三種權(quán)限:讀R、寫W、執(zhí)行E三種權(quán)限),可將文件分為三類:(1) 只執(zhí)行文件。該類文件只允許被核準的用戶調(diào)用執(zhí)行,既不允許讀,更不允許寫。(2) 只讀文件。該類文件只允許文件主及被核準的用戶去讀,但不允許寫。(3) 讀寫文件。這是指允許文件主和被核準的用戶去讀或?qū)懙奈募Uf到這里,可以對比android 系統(tǒng),我們通過androidStudio 打開手機的文件存儲,發(fā)現(xiàn)有些文件夾無法操作,就是你沒有權(quán)限的原因,這時候會有一個Root的說法,其實root 指的是切換登錄手機的身份,然后以root 身份登錄,這時候我們就可以操作任意文件了,因為root 是具有最高權(quán)限的一個用戶,所以就能操作普通用戶無法操作的文件。文件的邏輯上面說到了文件的分類,再看看文件的邏輯結(jié)構(gòu)(邏輯結(jié)構(gòu)是從用戶觀點出發(fā)所觀察到的文件組織 形式,是用戶可以直接處理的數(shù)據(jù)及其結(jié)構(gòu),它獨立于文件的物理特性)。那邏輯結(jié)構(gòu)是怎樣實現(xiàn)的呢?前面說了文件是一組記錄的集合,歸結(jié)到底就是如何把這些記錄放到存儲介質(zhì)上。通常來說,這些記錄的存放方式可以按順序進行存儲,或者說對文件建立索引,把文件的主要信息提取出來,就像我們看到的文件簡介,放入內(nèi)存中,當我們要知道文件的全部內(nèi)容時,在通過索引去存儲介質(zhì)上去找對應(yīng)的信息在讀到內(nèi)存中,實際中更快的方式是把順序和索引兩種方式結(jié)合起來,建立索引順序文件,把批量的文件用順序方式進行排列存儲,然后再給這批文件中第一個記錄建立一個索引,這樣就能提升文件的效率。或者還可以建立二次索引,進一步提升效率。文件目錄在現(xiàn)代計算機系統(tǒng)中,都要存儲大量的文件。為了能對這些文件實施有效的管 理,必須對它們加以妥善組織,這主要是通過文件目錄實現(xiàn)的。文件目錄也是一種數(shù)據(jù)結(jié) 構(gòu),用于標識系統(tǒng)中的文件及其物理地址,供檢索時使用。文件目錄有哪些作用?(1) 實現(xiàn)“按名存取”,即用戶只須向系統(tǒng)提供所需訪問文件的名字,便能快速準確地 找到指定文件在外存上的存儲位置。(2) 提高對目錄的檢索速度。通過合理地組織目錄結(jié)構(gòu)的方法,可加快對目錄的檢索速 度,從而提高對文件的存取速度。(3) 文件共享。在多用戶系統(tǒng)中,應(yīng)允許多個用戶共享一個文件。(4) 允許文件重名。系統(tǒng)應(yīng)允許不同用戶對不同文件采用相同的名字,以便于用戶按照 自己的習(xí)慣給文件命名和使用文件。為了能對一個文件進行正確的存取,必須為文件設(shè)置用于描述和控制文件的數(shù)據(jù)結(jié)構(gòu), 稱之為“文件控制塊(FCB)”。文件管理程序可借助于文件控制塊中的信息,對文件施以各種 操作。這個FCB其實和進程中PCB是一樣的,負責記錄文件的自身基本信息,比如文件名、邏輯結(jié)構(gòu)、長度、用戶權(quán)限表、文件使用信息(修改、創(chuàng)建日期等);系統(tǒng)就是通過FCB去控制文件,但是FCB和文件都是在磁盤上,如果想要查找文件需要先啟動磁盤,把文件導(dǎo)入內(nèi)存,再去查看FCB比對文件信息,這樣在查詢文件時,就會浪費cpu的執(zhí)行,于是就想到給FCB建立索引,把FCB中一些關(guān)鍵信息抽離出來放入一張表(索引結(jié)點),然后把這些簡化的信息放入內(nèi)存中,這樣在檢索文件時,就不必頻繁的啟動硬盤了,直接先在索引結(jié)點中尋找,再去硬盤中查詢相關(guān)的文件,這樣就是提升了效率前面提到了文件的存儲介質(zhì),文件存放在哪里?不假思索的回答是磁盤,磁盤是一個物理硬件設(shè)備,作為一個外存它是如何進行劃分它的空間進行文件管理,采用什么樣的方式提升存儲效率。這些放在下一篇文章中去講解?
一個有意思的、才藝多的android 開發(fā)人員,史建華?——愛閱讀,愛寫作。
點個在看 你最好看
總結(jié)
以上是生活随笔為你收集整理的在内存中建立文件_磁盘与文件,搞懂它的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。