【我的筆記】?jī)?nèi)存管理(一)物理內(nèi)存管理

1、

操作系統(tǒng)將物理內(nèi)存抽象成一個(gè)字節(jié)數(shù)組,每個(gè)字節(jié)有一個(gè)物理地址。

根據(jù)物理地址可以訪問(wèn)到物理內(nèi)存中的任意一個(gè)字節(jié)。

最小管理單位是字節(jié),將物理上連續(xù)多個(gè)字節(jié)看成一個(gè)內(nèi)存塊,以塊為單位分配、釋放、回收物理內(nèi)存。

操作系統(tǒng)的內(nèi)核可以駐留在物理內(nèi)存中,也可以駐留在 ROM 中。


2、Intel 系列的機(jī)器可以向 BIOS 查詢物理地址空間的布局。(ARM 處理器沒(méi)有 BIOS,但有其他機(jī)制)

BIOS 提供的 int 0x15 的 0xe820功能,可以獲得一種內(nèi)存布局表,由多個(gè)區(qū)間(開(kāi)始地址、大小、屬性)組成。

ucore 在 bootasn.S 中探測(cè)內(nèi)存布局,將探測(cè)結(jié)果保存在物理內(nèi)存 0x8000處。


3、BIOS 將系統(tǒng)的物理內(nèi)存分為四大類:可用 RAM;保留 RAM,OS 不可用;ACPI 描述表使用;ACPI 非易失數(shù)據(jù)

物理內(nèi)存管理只有可用 RAM 類。有些已經(jīng)被引導(dǎo)程序、內(nèi)核用掉了。

內(nèi)核在內(nèi)存中的開(kāi)始位置是知道的,終止位置只有連接程序知道,可在連接腳本中定義,由連接程序提供。

連接腳本中 “.” 代表當(dāng)前位置:var = . 該值便為連接程序確定的當(dāng)前地址


4、內(nèi)存管理的單位為內(nèi)存塊,內(nèi)存塊由多個(gè)物理上連續(xù)的字節(jié)組成。

描述內(nèi)存塊:位圖、鏈表、數(shù)組等

最簡(jiǎn)單的物理內(nèi)存管理方法是不管理,改進(jìn):分區(qū)管理(連續(xù)內(nèi)存管理方法)

將內(nèi)存劃分為區(qū),以區(qū)為單位分配內(nèi)存,由使用者自己管理區(qū)內(nèi)內(nèi)存的使用。不允許跨區(qū)使用內(nèi)存。

分區(qū)方法:靜態(tài)分區(qū)法,動(dòng)態(tài)分區(qū)法,伙伴算法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,216評(píng)論 2 33
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲(chóng)de夢(mèng)閱讀 100,620評(píng)論 9 468
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 如果八年一輩子,過(guò)了好幾輩子了! 道理懂的越多,想明白的越少,能做到的更少。 認(rèn)識(shí)的人越多,留在心里的越少。 話說(shuō)...
    Sunny萍七閱讀 185評(píng)論 2 1
  • 時(shí)光如流水,轉(zhuǎn)眼間,初中的生活已過(guò)了一半,不知道自己是否滿意現(xiàn)在的我,分析一下吧! 似乎在別人的眼里,我不認(rèn)真吧,...
    銘豪閱讀 409評(píng)論 0 0

友情鏈接更多精彩內(nèi)容