操做系統中最重要的三個抽象概念:進程(線程)、地址空間、文件;併發
任何計算機程序都須要存儲和檢索信息;優化
首先想到的是使用使用其自身的地址空間存儲信息;spa
可是有一些問題:虛擬地址空間大小有限、信息沒法持久化、信息的共享不方便;操作系統
總而言之,信息依附於進程存在是不方便的;線程
更好的方法是利用長期存儲性質的介質存儲信息——這裏介紹的是磁盤。設計
磁盤只要支持讀寫操做,就能夠解決長期存儲的問題,並且只要磁盤夠大,空間大小的限制也不是問題。同時也可以支持不一樣的進程(線程)併發存取的需求。進程
可是還有一些問題須要解決:程序
1)如何找到想要的信息;方法
2)如何防止一個用戶讀取另外一個用戶的數據;鏈表
3)如何知道那個空間是空閒的;
這裏對磁盤使用一種新的抽象來解決這個問題——文件;
=====================================================
文件是一個抽象概念,是邏輯概念。是進程建立的信息邏輯單元。
文件能夠存在一些操做:打開、關閉、新增、刪除、修改等;
文件受操做系統管理,以上操做的實現都是操做系統設計的重要內容。
操做系統處理文件的部分稱爲文件系統。
從用戶角度來看:文件在用戶眼中的表現形式,由什麼組成,如何給文件命名,如何保護文件,能夠對文件進行哪些操做;
從設計人員角度看:如何記錄空閒存儲區(位圖、鏈表)、一個邏輯磁盤塊中有多少個扇區等等
====================================================
用戶層面的內容——文件、目錄
====================================================
設計人員層面的內容——文件系統的實現、文件系統的管理和優化
====================================================