第99篇
極客時(shí)間《許式偉的架構(gòu)課》課程筆記蔬浙。
外存的分類(依據(jù)功能特性)
- 順序讀寫型
- 典型產(chǎn)品:磁帶
- 應(yīng)用場(chǎng)景:歸檔钥平,數(shù)據(jù)備份
- 不常見
- 隨機(jī)只讀型
- 典型產(chǎn)品:光盤
- 應(yīng)用場(chǎng)景:資料分發(fā)和歸檔
- 日常應(yīng)用較多,如軟件性含、電影兄一、音樂的發(fā)布
- 隨機(jī)讀寫型
- 典型產(chǎn)品:軟盤厘线、硬盤、U盤出革、SSD等
- 應(yīng)用場(chǎng)景:幾乎所有電腦類的設(shè)備都會(huì)使用
- 最常見的外存造壮,PC、筆記本骂束、手機(jī)耳璧、手表、汽車等都會(huì)用到
外存的數(shù)據(jù)格式
- 與內(nèi)存管理不同展箱,外部存儲(chǔ)的管理需要文件系統(tǒng)
- 文件系統(tǒng)把存儲(chǔ)設(shè)備中的數(shù)據(jù)組織成一棵樹旨枯,節(jié)點(diǎn)可以是文件夾,也可以是文件
- 樹的根節(jié)點(diǎn)為根目錄析藕,文件時(shí)葉節(jié)點(diǎn)召廷,保存希望存儲(chǔ)的資料
- 每個(gè)節(jié)點(diǎn)凳厢,無論是目錄還是文件,都有自己的名字竞慢、創(chuàng)建時(shí)間先紫、最后編輯時(shí)間、最后訪問時(shí)間等信息
常見文件系統(tǒng)
-
隨機(jī)只讀型存儲(chǔ)的文件系統(tǒng)
-
隨機(jī)讀寫型存儲(chǔ)的文件系統(tǒng)
- 文件系統(tǒng)種類很多筹煮,但設(shè)計(jì)思路基本相似遮精,大部分現(xiàn)代文件系統(tǒng)都基于日志來改善文件系統(tǒng)的防災(zāi)難能力,基于B樹或B+樹組織元數(shù)據(jù)
- FAT文件系統(tǒng)是例外败潦,它直接把目錄當(dāng)一個(gè)特殊文件本冲,里面一次列出目錄里所有子節(jié)點(diǎn)的元信息,缺點(diǎn)是當(dāng)目錄樹深劫扒、子節(jié)點(diǎn)數(shù)量多時(shí)性能會(huì)大幅降低
- 隨機(jī)讀寫型存儲(chǔ)支持分區(qū)檬洞,分區(qū)的本質(zhì)是把一個(gè)存儲(chǔ)設(shè)備模擬成多個(gè)存儲(chǔ)設(shè)備使用
外存的使用接口
命令行工具
最簡(jiǎn)單的方式是用操作系統(tǒng)提供的命令行工具。例如:
目錄相關(guān):ls, mkdir, mv, cp, rmdir 等沟饥。
文件相關(guān):cat, vi, mv, cp, rm 等系統(tǒng)調(diào)用
最原始的方式是 “系統(tǒng)調(diào)用”添怔。但大部分編程語言對(duì)此都有相應(yīng)的封裝,如 Go 語言中的相關(guān)功能如下:
目錄相關(guān):os.Mkdir, os.Rename, os.Remove 等贤旷。
文件相關(guān):os.Open/Create/OpenFile, os.Rename, os.Remove 等广料。
虛擬內(nèi)存支持
- 在物理內(nèi)存不足的時(shí)候,操作系統(tǒng)會(huì)利用外存把一些很久沒有使用的內(nèi)存頁的數(shù)據(jù)幼驶,保存到外存以進(jìn)行淘汰
- 在 UNIX 系的操作系統(tǒng)中艾杏,操作系統(tǒng)為此分配了一個(gè)磁盤分區(qū)叫 swap 分區(qū),專門用于內(nèi)存頁的保存和恢復(fù)
- 在 Windows 操作系統(tǒng)中則通過一個(gè)具有隱藏屬性的 .swp 文件來實(shí)現(xiàn)
- 在缺頁發(fā)生比較頻繁時(shí)盅藻,內(nèi)存頁的數(shù)據(jù)經(jīng)常性發(fā)生保存和恢復(fù)购桑,這會(huì)發(fā)生大量的磁盤 IO 操作,非常占用 CPU 時(shí)間氏淑,所以可以非常明顯感覺到計(jì)算機(jī)變得很慢