1。操作系統(tǒng)最大的功能就是管理功能,管理進程調(diào)度、管理內(nèi)存、管理文件系統(tǒng)、管理I/O,...。其中最核心的功能是進程管理,但管理的基礎是內(nèi)存管理,只有把內(nèi)存管理好了,才能使進程在這個廣闊的舞臺上自由表演。
2。系統(tǒng)工作模式有三種:實模式、保護模式、虛擬8086模式,其中保護模式又分為:分段保護模式、分段分頁保護模式,不同模式下的物理內(nèi)存管理方式不同。
3。分段保護模式(segmentation):
為了管理好內(nèi)存,把內(nèi)存分而治之,劃分成小塊,這樣易于才易于管理。如何劃分呢?分段保護模式是把物理內(nèi)存分段,分成一段一段的區(qū)域,每段大小固定/不固定,每段都有不同的用途,這就需要對每個段進行描述,以記錄該段有哪些屬性或特點,這樣在使用該段時才能操作正確。對每個段的描述信息放在“段描述符”中,所有的“段描述符”統(tǒng)一放在一起組成系統(tǒng)的“段描述符表”。“段描述符表”分為“全局描述符表GDT”,“中斷描述符表IDT”,“局部描述符表LDT”。當操作系統(tǒng)要訪問內(nèi)存中的某一個段時,先在描述符表中找到該段的描述符,這樣就知道了該如何使用該內(nèi)存段了。簡言之,分段是對物理內(nèi)存分段劃分,GDT,LDT,IDT是操作系統(tǒng)使用物理內(nèi)存的參照依據(jù)。
4。段頁保護模式(paging):
這是在分段保護模式的基礎上,再加上分頁功能。把以前的對物理內(nèi)存的分段改為對虛擬地址空間的分段,把4G的虛擬地址空間分段,段信息仍保存在GDT,LDT,IDT中。然后把物理內(nèi)存分頁,用二級頁表結構來描述和記錄物理內(nèi)存分頁后的各個頁的信息。當使用物理內(nèi)存時就參照二級頁表。
5。使用分頁機制的目的:
(1)當系統(tǒng)內(nèi)存被分成許多凌亂的塊時,分頁機制可以建立一個大而連續(xù)的內(nèi)存空間映象,程序員不用操心和管理這些分散的內(nèi)存塊。
(2)頁地址變換建立在段變換基礎上,任何分頁機制的保護措施并不會取代段變換的保護措施,而只是進行更進一步的檢查操作。
(3)分頁機制增強分段的性能。
6。虛擬內(nèi)存
實現(xiàn)虛擬內(nèi)存的手段是使用“需求加載Load on demand”和“頁換入換出”。所謂的“需求加載”是指:運行一個磁盤上的文件時,操作系統(tǒng)為新進程創(chuàng)建4G線形地址空間,并為其環(huán)境參數(shù)和命令行參數(shù)分配和映射一定數(shù)量的物理頁,此外并沒有給執(zhí)行程序分配其他任何物理內(nèi)存頁面,也沒有從磁盤文件中加載代碼和數(shù)據(jù)。但是,一旦程序從設定的入口點(mian函數(shù))開始運行,就會立刻引起CPU產(chǎn)生一個缺頁中斷,此時內(nèi)核中的缺頁處理程序才會根據(jù)引起缺頁異常的具體線形地址把磁盤文件中相關的代碼和數(shù)據(jù)從文件系統(tǒng)中加載到物理內(nèi)存頁面中,并定位到進程邏輯地址中指定的頁面位置。這種僅在需要時才加載執(zhí)行文件中頁面的方法稱為需求加載技術或需求分頁(demand paging)技術。
“頁換入和換出”是指:當CPU要尋址的指令或數(shù)據(jù)不在緩存和物理內(nèi)存中時,通過需求加載技術把頁面加到物理內(nèi)存,但此時如果物理內(nèi)存已被全部占用,則必須把物理內(nèi)存中最近不使用的頁面換出到磁盤中,以騰出空間給新頁面,這種現(xiàn)在就稱為頁換入和換出。
7。何時產(chǎn)生GDT,LDT,IDT、二級頁目錄結構,以及它們位于物理內(nèi)存的什么位置?
在引導啟動程序head.s中初始化GDT,IDT和二級頁表,它們放在物理內(nèi)存從地址0x0開始的地方。head.s代碼執(zhí)行完后的物理內(nèi)存布局如下圖:
posted on 2010-09-28 22:21
老馬驛站 閱讀(480)
評論(0) 編輯 收藏 引用 所屬分類:
os