操作系統(tǒng)在內(nèi)存中的位置
操作系統(tǒng)就是管理計(jì)算機(jī)的程序,而管理者本身也需要使用內(nèi)存空間資源。
內(nèi)存管理的第一個(gè)問題是操作系統(tǒng)本身在內(nèi)存中的存放位置。
1.僅有RAM時(shí),使操作系統(tǒng)位于RAM底層
操作系統(tǒng)處于地址空間下面,有一個(gè)實(shí)際好處:就是在復(fù)位、中斷、陷入等操作時(shí),控制移交給操作系統(tǒng)更方便,因?yàn)椴倏v系統(tǒng)的起始地址為0,無須另行記錄操作系統(tǒng)所處的位置,程序計(jì)數(shù)器清零就可以了。清零操作對(duì)于硬件來說非常簡(jiǎn)單,無須從總線或寄存器讀取任何數(shù)據(jù)。
2.在既有ROM也有RAM的情況下,整個(gè)操作系統(tǒng)占用整個(gè)ROM
操作系統(tǒng)放在ROM里面的好處是不容易被破壞,缺點(diǎn)就是ROM要做得大,能夠容納整個(gè)操作系統(tǒng)。由于ROM比較貴,通常情況下是備有少量的ROM,只將操作系統(tǒng)的一部分放在ROM里,其余部分放在RAM里。
3.在既有ROM也有RAM的情況下,操作系統(tǒng)部分占用整個(gè)ROM,部分占用RAM底層
該分配模式還有另外一個(gè)好處:可以將輸入輸出和內(nèi)存訪問統(tǒng)一起來。即將輸入輸出設(shè)備里面的寄存器或其他存儲(chǔ)媒介編入內(nèi)存地址(在用戶程序地址之上),使得訪問輸入輸出設(shè)備如同訪問內(nèi)存一樣。這種輸入輸出稱為內(nèi)存映射的輸入輸出。如果要訪問的地址高于RAM的最高地址,則屬于I/O操作,否則屬于正常內(nèi)存操作。
這種模式又分為3種情況:
?沒有使用內(nèi)存映射的輸入輸出,ROM里面全部是操作系統(tǒng)。
?使用了內(nèi)存映射的輸入輸出,ROM的一部分是操作系統(tǒng),另一部分屬于I/O設(shè)備。
?使用了內(nèi)存映射的輸入輸出,ROM全部屬于I/O設(shè)備。
多數(shù)現(xiàn)代操作系統(tǒng)采用的是第2種情況:即ROM里面包括操作系統(tǒng)一部分和I/O,RAM里面則包括操作系統(tǒng)的其他部分和用戶程序。
參考資料:
《操作系統(tǒng)之哲學(xué)原理》 鄒恒明著