操作系統(tǒng)第6章虛擬存儲(chǔ)器管理_第1頁
操作系統(tǒng)第6章虛擬存儲(chǔ)器管理_第2頁
操作系統(tǒng)第6章虛擬存儲(chǔ)器管理_第3頁
操作系統(tǒng)第6章虛擬存儲(chǔ)器管理_第4頁
操作系統(tǒng)第6章虛擬存儲(chǔ)器管理_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院2002年年8月月 傳統(tǒng)的內(nèi)存管理方式要求將一個(gè)作業(yè)全部傳統(tǒng)的內(nèi)存管理方式要求將一個(gè)作業(yè)全部 裝入內(nèi)存才裝入內(nèi)存才可以運(yùn)行,由此造成了以下兩種情況:可以運(yùn)行,由此造成了以下兩種情況:l 大作業(yè)對(duì)內(nèi)存的要求超出物理內(nèi)存總?cè)萘?,致使其無大作業(yè)對(duì)內(nèi)存的要求超出物理內(nèi)存總?cè)萘?,致使其無法運(yùn)行法運(yùn)行l(wèi)內(nèi)存由于容量的限制,只能裝入少量的作業(yè)使其運(yùn)行,內(nèi)存由于容量的限制,只能裝入少量的作業(yè)使其運(yùn)行,而其它大量作業(yè)留在外存上而其它大量作業(yè)留在外存上怎么辦?怎么辦?方法一:從物理上增加內(nèi)存容量方法一:從物理上增加內(nèi)存容量成本高成本高方法二:從邏輯上擴(kuò)充內(nèi)存容量方法二:從邏

2、輯上擴(kuò)充內(nèi)存容量由來由來:傳統(tǒng)思路傳統(tǒng)思路:進(jìn)程必須全部進(jìn)入內(nèi)存進(jìn)程必須全部進(jìn)入內(nèi)存,直至運(yùn)行結(jié)束直至運(yùn)行結(jié)束“一次性一次性”全全部裝入內(nèi)存,部裝入內(nèi)存,對(duì)空間浪費(fèi)對(duì)空間浪費(fèi)非常大非常大在進(jìn)程運(yùn)行的在進(jìn)程運(yùn)行的過程中,始終過程中,始終“駐留駐留”在內(nèi)在內(nèi)存。暫時(shí)不用存。暫時(shí)不用的數(shù)據(jù)無法釋的數(shù)據(jù)無法釋放放l局部性原理:程序在執(zhí)行過程中的一個(gè)較短時(shí)期,所局部性原理:程序在執(zhí)行過程中的一個(gè)較短時(shí)期,所執(zhí)行的指令地址和指令的操作數(shù)地址,分別局限于一執(zhí)行的指令地址和指令的操作數(shù)地址,分別局限于一定區(qū)域。定區(qū)域。l引入:在程序裝入時(shí),不必將其全部讀入到內(nèi)存,而引入:在程序裝入時(shí),不必將其全部讀入到內(nèi)存,

3、而只需將當(dāng)前需要執(zhí)行的部分頁或段讀入到內(nèi)存,就可只需將當(dāng)前需要執(zhí)行的部分頁或段讀入到內(nèi)存,就可讓程序開始執(zhí)行。讓程序開始執(zhí)行。l在程序執(zhí)行過程中,如果需執(zhí)行的指令或訪問的數(shù)據(jù)在程序執(zhí)行過程中,如果需執(zhí)行的指令或訪問的數(shù)據(jù)尚未在內(nèi)存(稱為缺頁或缺段),則由處理器通知操尚未在內(nèi)存(稱為缺頁或缺段),則由處理器通知操作系統(tǒng),將相應(yīng)的頁或段調(diào)入到內(nèi)存,然后繼續(xù)執(zhí)行作系統(tǒng),將相應(yīng)的頁或段調(diào)入到內(nèi)存,然后繼續(xù)執(zhí)行程序。程序。虛擬存儲(chǔ)器概念虛擬存儲(chǔ)器概念:虛擬存儲(chǔ)器是指具有請(qǐng)求調(diào)入功能和置換功能,虛擬存儲(chǔ)器是指具有請(qǐng)求調(diào)入功能和置換功能,能從邏輯上對(duì)內(nèi)存容量進(jìn)行擴(kuò)充的一種存儲(chǔ)系統(tǒng)。能從邏輯上對(duì)內(nèi)存容量進(jìn)行擴(kuò)

4、充的一種存儲(chǔ)系統(tǒng)。它不是一個(gè)實(shí)際的物理存儲(chǔ)器它不是一個(gè)實(shí)際的物理存儲(chǔ)器,而是一個(gè)容量可以而是一個(gè)容量可以非常大的存儲(chǔ)器的邏輯模型非常大的存儲(chǔ)器的邏輯模型,在該模型的支撐下在該模型的支撐下,把把程序的一部分裝入內(nèi)存便可以執(zhí)行。程序的一部分裝入內(nèi)存便可以執(zhí)行。 虛擬的虛擬的: 大小由大小由OS決定決定 邏輯模型邏輯模型: 概念概念,原理原理,技術(shù)解決方案技術(shù)解決方案,具體實(shí)現(xiàn)具體實(shí)現(xiàn) 部分執(zhí)行部分執(zhí)行實(shí)現(xiàn)原理實(shí)現(xiàn)原理l進(jìn)程運(yùn)行只裝入部分程序和數(shù)據(jù)進(jìn)程運(yùn)行只裝入部分程序和數(shù)據(jù)l在外存保留完整副本在外存保留完整副本l運(yùn)行中動(dòng)態(tài)調(diào)整進(jìn)程在內(nèi)存中的部署運(yùn)行中動(dòng)態(tài)調(diào)整進(jìn)程在內(nèi)存中的部署技術(shù)難點(diǎn)技術(shù)難點(diǎn)l如何

5、確定和記錄當(dāng)前哪些部分在內(nèi)存如何確定和記錄當(dāng)前哪些部分在內(nèi)存l執(zhí)行中訪問不在內(nèi)存的指令和數(shù)據(jù)時(shí)如何處理執(zhí)行中訪問不在內(nèi)存的指令和數(shù)據(jù)時(shí)如何處理l從外存中調(diào)入某頁時(shí)從外存中調(diào)入某頁時(shí),內(nèi)存中空間不夠如何處理內(nèi)存中空間不夠如何處理優(yōu)點(diǎn)優(yōu)點(diǎn): 利用率高,方便用戶,對(duì)多道程序運(yùn)行有較強(qiáng)的支持利用率高,方便用戶,對(duì)多道程序運(yùn)行有較強(qiáng)的支持有兩種典型虛擬存儲(chǔ)器實(shí)現(xiàn)方式有兩種典型虛擬存儲(chǔ)器實(shí)現(xiàn)方式一、分頁請(qǐng)求系統(tǒng)一、分頁請(qǐng)求系統(tǒng)l基本思想基本思想分頁管理分頁管理,裝入少量頁運(yùn)行裝入少量頁運(yùn)行,缺頁故障后調(diào)整缺頁故障后調(diào)整l頁表結(jié)構(gòu)進(jìn)行了調(diào)整頁表結(jié)構(gòu)進(jìn)行了調(diào)整:頁號(hào)頁號(hào) + 標(biāo)志位標(biāo)志位 + 塊號(hào)塊號(hào) + 外

6、存地址外存地址l地址轉(zhuǎn)換地址轉(zhuǎn)換:正常地址轉(zhuǎn)換正常地址轉(zhuǎn)換缺頁時(shí)缺頁時(shí):缺頁中斷缺頁中斷二、請(qǐng)求分段系統(tǒng)二、請(qǐng)求分段系統(tǒng)l基本思想基本思想 裝入部分段裝入部分段 動(dòng)態(tài)裝入或調(diào)出段動(dòng)態(tài)裝入或調(diào)出段l段表結(jié)構(gòu)進(jìn)行了擴(kuò)充段表結(jié)構(gòu)進(jìn)行了擴(kuò)充:段號(hào)段號(hào) + 主存起址主存起址 + 長(zhǎng)度長(zhǎng)度 + 輔存起址輔存起址+標(biāo)志位標(biāo)志位 +擴(kuò)充位擴(kuò)充位 l缺段中斷機(jī)構(gòu)缺段中斷機(jī)構(gòu)l地址變換機(jī)構(gòu)地址變換機(jī)構(gòu)l離散性離散性 在內(nèi)存分配時(shí)采用離散分配方式在內(nèi)存分配時(shí)采用離散分配方式l多次性多次性一個(gè)作業(yè)被分成多次地調(diào)入內(nèi)存運(yùn)行一個(gè)作業(yè)被分成多次地調(diào)入內(nèi)存運(yùn)行l(wèi)對(duì)換性對(duì)換性允許作業(yè)在運(yùn)行過程中換進(jìn)、換出允許作業(yè)在運(yùn)行過程中換

7、進(jìn)、換出l虛擬性虛擬性從邏輯上擴(kuò)充內(nèi)存容量,使用戶可使用的內(nèi)存空間大從邏輯上擴(kuò)充內(nèi)存容量,使用戶可使用的內(nèi)存空間大于實(shí)際物理內(nèi)存。于實(shí)際物理內(nèi)存。l6.2.1 6.2.1 請(qǐng)求分頁中的硬件支持請(qǐng)求分頁中的硬件支持l6.2.2 6.2.2 頁面分配頁面分配l6.2.3 6.2.3 頁面調(diào)入策略頁面調(diào)入策略 為了實(shí)現(xiàn)請(qǐng)求分頁,系統(tǒng)要提供一定的硬件支持。除為了實(shí)現(xiàn)請(qǐng)求分頁,系統(tǒng)要提供一定的硬件支持。除了一定容量的內(nèi)存和外存,還需要有:頁表機(jī)制、缺頁了一定容量的內(nèi)存和外存,還需要有:頁表機(jī)制、缺頁中斷機(jī)構(gòu)和地址變換機(jī)構(gòu)。中斷機(jī)構(gòu)和地址變換機(jī)構(gòu)。一、頁表機(jī)制一、頁表機(jī)制用于將用戶邏輯地址空間變換為內(nèi)存的

8、物理地址空間。用于將用戶邏輯地址空間變換為內(nèi)存的物理地址空間。在頁表中增加若干項(xiàng),以便于標(biāo)志程序或數(shù)據(jù)的狀態(tài)。在頁表中增加若干項(xiàng),以便于標(biāo)志程序或數(shù)據(jù)的狀態(tài)。頁表項(xiàng):頁表項(xiàng):請(qǐng)求分頁系統(tǒng)的頁表結(jié)構(gòu)請(qǐng)求分頁系統(tǒng)的頁表結(jié)構(gòu)頁號(hào)頁號(hào) 物理塊號(hào)物理塊號(hào) 狀態(tài)位狀態(tài)位P 訪問字段訪問字段 存取控制存取控制 修改位修改位M 外存地址外存地址狀態(tài)位(存在位)狀態(tài)位(存在位)P:表示該頁是否調(diào)入內(nèi)存:表示該頁是否調(diào)入內(nèi)存訪問字段訪問字段A:用于記錄該頁在某段時(shí)間內(nèi)被訪問的次數(shù):用于記錄該頁在某段時(shí)間內(nèi)被訪問的次數(shù)修改位修改位M:表示該頁在調(diào)入內(nèi)存后是否被修改過。:表示該頁在調(diào)入內(nèi)存后是否被修改過。外存地址:該

9、頁在外存上的地址,通常是物理塊號(hào)。外存地址:該頁在外存上的地址,通常是物理塊號(hào)。二、缺頁中斷機(jī)構(gòu)二、缺頁中斷機(jī)構(gòu) 在地址映射過程中,在頁表中發(fā)現(xiàn)所要訪問的頁不在地址映射過程中,在頁表中發(fā)現(xiàn)所要訪問的頁不在內(nèi)存,則產(chǎn)生缺頁中斷。操作系統(tǒng)接到此中斷信號(hào)后,在內(nèi)存,則產(chǎn)生缺頁中斷。操作系統(tǒng)接到此中斷信號(hào)后,就調(diào)出缺頁中斷處理程序,根據(jù)頁表中給出的外存地址,就調(diào)出缺頁中斷處理程序,根據(jù)頁表中給出的外存地址,將該頁調(diào)入內(nèi)存,使進(jìn)程繼續(xù)運(yùn)行下去。將該頁調(diào)入內(nèi)存,使進(jìn)程繼續(xù)運(yùn)行下去。 如果內(nèi)存中有空閑塊,則分配一頁,將新調(diào)入頁裝如果內(nèi)存中有空閑塊,則分配一頁,將新調(diào)入頁裝入內(nèi)存,并修改頁表中相應(yīng)頁表項(xiàng)目的狀

10、態(tài)位及相應(yīng)的入內(nèi)存,并修改頁表中相應(yīng)頁表項(xiàng)目的狀態(tài)位及相應(yīng)的內(nèi)存塊號(hào)。內(nèi)存塊號(hào)。 若此時(shí)內(nèi)存中沒有空閑塊,則要淘汰某頁,若該頁若此時(shí)內(nèi)存中沒有空閑塊,則要淘汰某頁,若該頁在內(nèi)存期間被修改過,則要將其寫回外存。在內(nèi)存期間被修改過,則要將其寫回外存。三、地址變換機(jī)構(gòu)三、地址變換機(jī)構(gòu) 請(qǐng)參看請(qǐng)參看P170 圖圖6-21、在地址變換時(shí),首先檢索快表,試圖從中找到要訪問、在地址變換時(shí),首先檢索快表,試圖從中找到要訪問的頁。如找到,修改其訪問位。對(duì)于的頁。如找到,修改其訪問位。對(duì)于“寫寫”指令,還要指令,還要設(shè)置修改位的值。設(shè)置修改位的值。 如未找到,則轉(zhuǎn)如未找到,則轉(zhuǎn)3。2、利用頁表項(xiàng)中的物理塊號(hào)和頁內(nèi)

11、地址,形成物理地址。、利用頁表項(xiàng)中的物理塊號(hào)和頁內(nèi)地址,形成物理地址。3、查找頁表,找到頁表項(xiàng)后,判斷其狀態(tài)位、查找頁表,找到頁表項(xiàng)后,判斷其狀態(tài)位P,查看該,查看該頁是否在內(nèi)存中。如果在,則將該頁寫入快表(若快表頁是否在內(nèi)存中。如果在,則將該頁寫入快表(若快表已滿,則應(yīng)該先調(diào)出某個(gè)或某些頁表項(xiàng))。如果不在,已滿,則應(yīng)該先調(diào)出某個(gè)或某些頁表項(xiàng))。如果不在,則產(chǎn)生缺頁中斷,由則產(chǎn)生缺頁中斷,由OS從外存將該頁調(diào)入內(nèi)存。從外存將該頁調(diào)入內(nèi)存。 在為進(jìn)程分配物理塊時(shí),要解決下列的三個(gè)問題:在為進(jìn)程分配物理塊時(shí),要解決下列的三個(gè)問題:1、保證進(jìn)程可正常運(yùn)行所需要的最少物理塊數(shù)、保證進(jìn)程可正常運(yùn)行所需要

12、的最少物理塊數(shù)2、每個(gè)進(jìn)程的物理塊數(shù),是固定值還是可變值、每個(gè)進(jìn)程的物理塊數(shù),是固定值還是可變值3、不同進(jìn)程所分配的物理塊數(shù),是采用平均分配算法還、不同進(jìn)程所分配的物理塊數(shù),是采用平均分配算法還是根據(jù)進(jìn)程的大小按照比例予以分配。是根據(jù)進(jìn)程的大小按照比例予以分配。一、最小物理塊數(shù)一、最小物理塊數(shù)進(jìn)程應(yīng)獲得的最少物理塊數(shù)與計(jì)算機(jī)的硬件機(jī)構(gòu)有關(guān),進(jìn)程應(yīng)獲得的最少物理塊數(shù)與計(jì)算機(jī)的硬件機(jī)構(gòu)有關(guān),取決于指令的格式、功能和尋址方式。取決于指令的格式、功能和尋址方式。二、頁面分配和置換策略二、頁面分配和置換策略在請(qǐng)求分頁中,可采取兩種分配策略,即固定和可變分在請(qǐng)求分頁中,可采取兩種分配策略,即固定和可變分配

13、策略。在進(jìn)行置換時(shí),也可采取兩種策略,即全局置配策略。在進(jìn)行置換時(shí),也可采取兩種策略,即全局置換和局部置換(置換范圍不同)。于是組合出三種適用換和局部置換(置換范圍不同)。于是組合出三種適用的策略:的策略:1、固定分配局部置換、固定分配局部置換思路:分配固定數(shù)目的內(nèi)存空間,在整個(gè)運(yùn)行期間思路:分配固定數(shù)目的內(nèi)存空間,在整個(gè)運(yùn)行期間都不改變都不改變策略:如果缺頁,則先從該進(jìn)程在內(nèi)存的頁面中選策略:如果缺頁,則先從該進(jìn)程在內(nèi)存的頁面中選中一頁,進(jìn)行換出操作,然后再調(diào)入一頁。中一頁,進(jìn)行換出操作,然后再調(diào)入一頁。特點(diǎn):為每個(gè)進(jìn)程分配多少頁是合適的值難以確定。特點(diǎn):為每個(gè)進(jìn)程分配多少頁是合適的值難以確

14、定。此外,在對(duì)換時(shí)會(huì)浪費(fèi)比較多的時(shí)間。此外,在對(duì)換時(shí)會(huì)浪費(fèi)比較多的時(shí)間。2、可變分配全局置換、可變分配全局置換思路:每個(gè)進(jìn)程預(yù)先分配一定數(shù)目的物理塊,同時(shí)思路:每個(gè)進(jìn)程預(yù)先分配一定數(shù)目的物理塊,同時(shí)OS也也保持一個(gè)空閑物理塊隊(duì)列。保持一個(gè)空閑物理塊隊(duì)列。策略:當(dāng)缺頁時(shí),首先將對(duì)策略:當(dāng)缺頁時(shí),首先將對(duì)OS所占有的空閑塊進(jìn)行分配,所占有的空閑塊進(jìn)行分配,從而增加了各進(jìn)程的物理塊數(shù)。當(dāng)從而增加了各進(jìn)程的物理塊數(shù)。當(dāng)OS的空閑塊全部用完,的空閑塊全部用完,將引起換出操作。將引起換出操作。3、可變分配局部置換、可變分配局部置換思路:系統(tǒng)根據(jù)缺頁率動(dòng)態(tài)調(diào)整各進(jìn)程占有的物理塊數(shù)思路:系統(tǒng)根據(jù)缺頁率動(dòng)態(tài)調(diào)整

15、各進(jìn)程占有的物理塊數(shù)目,使其保持在一個(gè)比較低的缺頁率狀態(tài)下。目,使其保持在一個(gè)比較低的缺頁率狀態(tài)下。特點(diǎn):使大部分進(jìn)程可以達(dá)到比較近似的性能。特點(diǎn):使大部分進(jìn)程可以達(dá)到比較近似的性能。三、分配算法三、分配算法在采用固定分配策略時(shí),可使用下列方法來分配:在采用固定分配策略時(shí),可使用下列方法來分配:1、平均分配算法:將系統(tǒng)中所有可供分配的物理塊,平、平均分配算法:將系統(tǒng)中所有可供分配的物理塊,平均分配給各個(gè)進(jìn)程。均分配給各個(gè)進(jìn)程。2、按比例分配算法:按照進(jìn)程的大小比例分配物理塊。、按比例分配算法:按照進(jìn)程的大小比例分配物理塊。3、考慮優(yōu)先權(quán)的分配算法:為了對(duì)于緊迫的作業(yè),能夠、考慮優(yōu)先權(quán)的分配算法

16、:為了對(duì)于緊迫的作業(yè),能夠盡快完成??梢詫?nèi)存的物理塊盡快完成??梢詫?nèi)存的物理塊 分成兩部分,一部分按分成兩部分,一部分按照比例分配給各進(jìn)程,另一部分根據(jù)進(jìn)程優(yōu)先級(jí),適當(dāng)照比例分配給各進(jìn)程,另一部分根據(jù)進(jìn)程優(yōu)先級(jí),適當(dāng)增加其相應(yīng)的份額,分配給各進(jìn)程。增加其相應(yīng)的份額,分配給各進(jìn)程。一、何時(shí)調(diào)入頁面一、何時(shí)調(diào)入頁面l提前取頁:預(yù)先裝入主存一頁或幾頁(提前頁)。提前取頁:預(yù)先裝入主存一頁或幾頁(提前頁)。l請(qǐng)求取頁:當(dāng)用到某頁而不在主存時(shí)即缺頁時(shí)取頁。請(qǐng)求取頁:當(dāng)用到某頁而不在主存時(shí)即缺頁時(shí)取頁。二、從何處調(diào)入頁面二、從何處調(diào)入頁面外存有兩個(gè)部分:文件區(qū)和對(duì)換區(qū)。對(duì)換區(qū)外存有兩個(gè)部分:文件區(qū)和對(duì)

17、換區(qū)。對(duì)換區(qū)I/O操作速度操作速度比文件區(qū)相對(duì)快一些,因此一般應(yīng)當(dāng)盡量使用對(duì)換區(qū)來比文件區(qū)相對(duì)快一些,因此一般應(yīng)當(dāng)盡量使用對(duì)換區(qū)來調(diào)入頁面。對(duì)于不同情況,采用不同的策略:調(diào)入頁面。對(duì)于不同情況,采用不同的策略:1、系統(tǒng)有足夠的對(duì)換空間、系統(tǒng)有足夠的對(duì)換空間2、系統(tǒng)對(duì)換空間不足、系統(tǒng)對(duì)換空間不足3、UNIX的調(diào)入方式的調(diào)入方式三、頁面調(diào)入過程三、頁面調(diào)入過程1、進(jìn)程需要的頁面不在內(nèi)存,引起缺頁中斷、進(jìn)程需要的頁面不在內(nèi)存,引起缺頁中斷2、中斷處理程序保留現(xiàn)場(chǎng)環(huán)境,轉(zhuǎn)入缺頁中斷處理程序、中斷處理程序保留現(xiàn)場(chǎng)環(huán)境,轉(zhuǎn)入缺頁中斷處理程序3、中斷處理程序查找頁表,得到對(duì)應(yīng)的外存物理塊號(hào)。、中斷處理程序查

18、找頁表,得到對(duì)應(yīng)的外存物理塊號(hào)。如果內(nèi)存有空閑,則啟動(dòng)磁盤操作,將所缺的頁面讀入,如果內(nèi)存有空閑,則啟動(dòng)磁盤操作,將所缺的頁面讀入,并修改頁表。否則,到并修改頁表。否則,到4。4、執(zhí)行置換算法,選出要換出的頁面,如果該頁修改過,、執(zhí)行置換算法,選出要換出的頁面,如果該頁修改過,應(yīng)將其寫入磁盤,然后將所缺頁調(diào)入內(nèi)存,修改相應(yīng)表應(yīng)將其寫入磁盤,然后將所缺頁調(diào)入內(nèi)存,修改相應(yīng)表項(xiàng),將其存在位置為項(xiàng),將其存在位置為1,并放入快表,并放入快表 。5、利用修改后的頁表,形成物理地址,訪問內(nèi)存數(shù)據(jù)。、利用修改后的頁表,形成物理地址,訪問內(nèi)存數(shù)據(jù)。可提供多個(gè)大容量的虛擬存儲(chǔ)器:作業(yè)的地址空間可提供多個(gè)大容量的

19、虛擬存儲(chǔ)器:作業(yè)的地址空間不再受主存大小的限制。不再受主存大小的限制。主存利用率大大提高:作業(yè)中不常用的頁不會(huì)長(zhǎng)期主存利用率大大提高:作業(yè)中不常用的頁不會(huì)長(zhǎng)期駐留在主存,當(dāng)前運(yùn)行用不到的信息也不必調(diào)入主駐留在主存,當(dāng)前運(yùn)行用不到的信息也不必調(diào)入主存。存。能實(shí)現(xiàn)多道作業(yè)同時(shí)運(yùn)行。能實(shí)現(xiàn)多道作業(yè)同時(shí)運(yùn)行。方便用戶:大作業(yè)也無須考慮覆蓋問題。方便用戶:大作業(yè)也無須考慮覆蓋問題。缺頁中斷處理增加系統(tǒng)開銷缺頁中斷處理增加系統(tǒng)開銷頁面的調(diào)入調(diào)出增加頁面的調(diào)入調(diào)出增加I/O系統(tǒng)的負(fù)擔(dān)系統(tǒng)的負(fù)擔(dān)此外頁表等占用空間且需要管理,存在頁內(nèi)零此外頁表等占用空間且需要管理,存在頁內(nèi)零頭頭.l功能:需要調(diào)入頁面時(shí),選擇內(nèi)

20、存中哪個(gè)物理頁面被功能:需要調(diào)入頁面時(shí),選擇內(nèi)存中哪個(gè)物理頁面被置換。置換。l目標(biāo):把未來不再使用的或短期內(nèi)較少使用的頁面調(diào)目標(biāo):把未來不再使用的或短期內(nèi)較少使用的頁面調(diào)出,通常只能在局部性原理指導(dǎo)下依據(jù)過去的統(tǒng)計(jì)數(shù)出,通常只能在局部性原理指導(dǎo)下依據(jù)過去的統(tǒng)計(jì)數(shù)據(jù)進(jìn)行預(yù)測(cè);據(jù)進(jìn)行預(yù)測(cè);l頁面鎖定頁面鎖定(frame locking):用于描述必須常駐內(nèi)存的操:用于描述必須常駐內(nèi)存的操作系統(tǒng)的關(guān)鍵部分或時(shí)間關(guān)鍵作系統(tǒng)的關(guān)鍵部分或時(shí)間關(guān)鍵(time-critical)的應(yīng)用進(jìn)的應(yīng)用進(jìn)程。實(shí)現(xiàn)方法為在頁表中加上鎖定標(biāo)志位程。實(shí)現(xiàn)方法為在頁表中加上鎖定標(biāo)志位(lock bit)。幾種頁面置換算法幾種頁

21、面置換算法:l最佳算法最佳算法(OPT, optimal)*l最近最久未使用算法最近最久未使用算法(LRU, Least Recently Used)*l先進(jìn)先出算法先進(jìn)先出算法(FIFO)*l輪轉(zhuǎn)算法輪轉(zhuǎn)算法(clock)l最不常用算法最不常用算法(LFU, Least Frequently Used)*l頁面緩沖算法頁面緩沖算法(page buffering) 選擇選擇“未來不再使用的未來不再使用的”或或“在離當(dāng)前最遠(yuǎn)位置上出現(xiàn)在離當(dāng)前最遠(yuǎn)位置上出現(xiàn)的的”頁面被置換。這是一種理想情況,是實(shí)際執(zhí)行中無法預(yù)頁面被置換。這是一種理想情況,是實(shí)際執(zhí)行中無法預(yù)知的,因而不能實(shí)現(xiàn)??捎米餍阅茉u(píng)價(jià)的依據(jù)

22、。知的,因而不能實(shí)現(xiàn)??捎米餍阅茉u(píng)價(jià)的依據(jù)。例:某進(jìn)程分配頁數(shù)為例:某進(jìn)程分配頁數(shù)為3 3,其運(yùn)行期間頁面訪問序列:,其運(yùn)行期間頁面訪問序列:A,B,C,D,A,B,E,A,B,C,D,EA,B,C,D,A,B,E,A,B,C,D,E,分析其按照,分析其按照OPTOPT算法進(jìn)行頁面算法進(jìn)行頁面置換時(shí)的缺頁情況。置換時(shí)的缺頁情況。最佳置換算法最佳置換算法OPT范例范例頁頁面面訪訪問問序序列列 A B C D A B E A B C D E A A A A B A A B E E E E B B B A B B E B C D D C D D D E A A B C C + + + + + + +

23、 缺缺頁頁次次數(shù)數(shù)=7; 缺缺頁頁率率=7/12=58% 選擇裝入最早的頁面被置換??梢酝ㄟ^鏈表來表示各選擇裝入最早的頁面被置換??梢酝ㄟ^鏈表來表示各頁的建立時(shí)間先后。性能較差。較早調(diào)入的頁往往是經(jīng)常被頁的建立時(shí)間先后。性能較差。較早調(diào)入的頁往往是經(jīng)常被訪問的頁,這些頁在訪問的頁,這些頁在FIFO算法下被反復(fù)調(diào)入和調(diào)出。并且算法下被反復(fù)調(diào)入和調(diào)出。并且有抖動(dòng)現(xiàn)象。有抖動(dòng)現(xiàn)象。請(qǐng)參看下頁的兩個(gè)例子。(進(jìn)程的頁數(shù)分別是請(qǐng)參看下頁的兩個(gè)例子。(進(jìn)程的頁數(shù)分別是3和和4)頁面訪問序列頁面訪問序列 A B C D A B E A B C D E A B C D A B E E E C D D A B C

24、 D A B B B E C C A B C D A A A B E E + + + + + + + + + 缺頁次數(shù)缺頁次數(shù)=9; 缺頁率缺頁率 f=9/12=75% 頁面訪問序列頁面訪問序列 A B C D A B E A B C D E A B C D D D E A B C D E A B C C C D E A B C D A B B B C D E A B C A A A B C D E A B + + + + + + + + + + 缺頁次數(shù)缺頁次數(shù)=10; 缺頁率缺頁率 f=10/12=83% l每個(gè)頁面設(shè)立移位寄存器:被訪問時(shí)左邊最高位置每個(gè)頁面設(shè)立移位寄存器:被訪問時(shí)左邊最

25、高位置1,定,定期右移并且最高位補(bǔ)期右移并且最高位補(bǔ)0,于是寄存器數(shù)值最小的是最久未,于是寄存器數(shù)值最小的是最久未使用頁面。使用頁面。l一個(gè)特殊的棧:把被訪問的頁面移到棧頂,于是棧底的是一個(gè)特殊的棧:把被訪問的頁面移到棧頂,于是棧底的是最久未使用頁面。最久未使用頁面。 選擇內(nèi)存中最久未使用的頁面被置換。這是局部性原理的選擇內(nèi)存中最久未使用的頁面被置換。這是局部性原理的合理近似,性能接近最佳算法。但由于需要記錄頁面使用時(shí)間合理近似,性能接近最佳算法。但由于需要記錄頁面使用時(shí)間的先后關(guān)系,硬件開銷太大。硬件機(jī)構(gòu)可設(shè)計(jì)如下:的先后關(guān)系,硬件開銷太大。硬件機(jī)構(gòu)可設(shè)計(jì)如下:頁頁面面訪訪問問序序列列 A

26、B C D A B E A B C D E A B C D A B E A B C D E A B C D A B E A B C D A B C D A B E A B C + + + + + + + + + + 缺缺頁頁次次數(shù)數(shù)=10; 缺缺頁頁率率=10/12=83% l內(nèi)存中所有頁面通過鏈接指針形成一個(gè)循環(huán)隊(duì)列內(nèi)存中所有頁面通過鏈接指針形成一個(gè)循環(huán)隊(duì)列l(wèi)每頁有一個(gè)使用訪問位每頁有一個(gè)使用訪問位(use bit),若該頁被訪問則置,若該頁被訪問則置use bit=1。l置換時(shí)采用一個(gè)指針,從當(dāng)前指針位置開始按地址先后檢置換時(shí)采用一個(gè)指針,從當(dāng)前指針位置開始按地址先后檢查各頁,尋找查各頁,

27、尋找use bit=0的頁面作為被置換頁。的頁面作為被置換頁。l指針經(jīng)過的指針經(jīng)過的user bit=1的頁都修改的頁都修改user bit=0,最后指針停留,最后指針停留在被置換頁的下一個(gè)頁。在被置換頁的下一個(gè)頁。也稱最近未使用算法也稱最近未使用算法(NRU, Not Recently Used),它是,它是LRU(最最近最久未使用算法近最久未使用算法)和和FIFO的折衷。的折衷。 由于由于Clock算法不考慮換出頁面時(shí),頁面是否修改過算法不考慮換出頁面時(shí),頁面是否修改過的問題。這樣在換出的頁面如果被修改過的話,則必須的問題。這樣在換出的頁面如果被修改過的話,則必須做拷回磁盤處理,開銷比較大

28、。于是,改進(jìn)型的做拷回磁盤處理,開銷比較大。于是,改進(jìn)型的Colck算算法為每個(gè)頁又增加了一個(gè)修改位。法為每個(gè)頁又增加了一個(gè)修改位。 選擇頁面時(shí),盡量選擇既未使用又沒有修改的頁面。選擇頁面時(shí),盡量選擇既未使用又沒有修改的頁面。頁面:頁面: (訪問位(訪問位A,修改位,修改位M)有四種不同情形:)有四種不同情形:1類類(A=0,M=0) 既未訪問,又沒有修改,最佳淘汰頁既未訪問,又沒有修改,最佳淘汰頁2類類(A=0,M=1) 未訪問,但是有修改,效率低的淘汰頁未訪問,但是有修改,效率低的淘汰頁3類類(A=1,M=0) 被訪問,但沒有修改被訪問,但沒有修改4類類(A=1,M=1) 既被訪問,又有修

29、改既被訪問,又有修改算法:算法:(1)指針從當(dāng)前位置開始,開始第一輪掃描循環(huán)隊(duì)列,)指針從當(dāng)前位置開始,開始第一輪掃描循環(huán)隊(duì)列,尋找未使用且沒有修改過的頁面(第尋找未使用且沒有修改過的頁面(第1類頁面),找到類頁面),找到則可換出。則可換出。(2)如果找不找,則開始第二輪掃描,尋找未使用但修)如果找不找,則開始第二輪掃描,尋找未使用但修改過的頁面(第改過的頁面(第2類頁面),并且每經(jīng)過一個(gè)頁面時(shí),類頁面),并且每經(jīng)過一個(gè)頁面時(shí),將其訪問位將其訪問位A設(shè)置為設(shè)置為0。如果找到一個(gè)第。如果找到一個(gè)第2類頁面,則類頁面,則可換出。可換出。(3) 如果仍舊未找到合適的換出頁面,則此時(shí)指針回到如果仍舊未

30、找到合適的換出頁面,則此時(shí)指針回到初始位置,且所有頁面其訪問位初始位置,且所有頁面其訪問位A為為0。 再轉(zhuǎn)回(再轉(zhuǎn)回(1)繼續(xù)工作。繼續(xù)工作。l目的:選擇到當(dāng)前時(shí)間為止被訪問次數(shù)最少的頁面被目的:選擇到當(dāng)前時(shí)間為止被訪問次數(shù)最少的頁面被置換;置換;l實(shí)現(xiàn)方法實(shí)現(xiàn)方法1:每個(gè)頁面設(shè)立移位寄存器:被訪問時(shí)左邊:每個(gè)頁面設(shè)立移位寄存器:被訪問時(shí)左邊最高位置最高位置1,定期右移并且最高位補(bǔ),定期右移并且最高位補(bǔ)0,這樣,在最近,這樣,在最近一段時(shí)間內(nèi)時(shí)用最少的頁面將是一段時(shí)間內(nèi)時(shí)用最少的頁面將是RRi i 最小的頁。最小的頁。l實(shí)現(xiàn)方法實(shí)現(xiàn)方法2 2:每頁設(shè)置訪問計(jì)數(shù)器,每當(dāng)頁面被訪問時(shí),每頁設(shè)置訪問

31、計(jì)數(shù)器,每當(dāng)頁面被訪問時(shí),該頁面的訪問計(jì)數(shù)器加該頁面的訪問計(jì)數(shù)器加1;發(fā)生缺頁中斷時(shí),淘汰計(jì)數(shù);發(fā)生缺頁中斷時(shí),淘汰計(jì)數(shù)值最小的頁面,并將所有計(jì)數(shù)清零;值最小的頁面,并將所有計(jì)數(shù)清零;l被置換頁面的選擇和處理:由操作系統(tǒng)中專門的頁面被置換頁面的選擇和處理:由操作系統(tǒng)中專門的頁面置換進(jìn)程,用置換進(jìn)程,用FIFO算法選擇被置換頁,把被置換的頁算法選擇被置換頁,把被置換的頁面放入兩個(gè)鏈表(空閑頁面鏈表和已修改頁面鏈表)面放入兩個(gè)鏈表(空閑頁面鏈表和已修改頁面鏈表)之一。之一。如果頁面未被修改,就將其歸入到空閑頁面鏈表的如果頁面未被修改,就將其歸入到空閑頁面鏈表的末尾末尾否則將其歸入到已修改頁面鏈表。

32、否則將其歸入到已修改頁面鏈表。它是對(duì)它是對(duì)FIFO算法的發(fā)展,通過被置換頁面的緩沖,有機(jī)會(huì)找算法的發(fā)展,通過被置換頁面的緩沖,有機(jī)會(huì)找回剛被置換的頁面;回剛被置換的頁面;6.4.1 缺頁率對(duì)有效訪問時(shí)間的影響6.4.2 工作集6.4.3 抖動(dòng)產(chǎn)生的原因和預(yù)防方法 缺頁率的影響因素缺頁率的影響因素分配給進(jìn)程的頁面數(shù)目:分配給進(jìn)程的頁面數(shù)目:l數(shù)目越多數(shù)目越多缺頁率越低。缺頁率越低。l頁面數(shù)目的下限,應(yīng)該是一條指令及其操作數(shù)可能涉頁面數(shù)目的下限,應(yīng)該是一條指令及其操作數(shù)可能涉及的頁面數(shù)目的上限,以保證每條指令都能被執(zhí)行。及的頁面數(shù)目的上限,以保證每條指令都能被執(zhí)行。 缺頁率表示缺頁率表示“缺頁次數(shù)

33、缺頁次數(shù) / 內(nèi)存訪問次數(shù)內(nèi)存訪問次數(shù)”(比率比率)或或“缺缺頁的平均時(shí)間間隔的倒數(shù)頁的平均時(shí)間間隔的倒數(shù)”;假定缺頁概率為假定缺頁概率為P,則有效訪問時(shí)間可以表示為:,則有效訪問時(shí)間可以表示為: 有效訪問時(shí)間有效訪問時(shí)間=(1-P) * ma + P * 缺頁中斷時(shí)間缺頁中斷時(shí)間其中,其中,ma代表訪問存儲(chǔ)器的時(shí)間代表訪問存儲(chǔ)器的時(shí)間(10ns數(shù)百數(shù)百ns)。缺頁中斷時(shí)間由三部分組成:缺頁中斷時(shí)間由三部分組成:1、缺頁中斷服務(wù)時(shí)間、缺頁中斷服務(wù)時(shí)間 2、將缺頁讀入的時(shí)間、將缺頁讀入的時(shí)間:24ms3、進(jìn)程重新執(zhí)行時(shí)間、進(jìn)程重新執(zhí)行時(shí)間有效訪問時(shí)間有效訪問時(shí)間=(1-p)*0.1+p*2500

34、0結(jié)論:若使有效訪問時(shí)間延長(zhǎng)不超過結(jié)論:若使有效訪問時(shí)間延長(zhǎng)不超過10%,缺頁中斷就要,缺頁中斷就要小于小于0.0000004。減少缺頁中斷;提高。減少缺頁中斷;提高I/O速度。速度。25ms 實(shí)踐證明實(shí)踐證明, ,一個(gè)進(jìn)程在一段時(shí)間內(nèi)訪問到的頁數(shù)是比一個(gè)進(jìn)程在一段時(shí)間內(nèi)訪問到的頁數(shù)是比較確定的較確定的, ,系統(tǒng)只需按這個(gè)頁數(shù)分配相應(yīng)的頁面數(shù)即可。系統(tǒng)只需按這個(gè)頁數(shù)分配相應(yīng)的頁面數(shù)即可。超過這個(gè)頁面數(shù),進(jìn)程的缺頁次數(shù)不會(huì)減少多少,低于超過這個(gè)頁面數(shù),進(jìn)程的缺頁次數(shù)不會(huì)減少多少,低于這個(gè)數(shù)卻會(huì)使進(jìn)程的缺頁次數(shù)急劇增加,稱這些頁面為這個(gè)數(shù)卻會(huì)使進(jìn)程的缺頁次數(shù)急劇增加,稱這些頁面為工作集工作集(wo

35、rking set ) (working set ) 。 基本思想:根據(jù)程序的局部性原理,一般情況下,基本思想:根據(jù)程序的局部性原理,一般情況下,進(jìn)程在一段時(shí)間內(nèi)總是集中訪問一些頁面,這些頁面稱進(jìn)程在一段時(shí)間內(nèi)總是集中訪問一些頁面,這些頁面稱為活躍頁面,如果分配給一個(gè)進(jìn)程的物理頁面數(shù)太少了,為活躍頁面,如果分配給一個(gè)進(jìn)程的物理頁面數(shù)太少了,使該進(jìn)程所需的活躍頁面不能全部裝入內(nèi)存,則進(jìn)程在使該進(jìn)程所需的活躍頁面不能全部裝入內(nèi)存,則進(jìn)程在運(yùn)行過程中將頻繁發(fā)生中斷。運(yùn)行過程中將頻繁發(fā)生中斷。如果能為進(jìn)程提供與活躍頁面數(shù)相等的物理頁面數(shù),如果能為進(jìn)程提供與活躍頁面數(shù)相等的物理頁面數(shù),則可減少缺頁中斷次

36、數(shù)。則可減少缺頁中斷次數(shù)。對(duì)于給定的訪問序列選取定長(zhǎng)的區(qū)間,稱為工作集窗對(duì)于給定的訪問序列選取定長(zhǎng)的區(qū)間,稱為工作集窗口,落在工作集窗口中的頁面集合稱為工作集???,落在工作集窗口中的頁面集合稱為工作集。內(nèi)容取決于頁的三個(gè)因素內(nèi)容取決于頁的三個(gè)因素 a a 訪頁序列特性訪頁序列特性 b b 時(shí)刻時(shí)刻TiTi c c 窗口長(zhǎng)度窗口長(zhǎng)度( () )例: 26157775162341234443434441327 | |t1 | |t2 ws(t1)=1,2,5,6,7 ws(t2)=3,41、抖動(dòng)產(chǎn)生的原因、抖動(dòng)產(chǎn)生的原因 抖動(dòng)現(xiàn)象抖動(dòng)現(xiàn)象內(nèi)存中引入過多的進(jìn)程,造成多道程序度過高內(nèi)存中引入過多的進(jìn)程

37、,造成多道程序度過高每個(gè)進(jìn)程并發(fā)執(zhí)行時(shí)對(duì)內(nèi)存進(jìn)行訪問,經(jīng)常出現(xiàn)缺每個(gè)進(jìn)程并發(fā)執(zhí)行時(shí)對(duì)內(nèi)存進(jìn)行訪問,經(jīng)常出現(xiàn)缺頁情況頁情況啟動(dòng)置換策略將某個(gè)(某些)頁面換出,調(diào)入新頁啟動(dòng)置換策略將某個(gè)(某些)頁面換出,調(diào)入新頁繼續(xù)訪問時(shí)發(fā)現(xiàn),又用到剛才調(diào)出的頁面,又引起繼續(xù)訪問時(shí)發(fā)現(xiàn),又用到剛才調(diào)出的頁面,又引起缺頁中斷缺頁中斷抖動(dòng)的產(chǎn)生:經(jīng)常將調(diào)出的頁再調(diào)入抖動(dòng)的產(chǎn)生:經(jīng)常將調(diào)出的頁再調(diào)入2、抖動(dòng)的預(yù)防、抖動(dòng)的預(yù)防l采取局部置換策略采取局部置換策略 僅允許進(jìn)程在自身范圍內(nèi)進(jìn)行置換,不影響其他進(jìn)程僅允許進(jìn)程在自身范圍內(nèi)進(jìn)行置換,不影響其他進(jìn)程l在在CPU調(diào)度程序中引入工作集算法調(diào)度程序中引入工作集算法 調(diào)入新作

38、業(yè)時(shí),應(yīng)該檢查每個(gè)進(jìn)程在內(nèi)存中的駐留集調(diào)入新作業(yè)時(shí),應(yīng)該檢查每個(gè)進(jìn)程在內(nèi)存中的駐留集是否足夠大是否足夠大lL=S準(zhǔn)則:產(chǎn)生缺頁的平均時(shí)間準(zhǔn)則:產(chǎn)生缺頁的平均時(shí)間L=系統(tǒng)處理進(jìn)程缺頁系統(tǒng)處理進(jìn)程缺頁的平均時(shí)間的平均時(shí)間Sl掛起若干進(jìn)程掛起若干進(jìn)程 使某些低優(yōu)先級(jí)的進(jìn)程進(jìn)程掛起,從而騰出內(nèi)存空間使某些低優(yōu)先級(jí)的進(jìn)程進(jìn)程掛起,從而騰出內(nèi)存空間 請(qǐng)求分頁系統(tǒng)建立的虛擬存儲(chǔ)器,是以頁面為單位進(jìn)請(qǐng)求分頁系統(tǒng)建立的虛擬存儲(chǔ)器,是以頁面為單位進(jìn)行換入、換出操作的。行換入、換出操作的。 在請(qǐng)求分段系統(tǒng)中實(shí)現(xiàn)的虛擬存儲(chǔ)器,以分段為單位在請(qǐng)求分段系統(tǒng)中實(shí)現(xiàn)的虛擬存儲(chǔ)器,以分段為單位進(jìn)行換入和換出。進(jìn)行換入和換出。

39、程序在運(yùn)行之前,只需要裝入必要的若干個(gè)分段即可程序在運(yùn)行之前,只需要裝入必要的若干個(gè)分段即可運(yùn)行。當(dāng)訪問的分段不在內(nèi)存時(shí),可由運(yùn)行。當(dāng)訪問的分段不在內(nèi)存時(shí),可由OSOS將所缺少的段調(diào)將所缺少的段調(diào)入內(nèi)存。入內(nèi)存。1、段表機(jī)制、段表機(jī)制段號(hào)段號(hào) 段長(zhǎng)段長(zhǎng) 段的段的 存儲(chǔ)存儲(chǔ) 訪訪 問問 修修 改改 存在存在 增補(bǔ)位增補(bǔ)位 外存外存l需要在進(jìn)程段表中添加若干項(xiàng):需要在進(jìn)程段表中添加若干項(xiàng):存取方式:標(biāo)記本段存取屬性。如讀存取方式:標(biāo)記本段存取屬性。如讀R,寫,寫W,執(zhí)行,執(zhí)行X訪問字段訪問字段A:記錄本段使用的頻繁程度:記錄本段使用的頻繁程度修改位:是否在調(diào)入內(nèi)存后做過修改修改位:是否在調(diào)入內(nèi)存后

40、做過修改存在位:本段是否裝入內(nèi)存存在位:本段是否裝入內(nèi)存增補(bǔ)位增補(bǔ)位 :該段是否動(dòng)態(tài)增長(zhǎng)過,在請(qǐng)求頁式中沒有該位:該段是否動(dòng)態(tài)增長(zhǎng)過,在請(qǐng)求頁式中沒有該位外存地址外存地址 基址基址 方式方式 字段字段A 字段字段M 位位p 起址起址2、缺段中斷機(jī)構(gòu)、缺段中斷機(jī)構(gòu) 要有專門的缺段中斷處理程序。特點(diǎn):要有專門的缺段中斷處理程序。特點(diǎn):指令和操作數(shù)必定不會(huì)跨越在段邊界上。指令和操作數(shù)必定不會(huì)跨越在段邊界上。由于段的長(zhǎng)度是不固定的,處理比缺頁系統(tǒng)復(fù)雜。由于段的長(zhǎng)度是不固定的,處理比缺頁系統(tǒng)復(fù)雜。調(diào)入一個(gè)段可能要淘汰幾個(gè)內(nèi)存中的段。調(diào)入一個(gè)段可能要淘汰幾個(gè)內(nèi)存中的段。中斷處理過程請(qǐng)參看中斷處理過程請(qǐng)參看

41、P185 圖圖6-123 3、地址變換、地址變換請(qǐng)求分段系統(tǒng)的地址變換機(jī)構(gòu),是在分段系統(tǒng)的請(qǐng)求分段系統(tǒng)的地址變換機(jī)構(gòu),是在分段系統(tǒng)的地址變換機(jī)構(gòu)基礎(chǔ)上形成的。地址變換機(jī)構(gòu)基礎(chǔ)上形成的。由于分段可能不在內(nèi)存,因此會(huì)引起缺段中斷。由于分段可能不在內(nèi)存,因此會(huì)引起缺段中斷。先將需要的段調(diào)入內(nèi)存,修改段表,然后再利用段表進(jìn)先將需要的段調(diào)入內(nèi)存,修改段表,然后再利用段表進(jìn)行地址變換。行地址變換。 地址變換過程請(qǐng)參看地址變換過程請(qǐng)參看P186 P186 圖圖6-136-13在多道程序系統(tǒng)中,尤其在分時(shí)系統(tǒng)中,數(shù)據(jù)共享是在多道程序系統(tǒng)中,尤其在分時(shí)系統(tǒng)中,數(shù)據(jù)共享是很重要的,在分段系統(tǒng)中,各共享進(jìn)程應(yīng)能訪問

42、被共享很重要的,在分段系統(tǒng)中,各共享進(jìn)程應(yīng)能訪問被共享的段,所以共享的方法是使這些共享用戶的邏輯空間中的段,所以共享的方法是使這些共享用戶的邏輯空間中的段指向相同的段號(hào),在共享中必須小心處理的一個(gè)問的段指向相同的段號(hào),在共享中必須小心處理的一個(gè)問題是共享段的保護(hù)問題。題是共享段的保護(hù)問題。一、共享段表一、共享段表為了實(shí)現(xiàn)共享,可在系統(tǒng)中配置一張段表,所有的共為了實(shí)現(xiàn)共享,可在系統(tǒng)中配置一張段表,所有的共享段都在共享段表中占有一表項(xiàng)。表項(xiàng)中記錄了共享段享段都在共享段表中占有一表項(xiàng)。表項(xiàng)中記錄了共享段的段號(hào)、段長(zhǎng)、內(nèi)存始址、存在位等信息,并記錄有共的段號(hào)、段長(zhǎng)、內(nèi)存始址、存在位等信息,并記錄有共享

43、此分段的每個(gè)進(jìn)程的情況。享此分段的每個(gè)進(jìn)程的情況。共享段共享段作業(yè)作業(yè)1 1的段表的段表段名段名 段長(zhǎng)段長(zhǎng) 內(nèi)存始址內(nèi)存始址 狀態(tài)狀態(tài)共享本段進(jìn)程數(shù)共享本段進(jìn)程數(shù) 外存始址外存始址進(jìn)程名進(jìn)程名 進(jìn)程號(hào)進(jìn)程號(hào) 段號(hào)段號(hào) 存取控制存取控制進(jìn)程名進(jìn)程名 進(jìn)程號(hào)進(jìn)程號(hào) 段號(hào)段號(hào) 存取控制存取控制共享段表示意圖(圖中部分共享段表示意圖(圖中部分信息省略)信息省略)1、共享進(jìn)程計(jì)數(shù)、共享進(jìn)程計(jì)數(shù)記錄了多少個(gè)進(jìn)程在共享該記錄了多少個(gè)進(jìn)程在共享該分段。分段。2、存取控制字段、存取控制字段對(duì)于共享段的不同進(jìn)程,應(yīng)對(duì)于共享段的不同進(jìn)程,應(yīng)該賦予不同的存取權(quán)限。該賦予不同的存取權(quán)限。3、段號(hào)、段號(hào)不同的進(jìn)程可以使用

44、不同的不同的進(jìn)程可以使用不同的段號(hào)來訪問相同的共享段。段號(hào)來訪問相同的共享段。作業(yè)作業(yè)2 2的段表的段表二、共享段的分配和回收二、共享段的分配和回收l分配分配第一個(gè)請(qǐng)求的進(jìn)程,由系統(tǒng)分配一物理塊,調(diào)入共第一個(gè)請(qǐng)求的進(jìn)程,由系統(tǒng)分配一物理塊,調(diào)入共享段,設(shè)置相關(guān)表項(xiàng)信息,并置享段,設(shè)置相關(guān)表項(xiàng)信息,并置count=1以后的進(jìn)程,在自己段表中增加一項(xiàng),添入共享段以后的進(jìn)程,在自己段表中增加一項(xiàng),添入共享段信息;在共享段表項(xiàng)中做信息;在共享段表項(xiàng)中做count = count +1,填寫進(jìn),填寫進(jìn)程相關(guān)信息程相關(guān)信息l回收回收做做count = count 1 如果如果count = 0 ,則將該共

45、享段回收則將該共享段回收 三、分段保護(hù)三、分段保護(hù)l越界檢查越界檢查 在進(jìn)行存儲(chǔ)訪問時(shí),要將邏輯地址的段號(hào)與段表長(zhǎng)在進(jìn)行存儲(chǔ)訪問時(shí),要將邏輯地址的段號(hào)與段表長(zhǎng)度進(jìn)行比較,如果超出則發(fā)生越界中斷信號(hào);其次,將度進(jìn)行比較,如果超出則發(fā)生越界中斷信號(hào);其次,將段內(nèi)地址與段表中該段的長(zhǎng)度進(jìn)行比較,如果有效才進(jìn)段內(nèi)地址與段表中該段的長(zhǎng)度進(jìn)行比較,如果有效才進(jìn)行轉(zhuǎn)換,否則產(chǎn)生越界中斷信號(hào)行轉(zhuǎn)換,否則產(chǎn)生越界中斷信號(hào).:用于規(guī)定對(duì)該段的訪問權(quán)限。通常的訪用于規(guī)定對(duì)該段的訪問權(quán)限。通常的訪問方式有:?jiǎn)柗绞接校?允許用戶對(duì)該段允許用戶對(duì)該段/頁內(nèi)任何信息或其副本進(jìn)行讀頁內(nèi)任何信息或其副本進(jìn)行讀操作。操作。:允許

46、用戶修改該段允許用戶修改該段/頁內(nèi)任何信息直至撤消整個(gè)頁內(nèi)任何信息直至撤消整個(gè)段段/頁。頁。:用戶可以執(zhí)行該段用戶可以執(zhí)行該段/頁程序,數(shù)據(jù)段頁程序,數(shù)據(jù)段/頁除外。頁除外。:用戶可在段用戶可在段/頁的末尾添加信息,但不允許修頁的末尾添加信息,但不允許修改已存在于段改已存在于段/頁中的信息。頁中的信息。l環(huán)保護(hù)檢查環(huán)保護(hù)檢查是一種功能較完善的保護(hù)機(jī)制。是一種功能較完善的保護(hù)機(jī)制。思想:將所有的程序分成不同的級(jí)別,分別放置在思想:將所有的程序分成不同的級(jí)別,分別放置在不同的環(huán)上。內(nèi)環(huán)(編號(hào)小,在內(nèi)側(cè))的程序具有不同的環(huán)上。內(nèi)環(huán)(編號(hào)小,在內(nèi)側(cè))的程序具有高優(yōu)先權(quán),外環(huán)的程序優(yōu)先權(quán)低。高優(yōu)先權(quán),外環(huán)的程序優(yōu)先權(quán)低。操作系統(tǒng)核心安排在操作系統(tǒng)核心安排在0環(huán)內(nèi);重要程序和操作系統(tǒng)服環(huán)內(nèi);重要程序和操作系統(tǒng)服務(wù)安排在中間環(huán);一般應(yīng)用程序安排在外環(huán)。務(wù)安排在中間環(huán);一般應(yīng)用程序安排在外環(huán)。一個(gè)程序可以直接訪問在相同環(huán)或低優(yōu)先級(jí)環(huán)(比一個(gè)程序可以直接訪問在相同環(huán)或低優(yōu)先級(jí)環(huán)(比自身相對(duì)靠外的環(huán))上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論