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