操作系統(tǒng)讀書報告_第1頁
操作系統(tǒng)讀書報告_第2頁
操作系統(tǒng)讀書報告_第3頁
操作系統(tǒng)讀書報告_第4頁
操作系統(tǒng)讀書報告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、操作系統(tǒng)讀書報告 操作系統(tǒng)讀書報告題 目: 章節(jié)內(nèi)容淺分析 姓 名: 張科 學(xué) 號: 1324620022 系 別: 人文信息管理學(xué)院 年 級: 2013 級 專 業(yè): 信息管理與信息系統(tǒng) 二一五 年 十一 月摘要:本文敘述的是關(guān)于本書各章節(jié)內(nèi)容概要,是個人的心得體會,通過敘述每一項新章節(jié)的內(nèi)容概要來認(rèn)識本書了解本書。關(guān)鍵詞:功能;內(nèi)容;分析;概要。一.進(jìn)程進(jìn)程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位。處理器是計算機系統(tǒng)中最重要的資源。在現(xiàn)代計算機系統(tǒng)中,為了提高系統(tǒng)的資源利用率,CPU將為某一程序獨占。通常采用多道程序設(shè)計技術(shù),即允許多

2、個程序同時進(jìn)入計算機系統(tǒng)的內(nèi)存并運行!我們今天使用的操作系統(tǒng)主要是分時系統(tǒng),由調(diào)度程序調(diào)入的多個作業(yè)共享CPU資源,其中每個作業(yè)只執(zhí)行極短的一段時間(比如0.1s,我們稱為一個時間片),極短的時間過后暫停執(zhí)行,調(diào)入下一個程序。這樣在不長的一段時間內(nèi)(比如5s內(nèi)),有限的進(jìn)程(少于50個)都可以得到至少一次的執(zhí)行,用戶請求可以得到及時的響應(yīng)。這種作業(yè)調(diào)度的方式我們稱為時間片輪轉(zhuǎn)法。這種執(zhí)行的方式叫并發(fā)執(zhí)行,并發(fā)性也是分時系統(tǒng)的基本特性之一。在分時系統(tǒng)中,為了執(zhí)行一項作業(yè),就需要把要執(zhí)行的作業(yè)程序載入內(nèi)存中作為程序段,為作業(yè)分配相應(yīng)的數(shù)據(jù)空間作為數(shù)據(jù)段,并加入一個控制塊(PCB),用來保存當(dāng)前作業(yè)

3、執(zhí)行所必須的一些信息,使之能夠并發(fā)執(zhí)行。內(nèi)存中的程序段、數(shù)據(jù)段和PCB我們稱為一個進(jìn)程實體,而一個進(jìn)程實體的執(zhí)行過程我們稱為進(jìn)程。2.進(jìn)程的三種基本狀態(tài)進(jìn)程在運行中不斷地改變其運行狀態(tài)。通常,一個運行進(jìn)程必須具有以下三種基本狀態(tài)。就緒(Ready)狀態(tài)當(dāng)進(jìn)程已分配到除CPU以外的所有必要的資源,只要獲得處理機便可立即執(zhí)行,這時的進(jìn)程狀態(tài)稱為就緒狀態(tài)。執(zhí)行(Running)狀態(tài)當(dāng)進(jìn)程已獲得處理機,其程序正在處理機上執(zhí)行,此時的進(jìn)程狀態(tài)稱為執(zhí)行狀態(tài)。阻塞(Blocked)狀態(tài)正在執(zhí)行的進(jìn)程,由于等待某個事件發(fā)生而無法執(zhí)行時,便放棄處理機而處于阻塞狀態(tài)。引起進(jìn)程阻塞的事件可有多種,例如,等待I/O完

4、成、申請緩沖區(qū)不能滿足、等待信件(信號)等。3.進(jìn)程三種狀態(tài)間的轉(zhuǎn)換一個進(jìn)程在運行期間,不斷地從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài),它可以多次處于就緒狀態(tài)和執(zhí)行狀態(tài),也可以多次處于阻塞狀態(tài)。(1)就緒執(zhí)行處于就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程序為之分配了處理機后,該進(jìn)程便由就緒狀態(tài)轉(zhuǎn)變成執(zhí)行狀態(tài)。(2)執(zhí)行就緒處于執(zhí)行狀態(tài)的進(jìn)程在其執(zhí)行過程中,因分配給它的一個時間片已用完而不得不讓出處理機,于是進(jìn)程從執(zhí)行狀態(tài)轉(zhuǎn)變成就緒狀態(tài)。(3)執(zhí)行阻塞正在執(zhí)行的進(jìn)程因等待某種事件發(fā)生而無法繼續(xù)執(zhí)行時,便從執(zhí)行狀態(tài)變成阻塞狀態(tài)。(4)阻塞就緒處于阻塞狀態(tài)的進(jìn)程,若其等待的事件已經(jīng)發(fā)生,于是進(jìn)程由阻塞狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。4.父

5、進(jìn)程和子進(jìn)程:他們的關(guān)系是管理和被管理的關(guān)系,當(dāng)父進(jìn)程終止時,子進(jìn)程也隨之而終止。但子進(jìn)程終止,父進(jìn)程并不一定終止。比如httpd服務(wù)器運行時,我們可以殺掉其子進(jìn)程,父進(jìn)程并不會因為子進(jìn)程的終止而終止。在進(jìn)程管理中,當(dāng)我們發(fā)現(xiàn)占用資源過多,或無法控制的進(jìn)程時,應(yīng)該殺死它,以保護系統(tǒng)的穩(wěn)定安全運行。2 中斷與處理器調(diào)度1. 調(diào)度的基本概念在多道程序系統(tǒng)中,進(jìn)程的數(shù)量往往多于處理機的個數(shù),進(jìn)程爭用處理機的情況就在所難免。處理機調(diào)度是對處理機進(jìn)行分配,就是從就緒隊列中,按照一定的算法(公平、髙效)選擇一個進(jìn)程并將處理機分配給它運行,以實現(xiàn)進(jìn)程并發(fā)地執(zhí)行。處理機調(diào)度是多道程序操作系統(tǒng)的基礎(chǔ),它是操作系

6、統(tǒng)設(shè)計的核心問題。2. 調(diào)度的層次一個作業(yè)從提交開始直到完成,往往要經(jīng)歷以下三級調(diào)度,1) 作業(yè)調(diào)度。又稱高級調(diào)度,.其主要任務(wù)是按一定的原則從外存上處于后備狀態(tài)的作業(yè)中挑選一個(或多個)作業(yè),給它(們)分配內(nèi)存、輸入/輸出設(shè)備等必要的資源,并建立相應(yīng)的進(jìn)程,以使它(們)獲得競爭處理機的權(quán)利。簡言之,就是內(nèi)存與輔存之間的調(diào)度。對于每個作業(yè)只調(diào)入一次、調(diào)出一次。多道批處理系統(tǒng)中大多配有作業(yè)調(diào)度,而其他系統(tǒng)中通常不需要配置作業(yè)調(diào)度。作業(yè)調(diào)度的執(zhí)行頻率較低,通常為幾分鐘一次。2) 中級調(diào)度。又稱內(nèi)存調(diào)度。引入中級調(diào)度是為了提高內(nèi)存利用率和系統(tǒng)吞吐量。為此,應(yīng)使那些暫時不能運行的進(jìn)程,調(diào)至外存等待,把

7、此時的進(jìn)程狀態(tài)稱為掛起狀態(tài)。當(dāng)它們已具備運行條件且內(nèi)存又稍有空閑時,由中級調(diào)度來決定,把外存上的那些已具備運行條件的就緒進(jìn)程,再重新調(diào)入內(nèi)存,并修改其狀態(tài)為就緒狀態(tài),掛在就緒隊列上等待。3) 進(jìn)程調(diào)度。又稱為低級調(diào)度,其主要任務(wù)是按照某種方法和策略從就緒隊列中選取一個進(jìn)程,將處理機分配給它。進(jìn)程調(diào)度是操作系統(tǒng)中最基本的一種調(diào)度,在一般操作系統(tǒng)中都必須配置進(jìn)程調(diào)度。進(jìn)程調(diào)度的頻率很高,一般幾十毫秒一次。3. 三級調(diào)度的聯(lián)系作業(yè)調(diào)度從外存的后備隊列中選擇一批作業(yè)進(jìn)入內(nèi)存,為它們建立進(jìn)程,這些進(jìn)程被送入就緒隊列,進(jìn)程調(diào)度從就緒隊列中選出一個進(jìn)程,并把其狀態(tài)改為運行狀態(tài),把CPU分配給它。中級調(diào)度是為

8、了提高內(nèi)存的利用率,系統(tǒng)將那些暫時不能運行的進(jìn)程掛起來。當(dāng)內(nèi)存空間寬松時,通過中級調(diào)度選擇具備運行條件的進(jìn)程,將其喚醒。1) 作業(yè)調(diào)度為進(jìn)程活動做準(zhǔn)備,進(jìn)程調(diào)度使進(jìn)程正?;顒悠饋?,中級調(diào)度將暫時不能運行的進(jìn)程掛起,中級調(diào)度處于作業(yè)調(diào)度和進(jìn)程調(diào)度之間。2) 作業(yè)調(diào)度次數(shù)少,中級調(diào)度次數(shù)略多,進(jìn)程調(diào)度頻率最高。3) 進(jìn)程調(diào)度是最基本的,不可或缺。調(diào)度的時機、切換與過程進(jìn)程調(diào)度和切換程序是操作系統(tǒng)內(nèi)核程序。當(dāng)請求調(diào)度的事件發(fā)生后,才可能會運行進(jìn)程調(diào)度程序,當(dāng)調(diào)度了新的就緒進(jìn)程后,才會去進(jìn)行進(jìn)程間的切換。理論上這三件事情應(yīng)該順序執(zhí)行,但在實際設(shè)計中,在操作系統(tǒng)內(nèi)核程序運行時,如果某時發(fā)生了引起進(jìn)程調(diào)度

9、的因素,并不一定能夠馬上進(jìn)行調(diào)度與切換。現(xiàn)代操作系統(tǒng)中,不能進(jìn)行進(jìn)程的調(diào)度與切換的情況有以下幾種情況。1) 在處理中斷的過程中:中斷處理過程復(fù)雜,在實現(xiàn)上很難做到進(jìn)程切換,而且中斷處理是系統(tǒng)工作的一部分,邏輯上不屬于某一進(jìn)程,不應(yīng)被剝奪處理機資源。2) 進(jìn)程在操作系統(tǒng)內(nèi)核程序臨界區(qū)中:進(jìn)入臨界區(qū)后,需要獨占式地訪問共享數(shù)據(jù),理論上必須加鎖,以防止其他并行程序進(jìn)入,在解鎖前不應(yīng)切換到其他進(jìn)程運行,以加快該共享數(shù)據(jù)的釋放。3) 其他需要完全屏蔽中斷的原子操作過程中:如加鎖、解鎖、中斷現(xiàn)場保護、恢復(fù)等原子操作。在原子過程中,連中斷都要屏蔽,更不應(yīng)該進(jìn)行進(jìn)程調(diào)度與切換。如果在上述過程中發(fā)生了引起調(diào)度的

10、條件,并不能馬上進(jìn)行調(diào)度和切換,應(yīng)置系統(tǒng)的請求調(diào)度標(biāo)志,直到上述過程結(jié)束后才進(jìn)行相應(yīng)的調(diào)度與切換。應(yīng)該進(jìn)行進(jìn)程調(diào)度與切換的情況有:1) 當(dāng)發(fā)生引起調(diào)度條件,且當(dāng)前進(jìn)程無法繼續(xù)運行下去時,可以馬上進(jìn)行調(diào)度與切換。如果操作系統(tǒng)只在這種情況下進(jìn)行進(jìn)程調(diào)度,就是非剝奪調(diào)度。 2) 當(dāng)中斷處理結(jié)束或自陷處理結(jié)束后,返回被中斷進(jìn)程的用戶態(tài)程序執(zhí)行現(xiàn)場前,若置上請求調(diào)度標(biāo)志,即可馬上進(jìn)行進(jìn)程調(diào)度與切換。如果操作系統(tǒng)支持這種情況下的運行調(diào)度程序,就實現(xiàn)了剝奪方式的調(diào)度。進(jìn)程切換往往在調(diào)度完成后立刻發(fā)生,它要求保存原進(jìn)程當(dāng)前切換點的現(xiàn)場信息,恢復(fù)被調(diào)度進(jìn)程的現(xiàn)場信息?,F(xiàn)場切換時,操作系統(tǒng)內(nèi)核將原進(jìn)程的

11、現(xiàn)場信息推入到當(dāng)前進(jìn)程的內(nèi)核堆棧來保存它們,并更新堆棧指針。內(nèi)核完成從新進(jìn)程的內(nèi)核棧中裝入新進(jìn)程的現(xiàn)場信息、更新當(dāng)前運行進(jìn)程空間指針、重設(shè)PC寄存器等相關(guān)工作之后,開始運行新的進(jìn)程。進(jìn)程調(diào)度方式所謂進(jìn)程調(diào)度方式是指當(dāng)某一個進(jìn)程正在處理機上執(zhí)行時,若有某個更為重要或緊迫的進(jìn)程需要處理,即有優(yōu)先權(quán)更髙的進(jìn)程進(jìn)入就緒隊列,此時應(yīng)如何分配處理機。通常有以下兩種進(jìn)程調(diào)度方式:1) 非剝奪調(diào)度方式,又稱非搶占方式。是指當(dāng)一個進(jìn)程正在處理機上執(zhí)行時,即使有某個更為重要或緊迫的進(jìn)程進(jìn)入就緒隊列,仍然讓正在執(zhí)行的進(jìn)程繼續(xù)執(zhí)行,直到該進(jìn)程完成或發(fā)生某種事件而進(jìn)入阻塞狀態(tài)時,才把處理機分配給更為重要或緊迫的進(jìn)程。在

12、非剝奪調(diào)度方式下,一旦把CPU分配給一個進(jìn)程,那么該進(jìn)程就會保持CPU直到終止或轉(zhuǎn)換到等待狀態(tài)。這種方式的優(yōu)點是實現(xiàn)簡單、系統(tǒng)開銷小,適用于大多數(shù)的批處理系統(tǒng),但它不能用于分時系統(tǒng)和大多數(shù)的實時系統(tǒng)。2) 剝奪調(diào)度方式,又稱搶占方式。是指當(dāng)一個進(jìn)程正在處理機上執(zhí)行時,若有某個更為重要或緊迫的進(jìn)程需要使用處理機,則立即暫停正在執(zhí)行的進(jìn)程,將處理機分配給這個更為重要或緊迫的進(jìn)程。.釆用剝奪式的調(diào)度,對提高系統(tǒng)吞吐率和響應(yīng)效率都有明顯的好處。但“剝奪”不是一種任意性行為,必須遵循一定的原則,主要有:優(yōu)先權(quán)、短進(jìn)程優(yōu)先和時間片原則等。調(diào)度的基本準(zhǔn)則不同的調(diào)度算法具有不同的特性,在選擇調(diào)度算法時,必須考

13、慮算法所具有的特性。為了比較處理機調(diào)度算法的性能,人們提出很多評價準(zhǔn)則,下面介紹主要的幾種:1) CPU利用率。CPU是計算機系統(tǒng)中最重要和昂貴的資源之一,所以應(yīng)盡可能使CPU 保持“忙”狀態(tài),使這一資源利用率最髙。2) 系統(tǒng)吞吐量。表示單位時間內(nèi)CPU完成作業(yè)的數(shù)量。長作業(yè)需要消耗較長的處理機時間,因此會降低系統(tǒng)的吞吐量。而對于短作業(yè),它們所需要消耗的處理機時間較短,因此能提高系統(tǒng)的吞吐量。調(diào)度算法和方式的不同,也會對系統(tǒng)的吞吐量產(chǎn)生較大的影響。3) 周轉(zhuǎn)時間。是指從作業(yè)提交到作業(yè)完成所經(jīng)歷的時間,包括作業(yè)等待、在就緒隊列中排隊、在處迤機上運行以及進(jìn)行輸入/輸出操作所花費時間的總和。作業(yè)的周

14、轉(zhuǎn)時間可用公式表示如下:周轉(zhuǎn)時間 = 作業(yè)完成時間 - 作業(yè)提交時間平均周轉(zhuǎn)時間是指多個作業(yè)周轉(zhuǎn)時間的平均值:平均周轉(zhuǎn)時間 = (作業(yè)1的周轉(zhuǎn)時間 + + 作業(yè) n 的周轉(zhuǎn)時間) / n帶權(quán)周轉(zhuǎn)時間是指作業(yè)周轉(zhuǎn)時間與作業(yè)實際運行時間的比值:平均帶權(quán)周轉(zhuǎn)時間是指多個作業(yè)帶權(quán)周轉(zhuǎn)時間的平均值:平均帶權(quán)周轉(zhuǎn)時間 = (作業(yè)1的帶權(quán)周轉(zhuǎn)時間 + + 作業(yè) n 的帶權(quán)周轉(zhuǎn)時間) / n4) 等待時間。是指進(jìn)程處于等處理機狀態(tài)時間之和,等待時間越長,用戶滿意度越低。處理機調(diào)度算法實際上并不影響作業(yè)執(zhí)行或輸入/輸出操作的時間,只影響作業(yè)在就緒隊列中等待所花的時間。因此,衡量一個調(diào)度算法優(yōu)劣常常只需簡單地考察

15、等待時間。5) 響應(yīng)時間。是指從用戶提交請求到系統(tǒng)首次產(chǎn)生響應(yīng)所用的時間。在交互式系統(tǒng)中,周轉(zhuǎn)時間不可能是最好的評價準(zhǔn)則,一般釆用響應(yīng)時間作為衡量調(diào)度算法的重要準(zhǔn)則之一。從用戶角度看,調(diào)度策略應(yīng)盡量降低響應(yīng)時間,使響應(yīng)時間處在用戶能接受的范圍之內(nèi)。要想得到一個滿足所有用戶和系統(tǒng)要求的算法幾乎是不可能的。設(shè)計調(diào)度程序,一方面要滿足特定系統(tǒng)用戶的要求(如某些實時和交互進(jìn)程快速響應(yīng)要求),另一方面要考慮系統(tǒng)整體效率(如減少整個系統(tǒng)進(jìn)程平均周轉(zhuǎn)時間),同時還要考慮調(diào)度算法的開銷。三互斥,同步與通信在許多操作系統(tǒng)中,傳統(tǒng)的進(jìn)程概念被分為兩部分:一部分負(fù)責(zé)管理資源所有權(quán);另一部分負(fù)責(zé)指令流的執(zhí)行。一個單獨

16、的進(jìn)程可包含多個線程。使用多線程的組織方法對程序的結(jié)構(gòu)化和性能方面都有很大的幫助。SMP是一個擁有多處理器的計算機系統(tǒng),其中的每一個處理器都可以執(zhí)行所有應(yīng)用程序和系統(tǒng)代碼。SMP的組織方法增強了系統(tǒng)的性能和可靠性。SMP通常和多線程機制一起使用,即使沒有多線程機制也能很大幅度的提高系統(tǒng)性能。微內(nèi)核是操作系統(tǒng)為了減少運行在內(nèi)核模式的代碼量的一種設(shè)計方式,并且分析了這種方法的優(yōu)點。2.并發(fā):互斥和同步相交進(jìn)程之間的關(guān)系主要有兩種,同步與互斥。所謂互斥,是指散步在不同進(jìn)程之間的若干程序片斷,當(dāng)某個進(jìn)程運行其中一個程序片段時,其它進(jìn)程就不能運行它們之中的任一程序片段,只能等到該進(jìn)程運行完這個程序片段后

17、才可以運行。所謂同步,是指散步在不同進(jìn)程之間的若干程序片斷,它們的運行必須嚴(yán)格按照規(guī)定的某種先后次序來運行,這種先后次序依賴于要完成的特定的任務(wù)??偨Y(jié):互斥:是指某一資源同時只允許一個訪問者對其進(jìn)行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。同步:是指在互斥的基礎(chǔ)上(大多數(shù)情況),通過其它機制實現(xiàn)訪問者對資源的有序訪問。在大多數(shù)情況下,同步已經(jīng)實現(xiàn)了互斥,特別是所有寫入資源的情況必定是互斥的。少數(shù)情況是指可以允許多個訪問者同時訪問資源。3.并發(fā):死鎖和饑餓死鎖是這樣的一種情況:一組進(jìn)程中的兩個或多個進(jìn)程要等待該組中的其他成員完成一個操作后才能繼續(xù)運行,但是沒

18、有成員可以繼續(xù)。死鎖是一種很難預(yù)測的現(xiàn)象,并且沒有比較容易的通用解決方案。處理死鎖的三個主要手段是預(yù)防、避免和檢測。饑餓時一個準(zhǔn)備運行的進(jìn)程由于其他進(jìn)程的運行而一直不能訪問處理器的情況。從大的方面來說,饑餓是被當(dāng)成調(diào)度問題來處理的。4 死鎖與饑餓在多道程序系統(tǒng)中,同時有多個進(jìn)程并發(fā)運行,共享系統(tǒng)資源,從而提高了系統(tǒng)資源利用率,提高了系統(tǒng)的處理能力。但是,若對資源的管理、分配和使用不當(dāng),則會產(chǎn)生死鎖或是饑餓。所謂死鎖是指在多道程序系統(tǒng)中,一組進(jìn)程中的每一個進(jìn)程軍無限期等待被該組進(jìn)程中的另一個進(jìn)程所占有且永遠(yuǎn)不會釋放的資源。饑餓是指系統(tǒng)不能保證某個進(jìn)程的等待時間上界,從而使該進(jìn)程長時間等待,當(dāng)?shù)却?/p>

19、時間給進(jìn)程推進(jìn)和響應(yīng)帶來明顯影響時,稱發(fā)生了進(jìn)程饑餓。當(dāng)饑餓到一定程度的進(jìn)程所賦予的任務(wù)即使完成也不再具有實際意義時稱該進(jìn)程被餓死。下面我們就來分別討論一下死鎖與饑餓各自的特點。  首先是死鎖。 產(chǎn)生死鎖的原因主要有兩個,一是競爭資源,系統(tǒng)提供的資源數(shù)量有限,不能滿足每個進(jìn)程的需求;二是多道程序運行時,進(jìn)程推進(jìn)順序不合理。由此可見,發(fā)生死鎖時死鎖進(jìn)程的個數(shù)至少是兩個。(1)互斥條件資源是獨占的且排他使用。即任意時刻一個資源只能給一個進(jìn)程使用,其他申請者只有等待,直到資源被占有者釋放。如例子中的,資源。(2)不可剝奪條件進(jìn)程所獲得的資源在未使用完畢之前,不能被其他進(jìn)

20、程強行剝奪,而只能由擁有該資源的進(jìn)程自愿釋放。如例子中P2 不能強占P1擁有的A資源,而P1也不能強占P2擁有的B資源。3)請求和保持條件進(jìn)程每次申請他所需要的一部分資源,在申請新的資源的同時,繼續(xù)占用已分配到的資源。如例子中P1申請B資源時繼續(xù)占有A資源,P2申請A資源時繼續(xù)占有B資源。(4)循環(huán)等待條件在發(fā)生死鎖時,必然存在一個進(jìn)程等待環(huán)路,環(huán)路中的每一個進(jìn)程已占有的資源同時被另一個進(jìn)程所申請。如例子中的P1和P2就是一個簡單的等待環(huán)路。系統(tǒng)發(fā)生死鎖不僅浪費了大量的系統(tǒng)資源,甚至?xí)?dǎo)致整個系統(tǒng)的崩潰,因此如何解決死鎖問題是操作系統(tǒng)設(shè)計中的一個重點。目前主要有兩類方法,一類是不讓死

21、鎖發(fā)生;另一類是讓死鎖發(fā)生,再加以解決。死鎖預(yù)防就是力圖不讓死鎖發(fā)生,它采用破壞“不可剝奪”條件,或破壞“請求保持”條件,或破壞“循環(huán)等待”條件來達(dá)到目的,但這種方法給系統(tǒng)加上了較強的限制條件,嚴(yán)重的影響了系統(tǒng)性能。死鎖避免則是不破壞死鎖的必要條件,而是系統(tǒng)對進(jìn)程發(fā)出的每一個系統(tǒng)能夠滿足的資源申請進(jìn)行動態(tài)檢驗,并根據(jù)檢驗結(jié)果決定是否分配資源,如果分配后系統(tǒng)可能發(fā)生死鎖,則不分配,否則分配,這種方法算法復(fù)雜,會消耗很多的系統(tǒng)時間。死鎖的檢測與解除則屬于讓死鎖發(fā)生,再加以解決的方法。操作系統(tǒng)不斷的監(jiān)督進(jìn)程的進(jìn)展路徑,一旦檢測到死鎖的發(fā)生,則采用專門的措施解除死鎖,并以最小的代價使整個系統(tǒng)恢復(fù)正常。

22、以上大概介紹了死鎖的特點和一些關(guān)于死鎖的處理方法。下面看一下饑餓:產(chǎn)生饑餓的主要原因是:在一個動態(tài)系統(tǒng)中,對于每類系統(tǒng)資源,操作系統(tǒng)需要確定一個分配策略,當(dāng)多個進(jìn)程同時申請某類資源時,由分配策略確定資源分配給進(jìn)程的次序。有時資源分配策略可能是不公平的,即不能保證等待時間上界的存在。在這種情況下,即使系統(tǒng)沒有發(fā)生死鎖,某些進(jìn)程也可能會長時間等待當(dāng)?shù)却龝r間給進(jìn)程推進(jìn)和響應(yīng)帶來明顯影響時,稱發(fā)生了進(jìn)程饑餓,當(dāng)饑餓到一定程度的進(jìn)程所賦予的任務(wù)即使完成也不再具有實際意義時稱該進(jìn)程被餓死。舉個例子,當(dāng)有多個進(jìn)程需要打印文件時,如果系統(tǒng)分配打印機的策略是最短文件優(yōu)先,那么長文件的打印任務(wù)將由于短文件的源源不

23、斷到來而被無限期推遲,導(dǎo)致最終的饑餓甚至餓死。  饑餓沒有其產(chǎn)生的必要條件,隨機性很強。并且饑餓可以被消除,因此也將忙式等待時發(fā)生的饑餓稱為活鎖。由于饑餓和餓死與資源分配策略有關(guān),因而解決饑餓與餓死問題可從資源分配策略的公平性考慮,確保所有進(jìn)程不被忽視。如時間片輪轉(zhuǎn)算法(RR)。它將CPU的處理時間分成一個個時間片,就緒隊列中的諸進(jìn)程輪流運行一個時間片,當(dāng)時間片結(jié)束時,就強迫運行程序讓出CPU,該進(jìn)程進(jìn)入就緒隊列,等待下一次調(diào)度。同時,進(jìn)程調(diào)度又去選擇就緒隊列中的一個進(jìn)程,分配給它一個時間片,以投入運行。如此方式輪流調(diào)度。這樣就可以在不考慮其他系統(tǒng)開銷的情況下解決饑餓的問題

24、。最后,我們來比較的看一下死鎖與饑餓死鎖與餓死有一定相同點:二者都是由于競爭資源而引起的。但又有明顯差別:(1)從進(jìn)程狀態(tài)考慮,死鎖進(jìn)程都處于等待狀態(tài),忙式等待(處于運行或就緒狀態(tài))的進(jìn)程并非處于等待狀態(tài),但卻可能被餓死; (2)死鎖進(jìn)程等待永遠(yuǎn)不會被釋放的資源,餓死進(jìn)程等待會被釋放但卻不會分配給自己的資源,表現(xiàn)為等待時限沒有上界(排隊等待或忙式等待);(3)死鎖一定發(fā)生了循環(huán)等待,而餓死則不然。這也表明通過資源分配圖可以檢測死鎖存在與否,但卻不能檢測是否有進(jìn)程餓死;(4)死鎖一定涉及多個進(jìn)程,而饑餓或被餓死的進(jìn)程可能只有一個 (5)在饑餓的情形下,系統(tǒng)中有至少一個進(jìn)程能正常運行,只

25、是饑餓進(jìn)程得不到執(zhí)行機會。而死鎖則可能會最終使整個系統(tǒng)陷入死鎖并崩潰。五存儲管理在多道程序系統(tǒng)中,內(nèi)存中既有操作系統(tǒng),又有許多用戶程序。為使系統(tǒng)正常運行,避免內(nèi)存中各程序相互干擾,必須對內(nèi)存中的程序和數(shù)據(jù)進(jìn)行保護。1、防止地址越界對進(jìn)程所產(chǎn)生的地址必須加以檢查,發(fā)生越界時產(chǎn)生中斷,由操作系統(tǒng)進(jìn)行相應(yīng)處理。2、防止操作越權(quán)對屬于自己區(qū)域的信息,可讀可寫;對公共區(qū)域中允許共享的信息或獲得授權(quán)可使用的信息,可讀而不可修改;對未獲授權(quán)使用的信息,不可讀、不可寫。存儲保護一般以硬件保護機制為主,軟件為輔,因為完全用軟件實現(xiàn)系統(tǒng)開銷太大,速度成倍降低。當(dāng)發(fā)生越界或非法操作時,硬件產(chǎn)生中斷,進(jìn)入操作系統(tǒng)處理

26、(4) 物理存儲器分幾類?(內(nèi)存、外存、緩存)虛存儲器有兩層含義,一是指用戶程序的邏輯地址構(gòu)成的地址空間;二是指當(dāng)內(nèi)存容量不滿足用戶要求時,采用一種將內(nèi)存空間與外存空間有機地結(jié)合在一起,利用內(nèi)外存自動調(diào)度的方法構(gòu)成一個大的存儲器,從而給用戶程序提供更大的訪問空間物理地址是內(nèi)存中各存儲單元的編號,即存儲單元的真實地址,它是可識別、可尋址并實際存在的。用戶程序經(jīng)過編譯或匯編形成的目標(biāo)代碼,通常采用相對地址形式,其首地址為零,其余指令中的地址都是相對首地址而定。這個相對地址就稱為邏輯地址或虛擬地址。邏輯地址不是內(nèi)存中的物理地址,不能根據(jù)邏輯地址到內(nèi)存中存取信息。為了保證CPU執(zhí)行程序指令時能正確訪問

27、存儲單元,需要將用戶程序中的邏輯地址轉(zhuǎn)運行時可由機器直接尋址的物理地址,這一過程稱為地址映射或地址重定位。地址映射可分為兩類:1、 靜態(tài)地址映射2、 動態(tài)地址映射3、 對內(nèi)存進(jìn)行分區(qū)(靜態(tài)、動態(tài);等長、不等長)對內(nèi)存空間的劃分是可以靜態(tài)的,也可以動態(tài)的;可以是等長的,也可以不等長。靜態(tài)劃分是指系統(tǒng)運行之前就將內(nèi)存空間劃分成若干區(qū)域,通常,分配給進(jìn)程的內(nèi)存可能比進(jìn)程實際所需的區(qū)域長。動態(tài)劃分是在系統(tǒng)運行過程中才劃分內(nèi)存空間。這樣,系統(tǒng)可按進(jìn)程所需要的存儲空間大小為其分配恰好滿足要求的一個或多個區(qū)域。等長分區(qū)是將存儲空間劃分為若干個長度相同的區(qū)域。不等長分區(qū)則是將存儲空間劃分若干個長度不同的區(qū)域。 根據(jù)分區(qū)情況,從如何實現(xiàn)進(jìn)程的內(nèi)存分配?1、靜態(tài)等長分區(qū)的分配2、動態(tài)異長分區(qū)的分配3 什么叫碎片?(零散的小空閑區(qū)) 怎樣解決碎片問題?(緊湊技術(shù))所謂碎片是指內(nèi)存中出現(xiàn)的一些零散的小空閑區(qū)域。解決碎片的方法是移動所有占用區(qū)域,使所有的空閑區(qū)合并成一片連續(xù)區(qū)域。這一過程稱為緊湊,這一技術(shù)就是緊湊技術(shù)段頁式存儲管理的基本思想1、用頁式方法來分配和管理內(nèi)存空間,即把內(nèi)存劃分成若干大小相等的頁面;2、用段式方法對用戶程序按照其內(nèi)在的邏輯關(guān)系劃分成若干段;3、再按照劃分內(nèi)存頁面的大小,把每一段劃分成若干大小相等的頁面;4、用戶程序的邏輯地

溫馨提示

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

評論

0/150

提交評論