3.存儲(chǔ)管理

參考:

基本思想:

  • 每個(gè)進(jìn)程擁有自己的地址空間带饱,地址空間被分成許多塊元媚,稱為頁(yè)面疼蛾,每一頁(yè)有連續(xù)的地址范圍

  • 與地址空間一樣,物理內(nèi)存也被分成許多塊愉舔,塊的大小與頁(yè)一樣大钢猛,稱為頁(yè)框

  • 頁(yè)映射到頁(yè)框屑宠,被程序引用厢洞,一旦程序引用到未映射的頁(yè),就會(huì)發(fā)生缺頁(yè)中斷典奉,把引用的頁(yè)映射到頁(yè)框躺翻,再重新進(jìn)行引用。

分頁(yè)

  • 進(jìn)程并不直接引用物理內(nèi)存地址卫玖,而是先引用虛擬地址公你,再由內(nèi)存管理單元(Memory Manaement Unit, MMU)把虛擬地址映射為物理內(nèi)存地址。

    如下圖
    image
  • 虛擬地址與物理內(nèi)存地址的映射為頁(yè)面頁(yè)框的映射關(guān)系假瞬,頁(yè)面映射到了頁(yè)框就意味著該頁(yè)面在物理內(nèi)存上陕靠。
    如下圖

    image

  • 一旦進(jìn)程引用到了未映射的頁(yè)面,就會(huì)發(fā)生缺頁(yè)中斷脱茉,從映射的頁(yè)面中選一個(gè)剪芥,換上要用的頁(yè)面,再重新進(jìn)行引用琴许。

頁(yè)表

  • 每個(gè)進(jìn)程都有自己的頁(yè)表税肪,用于記錄自己的虛擬地址和物理內(nèi)存地址的映射情況,頁(yè)表存在MMU榜田。切換進(jìn)程的時(shí)候,頁(yè)表也會(huì)切換益兄。

  • 頁(yè)表的最簡(jiǎn)單實(shí)現(xiàn)是:把虛擬地址分成虛擬頁(yè)號(hào)(高位部分)和偏移0量(低位部分)。
    虛擬頁(yè)號(hào)作為頁(yè)表的索引箭券,找到相應(yīng)的頁(yè)表項(xiàng)净捅,從而找到頁(yè)框號(hào),再由頁(yè)框號(hào)和偏移量構(gòu)成物理內(nèi)存地址辩块。
    如下圖:


    image
  • 頁(yè)表項(xiàng)的結(jié)構(gòu)基本如下:

    • 在/不在位:1有效蛔六;0無(wú)效荆永,引發(fā)缺頁(yè)中斷
    • 修改位:1被修改過,移除頁(yè)框時(shí)要寫回磁盤国章;0未修改過屁魏,無(wú)需寫回磁盤。
    • 保護(hù)位:1讀/寫捉腥;2只讀
    • 高速緩存禁止位:對(duì)于映射到設(shè)備的頁(yè)面,不能用被緩存的副本你画,要用最新的內(nèi)容抵碟。(如鍵盤)


      image.png
  • 頁(yè)表并不保存頁(yè)面的磁盤地址,由另外的機(jī)制來(lái)保存坏匪。

關(guān)于分頁(yè)的兩個(gè)問題

  1. 虛擬地址到物理內(nèi)存地址的映射必須非衬獯快
  2. 如果虛擬地址空間很大,那頁(yè)表也會(huì)很大适滓。
  • 加速分頁(yè)過程
    解決第一個(gè)問題敦迄,使用快表(TLB)。

    • TLB是MMU的緩存凭迹,用于存儲(chǔ)經(jīng)常被訪問到的頁(yè)表項(xiàng)罚屋。

    • 軟失效: 頁(yè)面訪問不在TLB,在內(nèi)存嗅绸。僅需更新一下TLB脾猛,不需要產(chǎn)生磁盤I/O。

    • 硬失效:頁(yè)面不在內(nèi)存鱼鸠。發(fā)生缺頁(yè)中斷猛拴。

  • 針對(duì)大內(nèi)存的頁(yè)表
    解決第二個(gè)問題。

  • 多級(jí)頁(yè)表

    • 把虛擬地址劃分為PT1,PT2蚀狰,Offset愉昆,PT1作為頂級(jí)頁(yè)表的索引,PT2作為二級(jí)頁(yè)表的索引麻蹋。

    • 結(jié)構(gòu)上類似B+樹跛溉。

    • 一般最多2級(jí),再往上會(huì)帶來(lái)更大的復(fù)雜性哥蔚。

    • 對(duì)于32位還可以接受倒谷,64位需要耗費(fèi)的空間太大。


      image
  • 倒排頁(yè)表

    • 一個(gè)頁(yè)框?yàn)橐粋€(gè)表項(xiàng)糙箍,而不是一個(gè)頁(yè)面為一個(gè)表項(xiàng)渤愁,這樣頁(yè)表的大小取決于頁(yè)框的數(shù)量而不是虛擬地址的大小。

    • 缺點(diǎn):虛擬地址轉(zhuǎn)換為物理內(nèi)存地址時(shí)要遍歷整個(gè)頁(yè)表深夯。

    • 改進(jìn):使用哈希表來(lái)存儲(chǔ)抖格。用虛擬地址來(lái)散列诺苹。這樣無(wú)需遍歷。

image

頁(yè)面置換算法

image

其他

  • 分離數(shù)據(jù)段和代碼段雹拄,節(jié)省地址空間


    image
  • 父子進(jìn)程共享代碼段收奔,數(shù)據(jù)段使用寫時(shí)復(fù)制
    寫時(shí)復(fù)制即數(shù)據(jù)段在未被修改時(shí)共享滓玖,一旦發(fā)生修改操作坪哄,就復(fù)制數(shù)據(jù)段,父子進(jìn)程擁有獨(dú)立的數(shù)據(jù)段势篡。

  • 清除策略
    啟動(dòng)一個(gè)分頁(yè)守護(hù)進(jìn)程的后臺(tái)進(jìn)程翩肌,定期喚醒檢查分頁(yè)情況,在空閑頁(yè)框過少時(shí)禁悠,通過頁(yè)面置換算法確蹦罴溃空閑頁(yè)框的數(shù)量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碍侦,一起剝皮案震驚了整個(gè)濱河市粱坤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓷产,老刑警劉巖站玄,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異拦英,居然都是意外死亡蜒什,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門疤估,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)灾常,“玉大人,你說(shuō)我怎么就攤上這事铃拇〕伲” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵慷荔,是天一觀的道長(zhǎng)雕什。 經(jīng)常有香客問我,道長(zhǎng)显晶,這世上最難降的妖魔是什么贷岸? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮磷雇,結(jié)果婚禮上偿警,老公的妹妹穿的比我還像新娘。我一直安慰自己唯笙,他們只是感情好螟蒸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布盒使。 她就那樣靜靜地躺著,像睡著了一般七嫌。 火紅的嫁衣襯著肌膚如雪少办。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天诵原,我揣著相機(jī)與錄音英妓,去河邊找鬼。 笑死绍赛,一個(gè)胖子當(dāng)著我的面吹牛鞋拟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惹资,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼航闺!你這毒婦竟也來(lái)了褪测?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤潦刃,失蹤者是張志新(化名)和其女友劉穎侮措,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乖杠,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡分扎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胧洒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畏吓。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卫漫,靈堂內(nèi)的尸體忽然破棺而出菲饼,到底是詐尸還是另有隱情,我是刑警寧澤列赎,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布宏悦,位于F島的核電站,受9級(jí)特大地震影響包吝,放射性物質(zhì)發(fā)生泄漏饼煞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一诗越、第九天 我趴在偏房一處隱蔽的房頂上張望砖瞧。 院中可真熱鬧,春花似錦掺喻、人聲如沸芭届。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)褂乍。三九已至持隧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逃片,已是汗流浹背屡拨。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留褥实,地道東北人呀狼。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像损离,于是被迫代替她去往敵國(guó)和親哥艇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容