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