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