自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

值得每個(gè)程序員了解,操作系統(tǒng)的底層核心知識(shí),頁緩存學(xué)會(huì)了么

系統(tǒng) Linux
最近操作系統(tǒng)不可謂不火,無論是華為的鴻蒙,還是騰訊的嵌入式操作系統(tǒng),都激起不少水花。今天,我們來分享一個(gè)操作系統(tǒng)的底層技術(shù),頁緩存。

最近操作系統(tǒng)不可謂不火,無論是華為的鴻蒙,還是騰訊的嵌入式操作系統(tǒng),都激起不少水花。今天,我們來分享一個(gè)操作系統(tǒng)的底層技術(shù),頁緩存。

[[279421]]

背景

我們都知道,在馮諾依曼計(jì)算機(jī)架構(gòu)體系中,存儲(chǔ)器有著舉足輕重的作用,相對于計(jì)算單元,存儲(chǔ)器的讀寫速度明顯慢很多。無論是機(jī)械硬盤,固態(tài)硬盤還是最新的Flash閃存,其讀寫速度都比內(nèi)存慢很多。一旦一個(gè)應(yīng)用需要讀寫磁盤,那么瓶頸經(jīng)常就會(huì)在磁盤讀寫。

頁緩存

為了解決這個(gè)問題,操作系統(tǒng)一般會(huì)使用頁緩存來解決,我們也稱之為磁盤緩存。當(dāng)進(jìn)程訪問磁盤的時(shí)候,操作系統(tǒng)首先會(huì)進(jìn)行檢查磁盤緩存,如果發(fā)現(xiàn)緩存上面有數(shù)據(jù),那么直接返回緩存上的內(nèi)容,大大減少了磁盤被訪問的次數(shù),提高了操作系統(tǒng)的性能。

那么,磁盤的內(nèi)容是如何被緩存起來的呢?當(dāng)進(jìn)程訪問磁盤的時(shí)候,如果頁緩存上沒有對應(yīng)的信息,那么會(huì)在磁盤中把當(dāng)頁讀取出來,并往后預(yù)讀若干頁放入緩存,如果后面這個(gè)緩存被命中,就會(huì)預(yù)讀更多緩存頁,這也是我們對一個(gè)文件連續(xù)訪問,會(huì)感覺到比較快的原因。

寫數(shù)據(jù)的時(shí)候,如果數(shù)據(jù)已經(jīng)在緩存頁,那么會(huì)優(yōu)先把數(shù)據(jù)更新在緩存頁。這里心細(xì)的同學(xué)可能會(huì)問,那豈不是磁盤中的是臟數(shù)據(jù)?的確如此,操作系統(tǒng)會(huì)會(huì)有一定策略把頁緩存的數(shù)據(jù)再統(tǒng)一寫進(jìn)磁盤,在Linux操作系統(tǒng)中,默認(rèn)是臟頁達(dá)到一定比例就會(huì)寫入。有些操作系統(tǒng),則會(huì)可以選擇臟頁達(dá)到一定數(shù)量,或者間隔一定時(shí)間。所以,當(dāng)我們機(jī)器發(fā)生掉電的時(shí)候,是有一定的風(fēng)險(xiǎn)會(huì)丟失數(shù)據(jù)的。即便如此,我們也不會(huì)關(guān)閉頁緩存來使數(shù)據(jù)每次都能落盤成功。所以,假如我們的服務(wù)要做到高可用,強(qiáng)一致,使用分布式將數(shù)據(jù)寫到多個(gè)機(jī)器上進(jìn)行備份才是硬道理。

總結(jié)

操作系統(tǒng)是計(jì)算機(jī)軟件中最核心的軟件之一,這里面有非常多地干貨值得我們學(xué)習(xí),既有算法數(shù)據(jù)結(jié)構(gòu)的,也有一些關(guān)乎底層物理硬件的設(shè)計(jì)思想,如果有興趣,歡迎關(guān)注我,我們一起學(xué)習(xí)共同進(jìn)步。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2019-11-19 15:10:40

程序員操作系統(tǒng)計(jì)算機(jī)基礎(chǔ)

2024-04-10 12:36:41

硬件代碼

2020-03-31 08:42:14

程序員操作系統(tǒng) Linux

2013-03-20 17:58:41

虛擬內(nèi)存程序員

2012-11-14 14:18:57

程序員

2020-10-26 10:40:31

Axios前端攔截器

2020-03-02 09:50:50

程序員技能開發(fā)者

2022-08-08 10:45:49

PromiseJava腳手架

2019-12-09 16:18:08

程序員數(shù)據(jù)庫技術(shù)

2009-02-09 16:30:58

Phantom OS操作系統(tǒng)程俄羅斯

2020-01-20 14:27:57

程序員數(shù)據(jù)庫電子商務(wù)

2015-05-18 09:35:44

操作系統(tǒng)

2021-08-25 08:17:28

程序員操作系統(tǒng)GitHub

2019-02-21 10:51:37

程序員技能溝通

2018-11-09 09:10:19

程序員技能開發(fā)者

2024-09-09 11:02:34

2016-12-20 18:44:22

2019-12-04 12:33:48

程序員技術(shù)設(shè)計(jì)

2013-01-17 10:10:44

程序員

2010-04-16 14:58:26

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)