資源描述:
《linux教程.第3章存儲(chǔ)管理ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第3章存儲(chǔ)管理3.1虛擬存儲(chǔ)器3.2內(nèi)存管理方式3.380386段頁機(jī)制3.4Linux存儲(chǔ)管理3.5小結(jié)習(xí)題每一個(gè)要運(yùn)行的程序,必須首先進(jìn)入內(nèi)存,然而,每一臺(tái)計(jì)算機(jī)的內(nèi)存容量都是有限而寶貴的。存儲(chǔ)管理的任務(wù)是方便用戶使用存儲(chǔ)資源,在有限的物理空間內(nèi)使更多的用戶進(jìn)程高效地獲得和使用盡可能多的存儲(chǔ)空間,從而提高系統(tǒng)的整體性能?,F(xiàn)代操作系統(tǒng)中普遍采用基于虛擬存儲(chǔ)器的概念來統(tǒng)一管理內(nèi)存和外存,實(shí)現(xiàn)邏輯上的大容量存儲(chǔ)空間。本章首先介紹虛擬存儲(chǔ)器的基本概念及使用虛擬存儲(chǔ)器的依據(jù)和出發(fā)點(diǎn)——局部性原理,即在程序的運(yùn)行過程中,總是集中地訪問某一個(gè)程序段。根據(jù)這樣的原理,可以把物理
2、內(nèi)存按照一定的規(guī)則劃分為小部分,每次只裝入某個(gè)進(jìn)程必要的一部分內(nèi)容就開始運(yùn)行,在運(yùn)行過程中,再根據(jù)需要裝入新的內(nèi)容。不同的劃分規(guī)則形成不同的存儲(chǔ)管理技術(shù),我們簡單介紹分區(qū)、頁式、段式和段頁式管理的基本思想。接著介紹Intel80386硬件存儲(chǔ)管理機(jī)制,最后學(xué)習(xí)Linux系統(tǒng)在這種硬件平臺(tái)的基本存儲(chǔ)管理機(jī)制。3.1虛擬存儲(chǔ)器計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器分為內(nèi)存(主存)和外存(硬盤)。內(nèi)存的價(jià)格昂貴,速度高,存儲(chǔ)容量有限;外存價(jià)格便宜,速度慢,存儲(chǔ)容量很大,適合于存放大量數(shù)據(jù)。為了使更多的用戶進(jìn)程合理、充分地使用存儲(chǔ)資源,操作系統(tǒng)統(tǒng)一管理內(nèi)存和外存,即把內(nèi)存中暫時(shí)不用的內(nèi)容放在硬
3、盤上,內(nèi)存中就可以騰出一部分空間,可以從硬盤裝入其他迫切需要的內(nèi)容。因此,從效果上看,計(jì)算機(jī)系統(tǒng)好像為用戶提供了一個(gè)其存儲(chǔ)容量比實(shí)際主存大得多的存儲(chǔ)器。人們稱這個(gè)存儲(chǔ)器為虛擬存儲(chǔ)器。3.1.1局部性原理實(shí)驗(yàn)證明,在幾乎所有進(jìn)程的執(zhí)行過程中,某一個(gè)特定的時(shí)間段中,CPU不是隨機(jī)地訪問整個(gè)程序或數(shù)據(jù),而是集中地訪問程序或數(shù)據(jù)的某一個(gè)部分。進(jìn)程的這種訪問特性稱為局部性原理。與CPU訪問該局部內(nèi)的數(shù)據(jù)和代碼的次數(shù)相比,局部段的變化很緩慢,正是基于這樣的原理,我們才有可能實(shí)現(xiàn)虛擬存儲(chǔ)管理。把進(jìn)程的所有內(nèi)容劃分為一個(gè)個(gè)小的部分,首先只把系統(tǒng)所必需的部分?jǐn)?shù)據(jù)裝入內(nèi)存,其余部分就放
4、在外存中,開始運(yùn)行之后,再把所需要的其他部分換入內(nèi)存,同時(shí)把不再需要的部分從內(nèi)存中換到硬盤或者清除掉。當(dāng)然,與之相配合,實(shí)際的內(nèi)存也要?jiǎng)澐譃閷?yīng)的小部分。這種內(nèi)外存之間的數(shù)據(jù)交換對用戶進(jìn)程來講是透明的。從用戶進(jìn)程的角度來看,系統(tǒng)好像提供了一個(gè)很大的內(nèi)存一樣,整個(gè)進(jìn)程都能裝進(jìn)去而且正常運(yùn)行,這種邏輯上的大容量存儲(chǔ)空間就可以稱為虛擬存儲(chǔ)器。實(shí)際上,是操作系統(tǒng)的存儲(chǔ)管理起了作用,用多次內(nèi)外存數(shù)據(jù)交換的時(shí)間換來了大容量的并不真正存在的(虛擬的)內(nèi)存。因此,可以想象,訪問虛擬存儲(chǔ)器的速度要比訪問真正內(nèi)存的速度要慢。3.1.2虛擬地址和虛擬地址空間內(nèi)存中同時(shí)存在多個(gè)進(jìn)程,每個(gè)進(jìn)
5、程的地址都是以0地址作為起始地址的虛擬地址空間,這個(gè)虛地址空間可以是線性的(一維的),也可以是多維的,這要取決于系統(tǒng)采用的存儲(chǔ)管理方式。進(jìn)程中的每一個(gè)指令和數(shù)據(jù)在這樣的虛地址空間中都有一個(gè)惟一確定的地址,即虛擬地址。每一個(gè)進(jìn)程都具有各自獨(dú)立的虛擬地址空間,而整個(gè)系統(tǒng)只有一個(gè)物理地址空間。任何一個(gè)要執(zhí)行的進(jìn)程,都必須進(jìn)入真正的內(nèi)存中,在內(nèi)存的物理空間中存在,這就需要在虛擬地址空間和物理地址空間之間建立適當(dāng)?shù)挠成潢P(guān)系。通過這種映射關(guān)系,逐部分地把存在于虛擬地址空間中的進(jìn)程要執(zhí)行的部分放在物理地址空間中,而其他暫時(shí)不執(zhí)行的部分放在外部存儲(chǔ)器中,內(nèi)外存動(dòng)態(tài)地傳遞數(shù)據(jù),最終完
6、成整個(gè)進(jìn)程所執(zhí)行的任務(wù)。這種映射,也稱為地址變換,是操作系統(tǒng)在硬件的配合下實(shí)現(xiàn)的。系統(tǒng)中的每一個(gè)進(jìn)程,都有一個(gè)惟一的地址映射關(guān)系,也就是說,虛擬地址空間到物理地址空間是一個(gè)多對一的映射關(guān)系。這樣,不同的進(jìn)程有不同的虛擬地址空間和映射變換,可以方便地實(shí)現(xiàn)進(jìn)程之間的存儲(chǔ)保護(hù),避免數(shù)據(jù)和程序遭受其他進(jìn)程無意或者惡意的訪問,同時(shí),它們都映射到惟一的物理空間,可以通過多個(gè)進(jìn)程同時(shí)映射同一個(gè)物理地址的方式實(shí)現(xiàn)數(shù)據(jù)和程序的共享。3.2內(nèi)存管理方式虛擬存儲(chǔ)的每一個(gè)要運(yùn)行的程序,都必須首先進(jìn)入內(nèi)存,但是,每一臺(tái)計(jì)算機(jī)的內(nèi)存容量都是有限而寶貴的。管理技術(shù),通常是基于局部性原理的,即把整
7、個(gè)進(jìn)程的虛擬地址空間劃分為小的部分,同時(shí)把內(nèi)存也劃分為小的部分,在虛擬地址空間和物理地址空間之間建立特定的映射關(guān)系,進(jìn)程的內(nèi)容分批分期進(jìn)入內(nèi)存中特定的位置,其余部分在外存中,在需要的時(shí)候再傳遞到內(nèi)存,用內(nèi)存和外存的統(tǒng)一管理來實(shí)現(xiàn)內(nèi)存擴(kuò)充。在虛擬存儲(chǔ)技術(shù)的發(fā)展過程中,使用了不同的地址空間劃分方法和映射關(guān)系,這些不同的劃分和映射對應(yīng)于不同的存儲(chǔ)管理方式,本節(jié)介紹幾種能夠?qū)崿F(xiàn)虛擬存儲(chǔ)的地址空間劃分方式。3.2.1頁把進(jìn)程的虛擬地址空間劃分為相等大小的部分,每個(gè)部分稱為頁(page),同時(shí)把物理內(nèi)存空間也按照頁的大小劃分為小的部分,稱為頁面(pageframe,也稱為頁