日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

peterYong,內(nèi)存管理

從操作系統(tǒng)內(nèi)存管理來說 , malloc申請一塊內(nèi)存的背后原理是什么?

peterYong,內(nèi)存管理


【peterYong,內(nèi)存管理】內(nèi)存的一部分空間被用來保存頁表 , 哪個(gè)頁被使用了 , 哪個(gè)頁空著 , 哪個(gè)頁分給了哪個(gè)進(jìn)程 , 內(nèi)存管理單元mmu都會(huì)在頁表里做記錄 。以4k為一頁 , 意味著頁地址數(shù)只是物理地址的4096分之一 , 各種查詢法速度都夠用了 。程序內(nèi)的地址是一個(gè)虛擬的連續(xù)地址 , 程序?qū)μ摂M地址的讀寫由mmu轉(zhuǎn)換為對物理地址的讀寫 。操作系統(tǒng)在幫助程序初始化 , 分配了默認(rèn)數(shù)量的頁以后 , 就任憑程序折騰了 。
你用標(biāo)準(zhǔn)malloc函數(shù)管理也好 , 自己寫個(gè)替代品也好 , 只要虛擬地址對應(yīng)的物理地址已經(jīng)分配給程序 , 都不需要操作系統(tǒng)插手 。一旦程序讀寫的虛擬地址沒有對應(yīng)的物理地址 , mmu會(huì)拋出異常信號 , 暫停程序的運(yùn)行 , 然后操作系統(tǒng)會(huì)填寫頁表 , 分配一個(gè)新的頁面給程序 , 對于用戶程序來說是感受不到這個(gè)過程的 。操作系統(tǒng)就好比一個(gè)坐擁半城的渣男 , 對每個(gè)女友(程序)都承諾全部的房產(chǎn) , 然而實(shí)際只給一個(gè)小房子供程序使用管理(malloc) 。

    推薦閱讀