資源描述:
《計(jì)算機(jī)操作系統(tǒng)第4章.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第四章存儲(chǔ)器管理4.1存儲(chǔ)器的層次結(jié)構(gòu)4.2程序的裝入和鏈接4.3連續(xù)分配方式4.4基本分頁存儲(chǔ)管理方式4.5基本分段存儲(chǔ)管理方式4.6虛擬存儲(chǔ)器的基本概念4.7請(qǐng)求分頁存儲(chǔ)管理方式4.8頁面置換算法4.9請(qǐng)求分段存儲(chǔ)管理方式4.1存儲(chǔ)器的層次結(jié)構(gòu)4.1.1多級(jí)存儲(chǔ)器結(jié)構(gòu)對(duì)于通用計(jì)算機(jī)而言,存儲(chǔ)層次至少應(yīng)具有三級(jí):最高層為CPU寄存器,中間為主存,最底層是輔存。在較高檔的計(jì)算機(jī)中,還可以根據(jù)具體的功能分工細(xì)劃為寄存器、高速緩存、主存儲(chǔ)器、磁盤緩存、固定磁盤、可移動(dòng)存儲(chǔ)介質(zhì)等6層。圖4-1計(jì)算機(jī)系統(tǒng)存儲(chǔ)層次示意在存儲(chǔ)層次中越往上,存儲(chǔ)介質(zhì)的訪問速度越快,
2、價(jià)格也越高,相對(duì)存儲(chǔ)容量也越小。其中,寄存器、高速緩存、主存儲(chǔ)器和磁盤緩存均屬于操作系統(tǒng)存儲(chǔ)管理的管轄范疇,掉電后它們存儲(chǔ)的信息不再存在。固定磁盤和可移動(dòng)存儲(chǔ)介質(zhì)屬于設(shè)備管理的管轄范疇,它們存儲(chǔ)的信息將被長(zhǎng)期保存。4.1.2主存儲(chǔ)器與寄存器1.主存儲(chǔ)器主存儲(chǔ)器(簡(jiǎn)稱內(nèi)存或主存)是計(jì)算機(jī)系統(tǒng)中一個(gè)主要部件,用于保存進(jìn)程運(yùn)行時(shí)的程序和數(shù)據(jù),也稱可執(zhí)行存儲(chǔ)器,其容量對(duì)于當(dāng)前的微機(jī)系統(tǒng)和大中型機(jī),可能一般為數(shù)十MB到數(shù)GB,而且容量還在不斷增加,而嵌入式計(jì)算機(jī)系統(tǒng)一般僅有幾十KB到幾MB。CPU的控制部件只能從主存儲(chǔ)器中取得指令和數(shù)據(jù),數(shù)據(jù)能夠從主存儲(chǔ)器讀取并
3、將它們裝入到寄存器中,或者從寄存器存入到主存儲(chǔ)器。CPU與外圍設(shè)備交換的信息依托于主存儲(chǔ)器地址空間。由于主存儲(chǔ)器的訪問速度遠(yuǎn)低于CPU執(zhí)行指令的速度,為緩和這一矛盾,在計(jì)算機(jī)系統(tǒng)中引入了寄存器和高速緩存。2.寄存器寄存器訪問速度最快,完全能與CPU協(xié)調(diào)工作,但價(jià)格卻十分昂貴,因此容量不可能做得很大。寄存器的長(zhǎng)度一般以字(word)為單位。寄存器的數(shù)目,對(duì)于當(dāng)前的微機(jī)系統(tǒng)和大中型機(jī),可能有幾十個(gè)甚至上百個(gè);而嵌入式計(jì)算機(jī)系統(tǒng)一般僅有幾個(gè)到幾十個(gè)。寄存器用于加速存儲(chǔ)器的訪問速度,如用寄存器存放操作數(shù),或用作地址寄存器加快地址轉(zhuǎn)換速度等。4.1.3高速緩存和
4、磁盤緩存1.高速緩存高速緩存是現(xiàn)代計(jì)算機(jī)結(jié)構(gòu)中的一個(gè)重要部件,其容量大于或遠(yuǎn)大于寄存器,而比內(nèi)存約小兩到三個(gè)數(shù)量級(jí)左右,從幾十KB到幾MB,訪問速度快于主存儲(chǔ)器。根據(jù)程序執(zhí)行的局部性原理(即程序在執(zhí)行時(shí)將呈現(xiàn)出局部性規(guī)律,在一較短的時(shí)間內(nèi),程序的執(zhí)行僅局限于某個(gè)部分),將主存中一些經(jīng)常訪問的信息存放在高速緩存中,減少訪問主存儲(chǔ)器的次數(shù),可大幅度提高程序執(zhí)行速度。2.磁盤緩存由于目前磁盤的I/O速度遠(yuǎn)低于對(duì)主存的訪問速度,因此將頻繁使用的一部分磁盤數(shù)據(jù)和信息,暫時(shí)存放在磁盤緩存中,可減少訪問磁盤的次數(shù)。磁盤緩存本身并不是一種實(shí)際存在的存儲(chǔ)介質(zhì),它依托于固
5、定磁盤,提供對(duì)主存儲(chǔ)器存儲(chǔ)空間的擴(kuò)充,即利用主存中的存儲(chǔ)空間,來暫存從磁盤中讀出(或?qū)懭?的信息。主存也可以看做是輔存的高速緩存,因?yàn)?,輔存中的數(shù)據(jù)必須復(fù)制到主存方能使用;反之,數(shù)據(jù)也必須先存在主存中,才能輸出到輔存。4.2程序的裝入和鏈接圖4-2對(duì)用戶程序的處理步驟4.2.1程序的裝入1.絕對(duì)裝入方式(AbsoluteLoadingMode)在編譯時(shí),如果知道程序?qū)Ⅰv留在內(nèi)存的什么位置,編譯程序?qū)a(chǎn)生絕對(duì)地址的目標(biāo)代碼。絕對(duì)裝入程序按照裝入模塊中的地址,將程序和數(shù)據(jù)裝入內(nèi)存。裝入模塊被裝入內(nèi)存后,由于程序中的邏輯地址和實(shí)際內(nèi)存地址完全相同,故不需要對(duì)
6、程序和數(shù)據(jù)的地址進(jìn)行修改。程序中的絕對(duì)地址,既可由程序員直接賦予,也可在編譯或匯編時(shí)給出。由程序員直接給出絕對(duì)地址,不僅要求程序員熟悉內(nèi)存的使用情況,而且程序或數(shù)據(jù)被修改后,可能要改變程序中的所有地址;在程序中采用符號(hào)地址,在編譯時(shí)再將這些符號(hào)地址轉(zhuǎn)換為絕對(duì)地址。絕對(duì)裝入方式只適應(yīng)于單道程序環(huán)境。在多道程序環(huán)境中,根據(jù)內(nèi)存的當(dāng)前情況,將裝入模塊裝入到內(nèi)存的適當(dāng)位置,并且在裝入時(shí)完成地址變換,稱為可重定位裝入方式。2.可重定位裝入方式(RelocationLoadingMode)圖4-2作業(yè)裝入內(nèi)存時(shí)的情況重定位是指在裝入時(shí)對(duì)目標(biāo)程序中指令和數(shù)據(jù)的修改過
7、程。這一過程通常是在裝入時(shí)一次完成的,故稱為靜態(tài)重定位。3.動(dòng)態(tài)運(yùn)行時(shí)裝入方式(DenamleRun-timeLoading)可重定位裝入方式不允許程序運(yùn)行時(shí)在內(nèi)存中移動(dòng)位置。但是,在運(yùn)行過程中它在內(nèi)存中的位置可能經(jīng)常要改變。動(dòng)態(tài)運(yùn)行時(shí)的裝入程序,在把裝入模塊裝入內(nèi)存后,并不立即把裝入模塊中的相對(duì)地址轉(zhuǎn)換為絕對(duì)地址,而是把這種地址轉(zhuǎn)換推遲到程序真正要執(zhí)行時(shí)才進(jìn)行。因此,裝入內(nèi)存后的所有地址都仍是相對(duì)地址。為使地址轉(zhuǎn)換不影響指令的執(zhí)行速度,需要一個(gè)重定位寄存器的支持。4.2.2程序的鏈接1.靜態(tài)鏈接方式(StaticLinking)圖4-4程序鏈接示意圖
8、在將這幾個(gè)目標(biāo)模塊裝配成一個(gè)裝入模塊時(shí),須解決以下兩個(gè)問題:(1)對(duì)相對(duì)地址進(jìn)行修改。(2)變