第2章調(diào)度與死鎖自測(cè)題.docx_第1頁
第2章調(diào)度與死鎖自測(cè)題.docx_第2頁
第2章調(diào)度與死鎖自測(cè)題.docx_第3頁
第2章調(diào)度與死鎖自測(cè)題.docx_第4頁
第2章調(diào)度與死鎖自測(cè)題.docx_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

4.4 調(diào)度與死鎖自測(cè)題4.4.1 基本題一、判斷題(正確的在括號(hào)中記,錯(cuò)誤的記)1.死鎖就是循環(huán)等待。 ( )2.最適合分時(shí)系統(tǒng)的進(jìn)程調(diào)度算法是優(yōu)先數(shù)法。 ( )3.不存在只涉及一個(gè)進(jìn)程的死鎖。 ( )4. 在分時(shí)系統(tǒng)中當(dāng)用戶數(shù)一定時(shí),影響響應(yīng)時(shí)間的主要因素是調(diào)度算法。 ( )5.若系統(tǒng)中每一資源類只有一個(gè),只要系統(tǒng)存在任何環(huán)路,系統(tǒng)狀態(tài)就是不安全的。 ( )6.多級(jí)反饋調(diào)度算法屬于搶占調(diào)度方式。 ( )7.死鎖是多個(gè)進(jìn)程為競(jìng)爭(zhēng)系統(tǒng)資源或彼此間通信而引起的一種臨時(shí)性的阻塞現(xiàn)象。 ( )8.在引入線程的系統(tǒng)中進(jìn)程程調(diào)度負(fù)責(zé)CPU的分配工作。 ( )9.當(dāng)進(jìn)程數(shù)大于資源數(shù)時(shí),進(jìn)程競(jìng)爭(zhēng)資源一定會(huì)產(chǎn)生死鎖。 ( )10.實(shí)時(shí)調(diào)度的關(guān)鍵是保證滿足實(shí)時(shí)任務(wù)對(duì)截止時(shí)間的要求。 ( )1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 二、選擇題1.在三種基本類型的操作系統(tǒng)中,都設(shè)置了進(jìn)程調(diào)度,在批處理系統(tǒng)中還應(yīng)設(shè)置_調(diào)度。 A.作業(yè) B.進(jìn)程 C.中級(jí) D.多處理機(jī)2.下列算法中,_只能采用非搶占調(diào)度方式。A高優(yōu)先權(quán)優(yōu)先法 B.時(shí)間片輪轉(zhuǎn)法 C.FCFS調(diào)度算法 D.短作業(yè)優(yōu)先算法3.下面關(guān)于優(yōu)先權(quán)大小的論述中,正確的論述是_。A.計(jì)算型作業(yè)的優(yōu)先權(quán),應(yīng)高于I/O型作業(yè)的優(yōu)先權(quán)。B.用戶進(jìn)程的優(yōu)先權(quán),應(yīng)高于系統(tǒng)進(jìn)程的優(yōu)先權(quán)。C.資源要求多的作業(yè),其優(yōu)先權(quán)應(yīng)高于資源要求少的作業(yè)。D.在動(dòng)態(tài)優(yōu)先權(quán)時(shí),隨著進(jìn)程執(zhí)行時(shí)間的增加,其優(yōu)先權(quán)降低。4.最適合分時(shí)系統(tǒng)的進(jìn)程調(diào)度算法是_。 A、FCFS B、SSJF C、優(yōu)先數(shù)法 D、輪轉(zhuǎn)法5.在分時(shí)系統(tǒng)中當(dāng)用戶數(shù)一定時(shí),影響響應(yīng)時(shí)間的主要因素是_。 A、時(shí)間片 B、調(diào)度算法 C、存儲(chǔ)分配方式 D、作業(yè)的大小6.采用“按序分配”策略,可以破壞死鎖產(chǎn)生的條件是_。 A、互斥 B、請(qǐng)求和保持 C、非剝奪 D、環(huán)路等待 7.下述解決死鎖的方法中,屬于死鎖預(yù)防策略的是_。A.銀行家算法 B.資源有序分配法 C.資源分配圖化簡(jiǎn)法 D.撤消進(jìn)程法8.從下面關(guān)于安全狀態(tài)和非安全狀態(tài)的論述中,正確的論述是_。A.安全狀態(tài)是沒有死鎖的狀態(tài),非去全狀態(tài)是有死鎖的狀態(tài)。B.安全狀態(tài)是可能有死鎖的狀態(tài),非安全狀態(tài)也是可能有死鎖的狀態(tài)。C.安全狀態(tài)是可能沒有死鎖的狀態(tài),非安全狀態(tài)是有死鎖的狀態(tài)。D.安全狀態(tài)是沒有死鎖的狀態(tài),非安全狀態(tài)是可能有死鎖的狀態(tài)。9.關(guān)于產(chǎn)生死鎖的現(xiàn)象,下面的描述最準(zhǔn)確是_。A.每個(gè)進(jìn)程共享某一個(gè)資源B.每個(gè)進(jìn)程競(jìng)爭(zhēng)某一個(gè)資源C.每個(gè)進(jìn)程等待著某一個(gè)不能得到且不可釋放的資源D.某個(gè)進(jìn)程因資源而無法進(jìn)行下去10.采用“按序分配”策略,可以破壞死鎖產(chǎn)生的條件是_。 A、互斥 B、請(qǐng)求和保持 C、非剝奪 D、環(huán)路等待 11.在選取撤消的進(jìn)程或搶占的進(jìn)程時(shí),應(yīng)盡量選擇_。A.進(jìn)程優(yōu)先級(jí)最高的B.進(jìn)程已運(yùn)行的時(shí)間最短的C.進(jìn)程完成其工作還需要的時(shí)間最短的D.進(jìn)程已A使用的資源數(shù)最少的12.系統(tǒng)使用的資源,如進(jìn)程控制塊(PCB)一般采用下列_處理死鎖。A.預(yù)分法 B.搶占和交換的方法 C.死鎖避免方法 D.資源定序方法13.在為多道程序所提供的可共享的系統(tǒng)資源不足時(shí),可能出現(xiàn)死鎖。但是,不適當(dāng)?shù)腳也可能產(chǎn)生死鎖。A.進(jìn)程優(yōu)先權(quán) B.資源的線性分配c.進(jìn)程推進(jìn)順序 D.分配隊(duì)列優(yōu)先權(quán)答:C14.采用資源剝奪法可解除死鎖,還可以采用_方法解除死鎖。A.執(zhí)行并行操作 B.撤消進(jìn)程 C.拒絕分配新資源 D.修改信號(hào)量答: B15.發(fā)生死鎖的必要條件有四個(gè),要防止死鎖的發(fā)生,可以破壞這四個(gè)必要條件,但破壞_條件是不太實(shí)際的。A.互斥 B.不可搶占 C.部分分配 D.循環(huán)等待答:A16.在_的情況下,系統(tǒng)出現(xiàn)死鎖。A.計(jì)算機(jī)系統(tǒng)發(fā)生了重大故障 B.有多個(gè)封鎖的進(jìn)程同時(shí)存在C.若干進(jìn)程因競(jìng)爭(zhēng)資源而無休止地相互等待他方釋放已占有的資源D.資源數(shù)大大小于進(jìn)程數(shù)或進(jìn)程同時(shí)申請(qǐng)的資源數(shù)大大超過資源總數(shù)答: C17.銀行家算法是一種_算法。A.死鎖解除 B.死鎖避免 C.死鎖預(yù)防 D.死鎖檢測(cè)答:B18._優(yōu)先權(quán)是在創(chuàng)建進(jìn)程時(shí)確定的,確定之后在整個(gè)進(jìn)程運(yùn)行期間不再改變。A.先來先服務(wù) B.靜態(tài) C.動(dòng)態(tài) D.短作業(yè)答:B19.某系統(tǒng)中有3個(gè)并發(fā)進(jìn)程,都需要同類資源4個(gè),試問該系統(tǒng)不會(huì)發(fā)生死鎖的最少資源數(shù)是_。A.9 B.10 C.11 D.12答:B20.以下敘述中正確的是_。A.調(diào)度原語主要是按照一定的算法,從阻塞隊(duì)列中選擇一個(gè)進(jìn)程,將處理機(jī)分配給它。B.號(hào)預(yù)防死鎖的發(fā)生可以通過破壞產(chǎn)生死鎖的四個(gè)必要條件之一來實(shí)現(xiàn),但破壞互斥條件的可能性不大。C.進(jìn)程進(jìn)入臨界區(qū)時(shí)要執(zhí)行開鎖原語。D.既考慮作業(yè)等待時(shí)間,又考慮作業(yè)執(zhí)行時(shí)間的調(diào)度算法是先來先服務(wù)算法。答:B三、填空題1.處理死鎖的方法通常有_、_、_和_2.為破壞_條件,采用資源的靜態(tài)預(yù)分策略,系統(tǒng)對(duì)進(jìn)程申請(qǐng)的資源進(jìn)行一次性的分配,然后才啟動(dòng)該進(jìn)程運(yùn)行.3.Banker算法是典型的_算法,要求系統(tǒng)必須知道未來的資源請(qǐng)求信息,進(jìn)程要預(yù)先聲明資源的最大需求量。4.進(jìn)程的調(diào)度方式有兩種,一種是_,另一種是_。答:剝奪方式非剝奪方式5.死鎖是指在系統(tǒng)中的多個(gè)_無限期地等待永遠(yuǎn)不會(huì)發(fā)生的條件。答:進(jìn)程6.一種最常用的進(jìn)程調(diào)度算法是把處理機(jī)分配給具有最高優(yōu)先權(quán)的進(jìn)程。而確定優(yōu)先權(quán)的方法概括起來不外乎是基于_特性和_特性兩種方法。前者所得到的是_優(yōu)先權(quán),后者所得到的是_優(yōu)先權(quán)。答:靜態(tài)動(dòng)態(tài)靜態(tài)動(dòng)態(tài)7.進(jìn)程調(diào)度負(fù)責(zé)_的分配工作。答:處理機(jī)8.在_調(diào)度算法中,按照進(jìn)程進(jìn)入就緒隊(duì)列的先后次序來分配處理機(jī)。答:先來先服務(wù);.9.死鎖產(chǎn)生的必要條件有四個(gè),_、_、_、_。答:互斥條件不剝奪條件部分分配環(huán)路條件10.解除死鎖常用的方法有兩種。_是從其他進(jìn)程那里剝奪足夠數(shù)量的資源給_進(jìn)程,以解除死鎖狀態(tài)。答:資源剝奪法死鎖11.銀行家算法中,當(dāng)一個(gè)進(jìn)程提出的資源請(qǐng)求將導(dǎo)致系統(tǒng)從_進(jìn)入_時(shí),系統(tǒng)就拒絕它的資源請(qǐng)求。答:安全狀態(tài)不安全狀態(tài)12.如果要求所有進(jìn)程一次性申請(qǐng)它所需要的全部資源。若系統(tǒng)有足夠的資源分配給進(jìn)程,便一次把所有的資源分配給該進(jìn)程。但在分配時(shí)只要有一種資源要求不能滿足,則資源全不分配,進(jìn)程等待。這種死鎖預(yù)防方法破壞了死鎖產(chǎn)生必要條件中的_條件。答:部分分配13.對(duì)待死鎖,一般應(yīng)考慮死鎖的預(yù)防、避免、檢測(cè)和解除四個(gè)問題。典型的銀行家算法是屬于_,破壞環(huán)路等待條件是屬于_,而剝奪資源是_的基本方法。答:死鎖的避免死鎖的預(yù)防死鎖的解除.四、簡(jiǎn)答題1.進(jìn)程調(diào)度的主要功能有哪些?2.高級(jí)調(diào)度與中級(jí)調(diào)度的主要任務(wù)是什么?為什么要引入中級(jí)調(diào)度?3.在搶占調(diào)度方式中,搶占的原則是什么?4.在選擇調(diào)度方式和調(diào)度算法時(shí),應(yīng)遵循的準(zhǔn)則是什么?5.在批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)的系統(tǒng)中,各采用哪幾種進(jìn)程(作業(yè))調(diào)度算法?6.何謂靜態(tài)和動(dòng)態(tài)優(yōu)先權(quán)?確定靜態(tài)優(yōu)先權(quán)的依據(jù)是什么?7.試比較FCFS和SPF兩種進(jìn)程調(diào)度算法。8.為什么在實(shí)時(shí)系統(tǒng)中,要求系統(tǒng)(尤其是CPU)具有較強(qiáng)的處理能力?9.按調(diào)度方式可將實(shí)時(shí)調(diào)度算法分為哪幾種?10.試說明多處理器系統(tǒng)有哪兒種類型。11.試說明對(duì)稱MPS中的進(jìn)程分配方式。12.何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?13.是否存在只涉及一個(gè)進(jìn)程的死鎖問題?-t14.在解決死鎖問題的幾個(gè)方法中,哪種方法最易于實(shí)現(xiàn)?哪種方法使資源利用率高?15.考慮一個(gè)共有150個(gè)存儲(chǔ)器單元的系統(tǒng),內(nèi)存的分配情況如下:進(jìn)程 Max AllocationPl 70 45P2 60 40P3 60 15使用銀行家算法,以確定是否可以同意下面的任一請(qǐng)求:(1)第4個(gè)進(jìn)程到達(dá),最多需要60個(gè)存儲(chǔ)單元,最初需要25個(gè)單元;(2)第4個(gè)進(jìn)程到達(dá),最多需要60個(gè)存儲(chǔ)單元,最初需要35個(gè)單元。16.不安全狀態(tài)是否必然導(dǎo)致系統(tǒng)進(jìn)入死鎖狀態(tài)?答:不安全狀態(tài)不一定導(dǎo)致系統(tǒng)進(jìn)入死鎖狀態(tài)。因?yàn)?安全性檢查中使用的向量Max是進(jìn)程執(zhí)行前提供的,而在實(shí)際運(yùn)行過程中,一進(jìn)程需要的最大資源量可能小于Max,如一進(jìn)程對(duì)應(yīng)的程序中有一段進(jìn)行錯(cuò)誤處理的代碼,其中需要n個(gè)A種資源,若該進(jìn)程在運(yùn)行過程中沒有碰到相應(yīng)錯(cuò)誤而不需調(diào)用該段錯(cuò)誤處理代碼,則它實(shí)際上將完全不會(huì)請(qǐng)求這n個(gè)A種資源。1.什么是過河問題中的死鎖?試說明四個(gè)預(yù)防算法都可應(yīng)用于過河問題。2.考慮圖7.3所示的交通死鎖情況.(1)說明圖中導(dǎo)致死鎖的四個(gè)必要條件成立.(2)提出一個(gè)避免死鎖的簡(jiǎn)單規(guī)則。3.考慮表7-3所示的系統(tǒng)瞬時(shí)狀態(tài),利用banker算法回答下面的問題:(1)數(shù)組Need的內(nèi)容是什么?(2)該系統(tǒng)處于安全態(tài)嗎?若是,給出一安全序列.(3)若進(jìn)程P1的請(qǐng)求(0420)到達(dá),該請(qǐng)求是否能立即滿足?表7-3進(jìn)程allocationMaxAvailableP0001200121520P110001750P213542356P306320652P4001406564.4.2 解析題一、論述題【例24】考慮一個(gè)每月運(yùn)行5000個(gè)作業(yè)而未采用死鎖預(yù)防或避免措施的系統(tǒng).死鎖大約每月發(fā)生兩次,而且每班發(fā)生死鎖時(shí)要求操作員終止或重新運(yùn)行大約10%的作業(yè),每個(gè)作業(yè)大約耗費(fèi)20元(按CPU時(shí)間計(jì)算)且每個(gè)被終止的作業(yè)在被撤消時(shí)往往都運(yùn)行了一半。系統(tǒng)程序員估計(jì),在該系統(tǒng)上配置死鎖避免算法(如banker算法)會(huì)使每個(gè)作業(yè)平均執(zhí)行時(shí)間增加大約10%.由于機(jī)器當(dāng)前仍有30%的空閑時(shí)間,所以,每個(gè)月仍可以運(yùn)行5000個(gè)作業(yè)(盡管平均周轉(zhuǎn)時(shí)間增加了大約20%)。(1)贊成配置死鎖避免算法的理由是什么?(2)反對(duì)配置死鎖避免算法的理由是什么?解:(1)為了有效地判定在特定環(huán)境下是否出現(xiàn)死鎖,必須配置死鎖預(yù)防或避免算法.通過配置死鎖避免算法,減少平均等待時(shí)間.(2)若不把重點(diǎn)放在使等待時(shí)間變?yōu)樽钌龠@一點(diǎn)上,那么,不配置死鎖預(yù)防或避免算法會(huì)減少成本?!纠?5】考慮下面的死鎖分配策略:允許在任何時(shí)候申請(qǐng)和釋放資源:若因沒有可用資源而不能滿足對(duì)資源的申請(qǐng),則檢查那些因等待資源而被阻塞的進(jìn)程,若它們占有所需的資源,則從中收回這些資源并將這些資源分給申請(qǐng)這些資源的進(jìn)程.增加等待進(jìn)程正等待的資源向量,使其包含那些被收回的資源.例如,考慮這樣一種系統(tǒng),它有3類資源,且向量Available的初值為(4,2,2).若進(jìn)程A申請(qǐng)(2,2,1),則它將得到滿足:若進(jìn)程B申請(qǐng)(1,0,1),則它也得到滿足:然后若進(jìn)程A又申請(qǐng)(0,0,1),則它被阻塞(無可用資源).如果進(jìn)程C現(xiàn)要申請(qǐng)(2,0,0),則它得到一個(gè)可用資源、(1,0,0)和一個(gè)曾分配給A的資源(因A已被阻塞).此時(shí),A的Allocation向量變?yōu)?1,2,1),而其Need向量則變?yōu)?1,0,1)。試說明:(1)在這種環(huán)境中會(huì)出現(xiàn)死鎖嗎?若會(huì),試舉一例:若不會(huì),那么哪個(gè)必要條件不可能成立?(2)會(huì)出現(xiàn)無限期地阻塞嗎?解(1)由于采用的是搶占性策略,所以不可能出現(xiàn)死鎖。(2)會(huì)的.一個(gè)進(jìn)程可能決不會(huì)獲得它所需要的全部資源,如果資源被一系列類似過程C的申請(qǐng)接連不斷地?fù)屨嫉脑?【例26】當(dāng)由于發(fā)生死鎖而撤離一進(jìn)程時(shí)會(huì)出現(xiàn)什么困難?解:進(jìn)程必須完全地撤離(中止重新開始)或只是退回到前面的安全態(tài).對(duì)于第一種情形,這種撤離的開銷由其優(yōu)先數(shù)、它已運(yùn)行了多長(zhǎng)時(shí)間、在完成前還需多少時(shí)間以及所需的資源類型等因素來決定:對(duì)于第二種情形,為了確定進(jìn)程最近的安全態(tài),系統(tǒng)需要保留有關(guān)每一進(jìn)程的許多信息.【例27】一個(gè)系統(tǒng)能否檢測(cè)它的哪些進(jìn)程正處于饑餓狀態(tài)?若能,則說明如何進(jìn)行這種檢測(cè).若不能,則敘述系統(tǒng)是如何處理饑餓問題的.解:測(cè)饑餓現(xiàn)象事實(shí)上需要未來知識(shí),因?yàn)?對(duì)進(jìn)程過去知識(shí)的統(tǒng)計(jì)資料還不能判定進(jìn)程前進(jìn)與否,但通過使進(jìn)程老化可預(yù)防饑餓現(xiàn)象。這意味著對(duì)每一進(jìn)程管理需設(shè)置一個(gè)撤消計(jì)數(shù)器,而且在選擇進(jìn)程作為搶占/撤消對(duì)象時(shí)把它作為開銷因素的一部分來考慮.【例28】單資源類的banker算法可從一般的banker算法獲得,這只需將各數(shù)組的維數(shù)減為1即可.試舉例說明,多資源類的baI蟲er算法不能通過把單資源類的banker算法單獨(dú)地應(yīng)用到每一資源類來實(shí)現(xiàn).解:考慮一系統(tǒng)它具有資源類A,B,C和兩個(gè)進(jìn)程Po,pl以及表7.2所示的瞬時(shí)狀態(tài).該系統(tǒng)不是處于安全態(tài)。但是,若把單資源類的banker算法單獨(dú)地應(yīng)用到每一資源類,那么,就得到序列P0,p1對(duì)資源A滿足安全性要求:序列對(duì)資源B滿足安全性要求:序列Po,P1對(duì)資源C滿足安全性要求.表7-2allocationMaxNeedAvailable12223112111112233121這樣,該系統(tǒng)就應(yīng)處于安全態(tài)了,顯然與實(shí)際情況不符.二計(jì)算題例76試列出兩種破壞循環(huán)等待條件的方法以防止死鎖發(fā)生.解假定對(duì)系統(tǒng)資源已進(jìn)行了線性定序,則有以下兩種破壞循環(huán)等待條件:(1)進(jìn)程只能申請(qǐng)具有較高序號(hào)數(shù)的資源:(2)當(dāng)進(jìn)程申請(qǐng)某個(gè)資源時(shí),它必須釋放所有較低序號(hào)數(shù)的資源?!纠?8】硬件并不總是可靠的.若設(shè)備發(fā)生故障,那么,它對(duì)處理死鎖的三種方法(預(yù)防、避免和檢測(cè))有何影響?解:對(duì)死鎖預(yù)防無影響:對(duì)死鎖避免有影響,該系統(tǒng)可能不再處于安全狀態(tài):對(duì)死鎖檢測(cè)有影響,雖不會(huì)產(chǎn)生死鎖,但必須更新等待圖以反映系統(tǒng)狀態(tài)的變更.【例19】試列出資源的四種類型,并給出其對(duì)應(yīng)的處理死鎖的典型方法.解:(1)內(nèi)部資源:資源定序方法.(2)主存:搶占和交換的方法(3)作業(yè)資源:死鎖避免方法(4)可交換空間:預(yù)分法.【例20】適當(dāng)?shù)腟pooling技術(shù)可能消除死鎖.它肯定可以消除讀卡機(jī)、繪圖機(jī)、行打機(jī)等的競(jìng)爭(zhēng),甚至對(duì)磁帶也可以采用Spooling技術(shù)。這樣剩下的資源是CPU時(shí)間、存儲(chǔ)區(qū)和盤空間。問:是否會(huì)出現(xiàn)涉及到這些資源的死鎖?若會(huì),那么在什么情況下發(fā)生死鎖?哪種(些)處理死鎖的方法最適合于處理這類死鎖?.解:仍然可能出現(xiàn)死鎖.例如,進(jìn)程pl占有一些由進(jìn)程P2所請(qǐng)求的內(nèi)存頁面,而P2占有CPU且pl正在申請(qǐng)CPU.消除這類死鎖的最好方法是搶占式方法.。【例14】產(chǎn)生死鎖的四個(gè)必要條件是否都是獨(dú)立的?能否給出一個(gè)必要條件的最小集合?解:四個(gè)必要條件并非是絕對(duì)獨(dú)立的。占有并等待條件蘊(yùn)含互斥條件:循環(huán)等待條件蘊(yùn)含互斥、占有并等待以及非搶占條件.前三個(gè)條件是導(dǎo)致死鎖的必要而非充分條件,它們潛藏著第四個(gè)條件.這四個(gè)條件一起構(gòu)成了死鎖的充要條件.【例15】什么是饑餓?死鎖和饑餓的主要差別是什么?解:饑餓是系統(tǒng)并沒有死鎖,但至少有一個(gè)進(jìn)程被無限期地推遲.饑餓不同于死鎖.死鎖是這樣一種情形,其中某進(jìn)程正等待一個(gè)決不會(huì)發(fā)生的事件.而饑餓現(xiàn)象是指某進(jìn)程正等待這樣一個(gè)事件,它發(fā)生了但總是受到其他進(jìn)程的影響,以致一直輪不到(或很難輪到)該進(jìn)程.【例16】設(shè)計(jì)一個(gè)不可能出現(xiàn)饑餓和死鎖的過河算法.解:利用紅綠燈和一個(gè)計(jì)數(shù)器.當(dāng)有人開始過河時(shí),計(jì)數(shù)器增值:過河后該計(jì)數(shù)器減值.僅當(dāng)該計(jì)數(shù)器之值為0時(shí)才開綠燈,否則為紅燈,岸上的人看到綠燈方能過河.2.引起進(jìn)程調(diào)度的因素有哪些?答:引起進(jìn)程調(diào)度的因素有:(1)進(jìn)程正常終止或異常終止。(2)正在執(zhí)行的進(jìn)程因某種原因而阻塞:提出I/O 請(qǐng)求后被阻塞:在調(diào)用P操作時(shí)因資源不足而阻塞:因其他原因執(zhí)行block原語而阻塞等。(3)在引入時(shí)間片的系統(tǒng)中,時(shí)間片用完。(4)在搶占調(diào)度方式中,就緒隊(duì)列中某進(jìn)程的優(yōu)先權(quán)變得比當(dāng)前正在執(zhí)行的進(jìn)程高,或者有優(yōu)先權(quán)更高的進(jìn)程進(jìn)入就緒隊(duì)列。1.為什么說采用有序資源分配法不會(huì)產(chǎn)生死鎖?解:為了便于說明,不妨設(shè)系統(tǒng)中有m類資源,n個(gè)進(jìn)程,分別用R1,R2,Rm(1,2,m可看作資源編號(hào))和P1,P2,pn表示。根據(jù)有序資源分配法可知,進(jìn)程申請(qǐng)資源時(shí)必須按照資源編號(hào)的升序進(jìn)行,即任何進(jìn)程在占有了Ri類資源后,再申請(qǐng)的資源Rj的編號(hào)j一定大于i。因此在任一時(shí)刻,系統(tǒng)中至少存在一個(gè)進(jìn)程Pk,它占有了較高編號(hào)的資源Rh且它繼續(xù)請(qǐng)求的資源必然是空閑的,因而Pk可以一直向前推進(jìn)直至完成,當(dāng)PK運(yùn)行完成后即會(huì)釋放它占有的所有資源:在PK完成之后,剩下的進(jìn)程集合中同樣會(huì)存在一個(gè)進(jìn)程,它占有了較高編號(hào)的資源,且它繼續(xù)請(qǐng)求的資源必然是空閑的,因而它可以一直向前推進(jìn)直至完成:以此類推,所有進(jìn)程均可運(yùn)行完成,故不會(huì)發(fā)生死鎖。【例12】解除死鎖,在選擇撤消進(jìn)程或被搶占資源的進(jìn)程時(shí),可考慮哪些因素?.答:可考慮的因素有:(1)優(yōu)先權(quán);(2)進(jìn)程己執(zhí)行的時(shí)間;(3)估計(jì)的剩余執(zhí)行時(shí)間;(4)己產(chǎn)生的輸出量;(5)已獲得的資源量和資源類型;(6)還需要的資源量;(7)進(jìn)程的類型(批處理型或交互型);(8)需要被撤消的進(jìn)程數(shù)等。3.在生產(chǎn)者和消費(fèi)者問題中,如果對(duì)調(diào)生產(chǎn)者進(jìn)程中的兩個(gè)P操作和兩個(gè)V操作,則可能發(fā)生什么情況?解:如果對(duì)調(diào)生產(chǎn)者進(jìn)程中的兩個(gè)P操作和兩個(gè)V操作,則生產(chǎn)者和消費(fèi)者問題的同步描述為:int full=0; /*滿緩沖單元的數(shù)目*/int empty=n; /*空緩沖單元的數(shù)目*/int mutex=1; /*對(duì)有界緩沖區(qū)進(jìn)行操作的互斥信號(hào)量*/main( )parbeginproducer ( );consumer ( );parendproducer ( )while (生產(chǎn)未完成)生產(chǎn)一個(gè)產(chǎn)品:p(mutex);p(empty);送一個(gè)產(chǎn)品到有界緩沖區(qū);vfull;v(mutex;consumer ( )while (還要繼續(xù)消費(fèi)pfull;pmutex;從有界緩沖區(qū)中取產(chǎn)品:v(mutex:v(empty);消費(fèi)一個(gè)產(chǎn)品:由于V操作是釋放資源,因此對(duì)調(diào)V操作的次序無關(guān)緊要。而對(duì)調(diào)P操作的次序則可能導(dǎo)致死鎖。這是因?yàn)閷?duì)調(diào)P操作后,有可能出現(xiàn)這樣一種特殊情況:在某一時(shí)刻緩沖區(qū)中己裝滿了產(chǎn)品且緩沖區(qū)中無進(jìn)程工作(這時(shí)信號(hào)量如full的值為 n,信號(hào)量empty的值為0,信號(hào)量mutex的值為1,若系統(tǒng)此時(shí)調(diào)度生產(chǎn)者進(jìn)程運(yùn)行,生產(chǎn)者進(jìn)程又生產(chǎn)了一個(gè)產(chǎn)品,它執(zhí)行P(mutex)并順利進(jìn)入臨界區(qū)(這時(shí)mutex值為0),隨后它執(zhí)行p(empty)時(shí)因沒有空閑緩沖單元而受阻等待,等待消費(fèi)者進(jìn)程進(jìn)入緩沖區(qū)取走產(chǎn)品以釋放出緩沖單元;消費(fèi)者進(jìn)程執(zhí)行p(full)后再執(zhí)行p(mutex時(shí),因緩沖區(qū)被生產(chǎn)者進(jìn)程占據(jù)而無法進(jìn)入。這樣就形成了生產(chǎn)者進(jìn)程。在占有臨界資源的情況下,等待消費(fèi)者進(jìn)程取走產(chǎn)品,而消費(fèi)者進(jìn)程又無法進(jìn)入臨界區(qū)取走產(chǎn)品的僵局,此時(shí)兩進(jìn)程陷入死鎖。6.在銀行家算法中,若出現(xiàn)下述資源分配情況:進(jìn) 程AllocationNeedAvailableA B C DA B C DA B C DP0P1P2P3P40 0 3 21 0 0 01 3 5 40 3 3 20 0 1 40 0 1 21 7 5 02 3 5 60 6 5 20 6 5 61 6 2 2試問:(1)該狀態(tài)是否安全?(2)如果進(jìn)程P2提出請(qǐng)求Request(0,2,2,2后,系統(tǒng)能否將資源分配給它?解:(1)利用銀行家算法對(duì)此時(shí)刻的資源分配情況進(jìn)行分析,可得此時(shí)刻的安全性分析情況。 進(jìn) 程WorkNeedAllocationWork+AllocationFinishA B C DA B C DA B C D A B C D P0P3P4P1P21 6 2 21 6 5 41 9 8 61 9 9 102 9 9 100 0 1 20 6 5 20 6 5 61 7 5 02 3 5 60 0 3 20 3 3 20 0 1 41 0 0 01 3 5 41 6 5 41 9 8 61 9 9 102 9 9 103 12 14 14truetruetryetruetrue從上述分析中可以看出,此時(shí)存在一個(gè)安全序列P0,P3,P4,P1,P2,故該狀態(tài)是安全的。(2)P2提出請(qǐng)求Request2(1,2,2,2),按銀行家算法進(jìn)行檢查: Request2(1,2,2,2)Need2(2,3,5,6) Request2(1,2,2,2)Available(1,6,2,2) 試分配并修改相應(yīng)數(shù)據(jù)結(jié)構(gòu),資源分配情況如下:進(jìn) 程AllocationNeedAvailableA B C DA B C DA B C DP0P1P2P3P40 0 3 21 0 0 02 5 7 60 3 3 20 0 1 40 0 1 21 7 5 01 1 3 40 6 5 20 6 5 60 4 0 0再利用安全性算法檢查系統(tǒng)是否安全,可用資源Available (0,4,0,0)已不能滿足任何進(jìn)程的需要,故系統(tǒng)進(jìn)入不安全狀態(tài),此時(shí)系統(tǒng)不能將資源分配給P2。7有相同類型的5個(gè)資源被4個(gè)進(jìn)程所共享,且每個(gè)進(jìn)程最多需要2個(gè)這樣的資源就可以運(yùn)行完畢。試問該系統(tǒng)是否會(huì)由于對(duì)這種資源的競(jìng)爭(zhēng)而產(chǎn)生死鎖。解:該系統(tǒng)不會(huì)由于對(duì)這種資源的競(jìng)爭(zhēng)而產(chǎn)生死鎖。因?yàn)樵谧顗那闆r下,每個(gè)進(jìn)手里都需要2個(gè)這樣的資源,且每個(gè)進(jìn)程都己申請(qǐng)到了1個(gè)資源,那么系統(tǒng)中還剩下1個(gè)可用資源。無論系統(tǒng)為了滿足哪個(gè)進(jìn)程的資源申請(qǐng)而將資源分配給該進(jìn)程,都會(huì)因?yàn)樵撨M(jìn)程己獲得了它所需要的全部資源而確保它運(yùn)行完畢,從而可將它占有的2個(gè)資源歸還給系統(tǒng),這就保證了其余三個(gè)進(jìn)程能順利運(yùn)行。由此可知,該系統(tǒng)不會(huì)由于對(duì)這種資源的競(jìng)爭(zhēng)而產(chǎn)生死鎖。8.己知某系統(tǒng)中的所有資源是相同的,系統(tǒng)中的進(jìn)程嚴(yán)格按照一次一個(gè)的方式申請(qǐng)或薛放資源。在此系統(tǒng)中,沒有進(jìn)程所需要的資源數(shù)量超過系統(tǒng)的資源總擁有數(shù)量,試對(duì)下面列出的各種情況說明是否會(huì)發(fā)生死鎖。情況序號(hào)系統(tǒng)中進(jìn)程數(shù)資源總量abcd12222123解:情況a:因系統(tǒng)中僅在1個(gè)進(jìn)程,且系統(tǒng)中資源總數(shù)為2,由題目所給條件可知,該進(jìn)程的最大資源需求量不超過2,顯然情況a不會(huì)出現(xiàn)死鎖。情況b:因系統(tǒng)中存在2個(gè)進(jìn)程,且系統(tǒng)中資源總數(shù)為1,由題目所給條件可知,每個(gè)進(jìn)程的最大資源需求量不超過1。不妨設(shè)兩個(gè)進(jìn)程的最大資源需求量為1,若系統(tǒng)將資源分配給其中的一個(gè)進(jìn)程,則此進(jìn)程已獲得它所需要的所有資源并將運(yùn)行完畢,從而可將分配給它的資源歸還給系統(tǒng),使另一個(gè)進(jìn)程也能順利執(zhí)行完成,故不會(huì)發(fā)生死鎖。情況c:因系統(tǒng)中存在2個(gè)進(jìn)程,且系統(tǒng)中資源總數(shù)為2,由題目所給條件可知,每個(gè)進(jìn)程的最大資源需求量不超過2。假設(shè)兩個(gè)進(jìn)程的最大資源需求量為2,若系統(tǒng)將資源分配給其中的一個(gè)進(jìn)程,則此進(jìn)程已獲得它所需要的所有資源并將運(yùn)行完畢,從而可將分配給它的資源歸還給系統(tǒng),使另一個(gè)進(jìn)程也能順利執(zhí)行完成,以這種方式分配資源不會(huì)發(fā)生死鎖:若系統(tǒng)將資源分配給每個(gè)進(jìn)程1個(gè),在此情況下,每個(gè)進(jìn)程均獲得1個(gè)資源且系統(tǒng)中己沒有空閑資源,當(dāng)其中的一個(gè)進(jìn)程再次申請(qǐng)1個(gè)資源時(shí),因系統(tǒng)中無空閑資源而使其等待,另一個(gè)進(jìn)程的情況也是如此,因此以這種方式分配資源會(huì)發(fā)生死鎖。情況d:因系統(tǒng)中存在2個(gè)進(jìn)程,且系統(tǒng)中資源總數(shù)為3,由題目所給雜件可知,每個(gè)進(jìn)程的最大資源需求量不超過3。假設(shè)兩個(gè)進(jìn)程的最大資源需求量為3,若系統(tǒng)將資源分配給其中的一個(gè)進(jìn)程,則此進(jìn)程已獲得它所需要的所有資源并將運(yùn)行完畢,從而可將分配給它的資源歸還給系統(tǒng),使另一個(gè)進(jìn)程也能順利執(zhí)行完成,以這種方式分配資源不會(huì)發(fā)生死鎖:若系統(tǒng)將資源分配給其中一個(gè)進(jìn)程1個(gè),另一個(gè)進(jìn)程2個(gè),在此情況下,每個(gè)進(jìn)程均獲得部分資源且系統(tǒng)中已沒有空閑資源,當(dāng)其中的一個(gè)進(jìn)程再次申請(qǐng)資源時(shí),因系統(tǒng)中無空閑資源而使其等待,另一個(gè)進(jìn)程的情況也是如此,因此以這種方式分配資源會(huì)發(fā)生死鎖。9.考慮下列資源分配策略:對(duì)資源的申請(qǐng)和釋放可以在任何時(shí)候進(jìn)行。如果一個(gè)進(jìn)程提出資源請(qǐng)求時(shí)得不到滿足,若此時(shí)無由于等待資源而被阻塞的進(jìn)程,則自己就被阻塞:若此時(shí)已有等待資源而被阻塞的進(jìn)程,則檢查所有由于等待資源而被阻塞的進(jìn)程。如果它們有申請(qǐng)進(jìn)程所需要的資源,則將這些資源取出分配給申請(qǐng)進(jìn)程。例如,考慮一個(gè)有3類資源的系統(tǒng),系統(tǒng)所有可用資源為(4,2,2,進(jìn)程A申請(qǐng)(2,2,1),可滿足:進(jìn)程B申請(qǐng)(1,0,1),可滿足:若A再申請(qǐng)(0,0,1),則被阻塞。此時(shí),若C請(qǐng)求(2,0,0),它可以分到剩余資源(1,0,0),并從A已分到的資源中獲得一個(gè)資源,于是進(jìn)程A的分配向量變成(1,2,1)而需求向量變成(1,0,1)。這種分配策略會(huì)導(dǎo)致死鎖嗎?如果會(huì),請(qǐng)舉一個(gè)例子:如果不會(huì),請(qǐng)說明產(chǎn)生死鎖的哪一個(gè)必要條件不成立?這種分配方式會(huì)導(dǎo)致某些進(jìn)程的無限等待嗎?為什么?【分析及相關(guān)知識(shí)】所謂死鎖是指多個(gè)進(jìn)程因競(jìng)爭(zhēng)資源而造成的一種僵局,若無外力作用,這些進(jìn)程都將無法向前推進(jìn)。死鎖是計(jì)算機(jī)系統(tǒng)和進(jìn)程所處的一種狀態(tài)。發(fā)生死鎖的必要條件有以下四個(gè):互斥條件;不剝奪條件;部分分配條件;環(huán)路條件。解:本題所給的資源分配策略不會(huì)產(chǎn)生死鎖。因?yàn)楸绢}給出的分配策略規(guī)定若一進(jìn)程的資源得不到滿足,則檢查所有由于等待資源而被阻塞的進(jìn)程,如果它們有申請(qǐng)進(jìn)程所需要的資源,則將這些資源取出分配給申請(qǐng)進(jìn)程。從而破壞了產(chǎn)生死鎖必要條件中的不剝奪條件,這樣系統(tǒng)就不會(huì)產(chǎn)生死鎖。這種方法會(huì)導(dǎo)致某些進(jìn)程無限期的等待。因?yàn)楸蛔枞M(jìn)程的資源可以被剝奪,所以被阻塞進(jìn)程所擁有的資源數(shù)量在其被喚醒之前只可能減少。若系統(tǒng)中不斷出現(xiàn)其他進(jìn)程申請(qǐng)資源,這些進(jìn)程申請(qǐng)的資源與被阻塞進(jìn)程申請(qǐng)或擁有的資源類型相同且不被阻塞,則系統(tǒng)無法保證被阻塞進(jìn)程一定能獲得所需要的全部資源。例如,本題中的進(jìn)程A申請(qǐng)(2,2,1后再申請(qǐng)(0,0,1被阻塞。此后,進(jìn)程C又剝奪了進(jìn)程A的一個(gè)資源,使得進(jìn)程A擁有的資源變?yōu)?,2,1,其需求向量為(1,0,1。之后,若再創(chuàng)建的進(jìn)程總是只申請(qǐng)第1和第3類資源,總是占有系統(tǒng)所剩下的第1和第3類資源的全部且不阻塞,那么進(jìn)程A將會(huì)無限期地等待。10.一個(gè)操作系統(tǒng)有20個(gè)進(jìn)程,競(jìng)爭(zhēng)使用65個(gè)同類資源,申請(qǐng)方式是逐個(gè)進(jìn)行的,一旦某進(jìn)程獲得它所需要的全部資源,則立即歸還所有資源。每個(gè)進(jìn)程最多使用3個(gè)資源。若僅考慮這類資源,該系統(tǒng)有無可能產(chǎn)生死鎖,為什么?解:在本題中,若僅考慮這一類資源的分配,則不會(huì)產(chǎn)生死鎖。因?yàn)樗梨i產(chǎn)生的原因有兩點(diǎn):系統(tǒng)資源不足或進(jìn)程推進(jìn)順序不當(dāng)。在本題介紹的系統(tǒng)中,進(jìn)程所需要的最大資源數(shù)為:2OX3=60,而系統(tǒng)中共有該類資源65個(gè),其資源數(shù)目己足夠系統(tǒng)內(nèi)的各進(jìn)程使用,因此絕不可能發(fā)生死鎖。11.一臺(tái)計(jì)算機(jī)有8臺(tái)磁帶機(jī)。它們由N個(gè)進(jìn)程競(jìng)爭(zhēng)使用,每個(gè)進(jìn)程可能需要3臺(tái)磁帶機(jī)。請(qǐng)問N為多少時(shí),系統(tǒng)沒有死鎖危險(xiǎn),并說明原因。解:當(dāng)N為1,2,3時(shí),系統(tǒng)沒有產(chǎn)生死鎖的危險(xiǎn)。因?yàn)?當(dāng)系統(tǒng)中只有1個(gè)進(jìn)程時(shí),它最多需要3臺(tái)磁帶機(jī),而系統(tǒng)有8臺(tái)磁帶機(jī),其資源數(shù)目己足夠系統(tǒng)內(nèi)的1個(gè)進(jìn)程使用,因此絕不可能發(fā)生死鎖:當(dāng)系統(tǒng)中有2個(gè)進(jìn)程時(shí),最多需要6臺(tái)磁帶機(jī),而系統(tǒng)有8臺(tái)磁帶機(jī),其資源數(shù)目也足夠系統(tǒng)內(nèi)的2個(gè)進(jìn)程使用,因此也不可能發(fā)生死鎖:當(dāng)系統(tǒng)中有3個(gè)進(jìn)程時(shí),在最壞情況下,每個(gè)進(jìn)程都需要3個(gè)這樣的資源,且假定每個(gè)進(jìn)程都己申請(qǐng)到了2個(gè)資源,那么系統(tǒng)中還剩下2個(gè)可用資源,無論系統(tǒng)為了滿足哪個(gè)進(jìn)程的資源申請(qǐng)而將資源分配給該進(jìn)程,都會(huì)因?yàn)樵撨M(jìn)程已獲得了它所需要的全部資源而確保它運(yùn)行完畢,從而可將它占有的3個(gè)資源歸還給系統(tǒng),這就保證了其余進(jìn)程能順利運(yùn)行完畢。由此可知,當(dāng)N為1,2,3時(shí),該系統(tǒng)不會(huì)由于對(duì)這種資源的競(jìng)爭(zhēng)而產(chǎn)生死鎖。二、計(jì)算題【例12】在銀行家算法中,若出現(xiàn)下面的資源分配情況:Process Allocation Need AvailablePO 0 0 3 2 0 0 1 2 1 6 2 2P1 1 0 0 0 1 7 5 0P2 1 3 5 4 2 3 5 6P3 0 0 3 2 0 6 5 2 P4 0 0 1 4 0 6 5 6試問:(1)該狀態(tài)是否安全?(2)若進(jìn)程P2提出請(qǐng)求Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?(3)如果系統(tǒng)立即滿足P2的上述請(qǐng)求,請(qǐng)間,系統(tǒng)是否立即進(jìn)入死鎖狀態(tài)?答:(1)利用安全性算法對(duì)上面的狀態(tài)進(jìn)行分析(如表33所示),找到了一個(gè)安全序列P0,P3,P4,P1,P2,故系統(tǒng)是安全的。(2)P2發(fā)出請(qǐng)求向量Request(1,2,2,2)后,系統(tǒng)按銀行家算法進(jìn)行檢查:Request2(1,2,2,2)Need2(2,3,5,6);Request2(1,2,2,2) Available(1,6,2,2);系統(tǒng)先假定可為P2分配資源,并修改Available,Allocation2和Need2向量:Avmilable=(O,4,0,0)Allocation2=(2,5,7,6)Need2=(1,1,3,4)進(jìn)行安全性檢查:此時(shí)對(duì)所有的進(jìn)程,條件NeediAvailable(O,4,0,0)都不成立,即Available不能滿足任何進(jìn)程的請(qǐng)求,故系統(tǒng)進(jìn)入不安全狀態(tài)。因此,當(dāng)進(jìn)程P2提出請(qǐng)求Request(1,2,2,2)后,系統(tǒng)不能將資源分配給它。表3.3安全性檢查過程資源情況進(jìn)程WorkA B C DNeedA B C DAllocationA B C D Work+AllocationA B C DFinishP0P3P4P1P21 6 2 21 6 5 41 6 8 61 6 9 102 6 9 100 0 1 20 6 5 20 6 5 61 7 5 02 3 5 60 0 3 20 0 3 20 0 1 41 0 0 01 3 5 41 6 5 41 6 8 6 1 6 9 102 6 9 103 9 14 14TrueTrueTrueTrueTrue(3)系統(tǒng)立即滿足進(jìn)程P2的請(qǐng)求(1,2,2,2)后,并沒有馬上進(jìn)入死鎖狀態(tài)。因?yàn)?,此時(shí)上述進(jìn)程并沒有申請(qǐng)新的資源,并因得不到資源而進(jìn)入阻塞狀態(tài)。只有當(dāng)上述進(jìn)程提出新的請(qǐng)求,并導(dǎo)致所有沒執(zhí)行完的多個(gè)進(jìn)程因得不到資源而阻塞時(shí),系統(tǒng)才進(jìn)入死鎖狀態(tài)。12.設(shè)系統(tǒng)中有3種類型的資源(A,B,C)和5個(gè)進(jìn)程P1、P2、P3、P4、P5,A資源的數(shù)量為17,B資源的數(shù)量為5,C資源的數(shù)量為20。在To時(shí)刻系統(tǒng)狀態(tài)見表4.5所示。系統(tǒng)采用銀行家算法實(shí)施死鎖避免策略。進(jìn) 程最大資源需求量已分配資源數(shù)量A B C A B C P1P2P3P4P55 5 95 3 64 0 114 2 54 2 42 1 14 0 24 2 52 0 43 1 4To時(shí)刻是否為安全狀態(tài)?若是,請(qǐng)給出安全序列。在To時(shí)刻若進(jìn)程P2請(qǐng)求資源(0,3,4,是否能實(shí)施資源分配?為什么?在的基礎(chǔ)上,若進(jìn)程P4請(qǐng)求資源。,0,1,是否能實(shí)施資源分配?為什么?在的基礎(chǔ)上,若進(jìn)程P1請(qǐng)求資源(0,2,0,是否能實(shí)施資源分配?為什么?解:由題目所給出的最大資源需求量和己分配資源數(shù)量,可以計(jì)算出To時(shí)刻各進(jìn)程的資源需求量Need,Need=最大資源需求量一分配資源數(shù)量:進(jìn) 程資源需求量A B C P1P2P3P4P53 4 7 1 3 4 0 0 6 2 2 11 1 0(1)利用銀行家算法對(duì)此時(shí)刻的資源分配情況進(jìn)行分析,可得此時(shí)刻的安全序性分析情況:進(jìn) 程WorkA B CNeedA B C AllocationA B CWork+AllocationA B C FinishP0P3P4P1P22 3 35 7 47 4 1111 4 1615 4 181 1 02 2 10 0 61 3 43 4 73 1 42 0 44 0 54 0 22 1 25 4 77 4 1111 4 615 4 817 5 20TrueTrueTrueTrueTrue從上述情況分析中可以看出,此時(shí)存在一個(gè)安全序列p5,P4,p3,P2,Pl,故該狀態(tài)是安全的。在To時(shí)刻若進(jìn)程P2請(qǐng)求資源(0,3,4),因請(qǐng)求資源數(shù)(0,3,4剩余資源數(shù)(2,2,3),所以不能分配。在的基礎(chǔ)上,若進(jìn)程P4請(qǐng)求資源(2,0,1),按銀行家算法進(jìn)行檢查:P4請(qǐng)求資源(2,0,1)=P4資源需求量(2,2,1)P4請(qǐng)求資源(2,0,1)=剩余資源數(shù)(2,3,3試分配并修改相應(yīng)數(shù)據(jù)結(jié)構(gòu),資源分配情況如下:進(jìn) 程AllocationA B CNeedA B C AvailableA B CP0P3P4P1P22 1 24 0 24 0 54 0 53 1 43 4 71 3 40 0 60 2 01 1 00 3 2 再利用安全性算法檢查系統(tǒng)是否安全,可得此時(shí)刻的安全性分析情況:進(jìn) 程WorkA B CNeedA B CAllocationA B CWork+AllocationA B CFinishP4P5P3P2P10 3 24 3 77 4 1111 4 1615 4 180 2 01 1 00 0 61 3 43 4 74 0 53 1 44 0 54 0 22 1 25 3 77 4 1111 4 615 4 817 5 20TrueTrueTrueTrueTrue從上述情況分析中可以看出,此時(shí)存在一個(gè)安全序列P4,P5,P3,P2,P1,故該狀態(tài)是安全的,可以立即將P4所申請(qǐng)的資源分配給它。在的基礎(chǔ)上,若進(jìn)程Pl請(qǐng)求資源(0,2,0,按銀行家算法進(jìn)行檢查:P1請(qǐng)求資源(0,2,0)=P1資源需求量(3,4,7)P1請(qǐng)求資源(0,2,0=剩余資源數(shù)(0,3,2)試分配并修改相應(yīng)數(shù)據(jù)結(jié)構(gòu),資源分配情況如下:進(jìn) 程AllocationA B CNeedA B C AvailableA B CP0P3P4P1P23 3 24 0 24 0 54 0 53 1 43 2 71 3 40 0 60 2 01 1 00 1 2再利用安全性算法檢查系統(tǒng)是否安全,可用資源Available (0,1,2)已不能滿足任何進(jìn)程的資源需求,故系統(tǒng)進(jìn)入不安全狀態(tài),此時(shí)系統(tǒng)不能將資源分配給P1。16.假設(shè)有一臺(tái)計(jì)算機(jī),它有l(wèi)M內(nèi)存,操作系統(tǒng)占用200K,每個(gè)用戶進(jìn)程也占用200K。用戶進(jìn)程等待I/O的時(shí)間為80%,若增加lM內(nèi)存,則CPU的利用率將提高多少?【分析及相關(guān)知識(shí)】多道程序設(shè)計(jì)技術(shù)是指同時(shí)把多個(gè)作業(yè)放入內(nèi)存并允許它交替執(zhí)行,共享系統(tǒng)中的各類資源,當(dāng)一道程序因某種原因(如I/0請(qǐng)求)而暫停執(zhí)行時(shí),CPU立即轉(zhuǎn)去執(zhí)行另一道程序。從上述定義可以看出多道程序系統(tǒng)具有多道、宏觀上并行、微觀上串行的特點(diǎn)。多道程序設(shè)計(jì)技術(shù)使CPU的利用率大為提高。設(shè)在內(nèi)存中有N個(gè)進(jìn)程,每個(gè)進(jìn)程等待I/0的百分比是P,那么N個(gè)進(jìn)程同時(shí)等待I/0的概率是pn(此時(shí)CPU空閑),即CPU的利用率為1-pn,由此可見CPU的利用率是N的函數(shù),稱為多道程序度。解:由題目所給條件可知,當(dāng)前1M內(nèi)存可支持4個(gè)用戶進(jìn)程,由于每個(gè)用戶進(jìn)程等待I/O的時(shí)間為80%,故CPU的利用率為: 1一(80%)4=1一(0.8)4=59%若增加1M內(nèi)存,則系統(tǒng)中可同時(shí)運(yùn)行9個(gè)進(jìn)程,則CPU的利用率為:1一(0.8)9=87%故

溫馨提示

  • 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)論