《操作系統(tǒng) 習(xí)題課-死鎖、內(nèi)存管理FF》由會(huì)員分享,可在線閱讀,更多相關(guān)《操作系統(tǒng) 習(xí)題課-死鎖、內(nèi)存管理FF(48頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,操作系統(tǒng)概念習(xí)題課,-,死鎖與內(nèi)存管理,2016.5.12,死鎖,概念:,多道程序環(huán)境下,多個(gè)進(jìn)程可能競(jìng)爭(zhēng)一定數(shù)量的資源。進(jìn)程所申請(qǐng)的資源被其他等待進(jìn)程占有,該進(jìn)程可能無法改變其狀態(tài),成為死鎖。,必要條件:,資源互斥,占有并等待,非搶占,循環(huán)等待,死鎖,明確死鎖產(chǎn)生的四個(gè)必要條件,明確死鎖的處理方法,明確死鎖預(yù)防的處理方法,明確死鎖避免的處理方法(包括安全狀態(tài)、死鎖狀態(tài)關(guān)系等),死鎖,處理方法,死鎖預(yù)防,死鎖避免,死鎖檢
2、測(cè),忽略,互斥,-,通常無計(jì)可施,占有并等待,-,靜態(tài)分配,非搶占,-,允許搶占,循環(huán)等待,-,有序申請(qǐng)資源,安全狀態(tài)和安全隊(duì)列,資源分配圖算法,銀行家算法,死鎖恢復(fù),終止進(jìn)程,資源搶占,單實(shí)例,等待圖,多實(shí)例,類似銀行家,檢測(cè)算法的應(yīng)用問題,選擇題,某系統(tǒng)中有三個(gè)并發(fā)進(jìn)程,都需要同類資源,4,個(gè),試問該系統(tǒng)不會(huì)發(fā)生死鎖的最少資源數(shù)是,_,A.9 B.10 C.11 D.12,答案:,B,【,例,】,某系統(tǒng)采用了銀行家算法,則下列敘述正確的是(),A,系統(tǒng)處于不安全狀態(tài)時(shí)一定會(huì)發(fā)生死鎖,B,系統(tǒng)處于不安全狀態(tài)時(shí)可能會(huì)發(fā)生死鎖,C,系統(tǒng)處于安全狀態(tài)時(shí),可能會(huì)發(fā)生死鎖,D,系統(tǒng)處于安全狀態(tài)時(shí),一定
3、會(huì)發(fā)生死鎖,【,解答,】B,【,例,】,在下列選項(xiàng)中,屬于解除死鎖的方法是(),A,剝奪資源法,B,資源分配圖算法,C,銀行家算法,D,資源靜態(tài)分配法,【,解答,】A,另一種方法是,終止進(jìn)程,=,資源搶占,【,例,】,資源靜態(tài)分配法可以預(yù)防死鎖的發(fā)生,因它使死鎖四個(gè)條件中的()不成立,A,互斥條件,B,占有并等待,C,非搶占,D,循環(huán)等待,【,解答,】B,【,例,】,下面,4,個(gè)選項(xiàng)中,屬于處理死鎖的基本方法是,(),A,資源獨(dú)占,B,資源共享,C,進(jìn)程并發(fā),D,預(yù)防死鎖,【,答案,】D,【,例,】,在銀行家算法的數(shù)據(jù)結(jié)構(gòu)中,其中最大需求矩陣,Max,分配矩陣,Allocation,和需求矩陣
4、,Need,三者之間的關(guān)系是,(),A Needi,j=Allocationi,j-Maxi,j,B Needi,j=Maxi,j+Allocationi,j,C Needi,j=Maxi,j-Allocationi,j,D Needi,j=Maxi,j*Allocationi,j,【,答案,】C,【,例,】,系統(tǒng)死鎖可利用()來描述。,A,進(jìn)程,B,程序,C,系統(tǒng)流程圖,D,資源分配圖,【,答案,】D,【,例,】,按序分配資源是為了(),A,死鎖的檢測(cè),B,死鎖的防止,C,死鎖的避免,D,死鎖的解除,【,答案,】B,【,例,】,死鎖的預(yù)防是根據(jù)()而采取措施實(shí)現(xiàn)的,A,配置足夠的系統(tǒng)資源,B
5、,使進(jìn)程的推進(jìn)順序合理,C,破壞死鎖的四個(gè)必要條件之一,D,防止系統(tǒng)進(jìn)入不安全狀態(tài),【,解答,】C,【,例,】,在下列解決死鎖的辦法中,屬于死鎖預(yù)防策略的是(),A,化簡(jiǎn)進(jìn)程的資源分配圖,B,銀行家算法,C,資源的有序分配法,D,死鎖檢測(cè)法,【,解答,】C,【,例,】,死鎖產(chǎn)生的必要條件有,4,個(gè),要預(yù)防死鎖發(fā)生,必須破壞死鎖的四個(gè)必要條件之一,但破壞()條件是不太實(shí)際的。,實(shí)現(xiàn)起來最簡(jiǎn)單的條件是(),A,請(qǐng)求和保持,B,互斥,C,不剝奪,D,環(huán)路等待,【,解答,】B,。因?yàn)檫@是由設(shè)備的固有特性決定的,A,采用靜態(tài)分配方法實(shí)現(xiàn),在進(jìn)程開始運(yùn)行前,將它需要的全部資源分配給它。在運(yùn)行過程中,不再請(qǐng)
6、求。這是早期操作系統(tǒng)采用的方法,但資源的利用率不高。,【,例,】,通過撤消進(jìn)程可進(jìn)行死鎖恢復(fù),還可以采用()方法解除死鎖,A,阻塞進(jìn)程,B,資源剝奪,C,提高進(jìn)程優(yōu)先級(jí),D,降低進(jìn)程優(yōu)先級(jí),【,解答,】B,采用資源剝奪法,將剝奪的資源分配給死鎖進(jìn)程,以解決死鎖。,【,例,】,以下關(guān)于資源分配圖的描述中正確的是(),A,有向邊包含進(jìn)程指向資源類的分配邊和資源類指向進(jìn)程申請(qǐng)邊兩類,B,矩陣框表示進(jìn)程,其中的原點(diǎn)表示申請(qǐng)同一類資源的各個(gè)進(jìn)程,C,圓圈結(jié)點(diǎn)表示資源類,D,資源分配圖是一個(gè)有向圖,用于表示某時(shí)刻系統(tǒng)資源與進(jìn)程之間的狀態(tài),【,答案,】D,【,例,】,死鎖的,4,個(gè)必要條件中,無法破壞的是(
7、),A,環(huán)路等待資源,B,互斥使用資源,C,占有且等待資源,D,非搶奪式分配,【,答案,】B,【,例,】,從下面關(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),【,解答,】D,【,例,】,關(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)程因等
8、待著某一個(gè)資源而無法進(jìn)行下去,【,解答,】C,【,例,】,銀行家算法是一種()算法,A,死鎖解除,B,死鎖避免,C,死鎖預(yù)防,D,死鎖檢測(cè),【,解答,】B,【,例,】,下列說法正確的是(),A,死鎖是指系統(tǒng)的全部進(jìn)程都處于阻塞狀態(tài),B,操作系統(tǒng)處理死鎖,只要采用預(yù)防,解除,檢測(cè),避免等方法中的一種就足夠了,C,如果系統(tǒng)在所有進(jìn)程運(yùn)行前,一次性地將其在整個(gè)運(yùn)行過程所需的全部資料分配給進(jìn)程,即所謂”靜態(tài)分配“,是預(yù)防死鎖發(fā)生的。,D,多個(gè)進(jìn)程競(jìng)爭(zhēng)比進(jìn)程數(shù)目少的資源分配情況進(jìn)行安全分析,如果該時(shí)刻狀態(tài)是安全的,則存在一個(gè)安全序列,且這個(gè)安全序列是唯一的。,【,解答,】C,【,例,】,下列說法錯(cuò)誤的是
9、(),A,產(chǎn)生死鎖的原因可以歸結(jié)為兩點(diǎn):競(jìng)爭(zhēng)資源和進(jìn)程推進(jìn)順序非法,B,用于處理死鎖的方法可歸結(jié)為以下四種:預(yù)防死鎖;避免死鎖;檢測(cè)死鎖;解除死鎖,C,在死鎖的預(yù)防中,摒棄”請(qǐng)求和保持“條件的方法的缺點(diǎn)是資源嚴(yán)重浪費(fèi);進(jìn)程延遲運(yùn)行,D,當(dāng)由于為進(jìn)程分配資源而使系統(tǒng)處于不安全狀態(tài)時(shí),系統(tǒng)一定會(huì)導(dǎo)致死鎖,【,解答,】AD,【,例,】,正確的是,(),A,預(yù)防死鎖的方法,優(yōu)點(diǎn)是簡(jiǎn)單,易于實(shí)現(xiàn)且很安全,而且資源利用率高,進(jìn)程也能較快地進(jìn)行,B,檢測(cè)死鎖能夠有效地解除進(jìn)程的死鎖狀態(tài)解,C,當(dāng)由于為進(jìn)程分配資源使系統(tǒng)處于不安全狀態(tài)時(shí),系統(tǒng)一定會(huì)導(dǎo)致死鎖,D,采用資源靜態(tài)分配算法可以預(yù)防死鎖的發(fā)生,【,答案
10、,】D,【,例,】,假設(shè)現(xiàn)在有,p,個(gè)進(jìn)程,每個(gè)進(jìn)程最多需要,m,個(gè)資源,并且有,r,個(gè)資源可用,什么樣的條件可以保證死鎖不會(huì)發(fā)生。,【,解答,】,如果一個(gè)進(jìn)程有,m,個(gè)資源它就能夠結(jié)束,不會(huì)使自己陷入死鎖中。因此,最差的情況是每個(gè)進(jìn)程有,m-1,個(gè)資源并且需要另外一個(gè)資源。如果留下有一個(gè)資源可用,那么其中某一個(gè)進(jìn)程就能夠結(jié)束并釋放它所有的資源,使其他進(jìn)程也能結(jié)束。所以避免死鎖的條件是:,r=p(m-1)+1,【,例,】,一臺(tái)計(jì)算機(jī)有,6,臺(tái)磁帶機(jī),由,n,個(gè)進(jìn)程競(jìng)爭(zhēng)使用,每個(gè)進(jìn)程可能需要兩臺(tái)磁帶機(jī),那么,n,是多少時(shí),系統(tǒng)才沒有死鎖的危險(xiǎn)?,【,解答,】,對(duì)于三個(gè)進(jìn)程,每個(gè)進(jìn)程能夠有兩個(gè)驅(qū)動(dòng)
11、器。對(duì)于,4,個(gè)進(jìn)程,驅(qū)動(dòng)器可以按照(,2,,,2,,,1,,,1,)的方法進(jìn)行分配,使前面兩個(gè)進(jìn)程先結(jié)束。,對(duì)于,5,個(gè)進(jìn)程,可以按照(,2,,,1,,,1,,,1,,,1,)的方法進(jìn)行分發(fā),使一個(gè)進(jìn)程先結(jié)束。,對(duì)于六個(gè)進(jìn)程,每個(gè)進(jìn)程都擁有一個(gè)磁帶驅(qū)動(dòng)器同時(shí)需要另外一個(gè)驅(qū)動(dòng)器,產(chǎn)生了死鎖。因此,對(duì)于,n6,的系統(tǒng)來說是無鎖的。,【,例,】,設(shè)系統(tǒng)中僅有一個(gè)資源類,其中共有,3,個(gè)資源實(shí)例,使用此類資源的進(jìn)程共有,3,個(gè),每個(gè)進(jìn)程至少請(qǐng)求一個(gè)資源,它們所需資源最大量的總和為,X,,則發(fā)生死鎖的必要條件是(,X,的取值),【,解答,】,假設(shè),3,個(gè)進(jìn)程所需該類資源數(shù)分別是,a,b,c,個(gè),因此有
12、:,a+b+c=X,假設(shè)發(fā)生了死鎖,也即當(dāng)每個(gè)進(jìn)程都申請(qǐng)了部分資源,還需最后一個(gè)資源,而此時(shí)系統(tǒng)中已經(jīng)沒有了剩余資源,即:,(a-1)+(b-1)+(c-1)3,X=a+b+c 6,因此,如果發(fā)生死鎖,則必須滿足的必要條件是(,X 6,),【,例,】,假設(shè)某系統(tǒng)中有,4,種資源,(R1,R2,R3,R4),,在某時(shí)刻系統(tǒng)中共有,5,個(gè)進(jìn)程,進(jìn)程,P1,,,P2,,,P3,,,P4,,,P5,的最大資源需求數(shù)量和此刻已分配到資源數(shù)向量分別如下,系統(tǒng)中當(dāng)前可用資源向量為,(2,1,0,0),問,1,當(dāng)前系統(tǒng)是否是安全的?,2,如果進(jìn)程,P3,發(fā)出資源請(qǐng)求向量,(0,1,0,0),,系統(tǒng)能否將資源分
13、配給它?,【,分析,】(1),進(jìn)程的最大資源需求數(shù)減去當(dāng)前進(jìn)程已獲得的資源數(shù)就是進(jìn)程仍需要的資源數(shù),此刻各個(gè)進(jìn)行的仍需要資源數(shù)向量為:,P1,(0,0,0,0);P2(0,7,5,0);P3(6,6,2,2);P4(2,0,0,2);P5(0,3,2,0),而系統(tǒng)的可用資源向量為,(2,1,0,0),這時(shí)存在如下執(zhí)行序列,使進(jìn)程順序執(zhí)行完畢,狀態(tài)安全,進(jìn)程 可用資源數(shù),P1,完成后,(2,1,1,2),P4,完成后,(4,4,6,6),P5,完成后,(4,7,9,8),P2,完成后,(6,7,9,8),P3,完成后,(6,7,1,12),滿足資源需求的進(jìn)程執(zhí)行序列為:,進(jìn)程名 可用資源數(shù),P1
14、,完成后,(2,0,1,2),P4,完成后,(4,3,6,6),P5,完成后,(4,6,9,8),此時(shí)可用資源不能滿足,P2,P3,的需求,即此時(shí)系統(tǒng)狀態(tài)是不安全的,將拒絕資源請(qǐng)求,此時(shí)系統(tǒng)可用資源為,(2,0,0,0),,各進(jìn)程仍需要資源向量為:,P1(0,0,0,0);,P2(0,7,5,0);,P3(6,5,2,2);,P4(2,0,0,2);,P5(0,3,2,0),在,P3,發(fā)出資源請(qǐng)求,(0,1,0,0),后,假設(shè)系統(tǒng)把資源分配給,P3,則各進(jìn)程已分配資源數(shù)為:,P1 (0,0,1,2);,P2 (2,0,0,0);,P3 (0,1,3,4);,P4 (2,3,5,4);,P5 (
15、0,3,3,2),1,2,內(nèi)存管理,背景,交換,連續(xù),內(nèi)存分配,分頁(yè),分段,頁(yè)表結(jié)構(gòu),基本硬件,地址綁定,動(dòng)態(tài)加載和動(dòng)態(tài)鏈接,CPU,和內(nèi)存,,cache,用戶空間和內(nèi)核空間,基址寄存器,界限寄存器,首次適應(yīng)算法,最佳適應(yīng)算法,最差適應(yīng)算法,循環(huán)首次適應(yīng)算法,碎片問題,外部,頁(yè)表映射方法,保護(hù),-,有效無效位,只存在,內(nèi)部碎片,內(nèi)部,硬件支持,TLB,基本思想,段表映射方法,邏輯地址和物理地址,非連續(xù),內(nèi)存分配,1.,下面關(guān)于存儲(chǔ)管理的敘述中正確的是(),A.,現(xiàn)在操作系統(tǒng)中,允許用戶干預(yù)內(nèi)存的分配,B.,固定分區(qū)存儲(chǔ)管理是針對(duì)單道系統(tǒng)的內(nèi)存管理方案,C.,可變分區(qū)存儲(chǔ)管理可以對(duì)作業(yè)分配不連續(xù)
16、的內(nèi)存單元,D.,頁(yè)式存儲(chǔ)管理中,頁(yè)面大小是在硬件設(shè)計(jì)時(shí)確定的,【,解答,】D,選擇題,2.,在存儲(chǔ)管理中,把目標(biāo)程序中的邏輯地址轉(zhuǎn)換成主存空間的物理地址的過程稱為,。,A.,存儲(chǔ)分配,B.,地址重定位,C.,地址保護(hù),D.,程序移動(dòng),B,3.,作業(yè)在執(zhí)行中發(fā)生了缺頁(yè)中斷,經(jīng)操作系統(tǒng)處理后,應(yīng)讓其執(zhí)行,指令。,A,被中斷的前一條,B,被中斷的,C,被中斷的后一條,D,啟動(dòng)時(shí)的第一條,B,4.,下面最有可能使得高地址空間成為大的空閑區(qū)的分配算法是(,)。,A,首次適應(yīng)算法,B,最佳適應(yīng)法,C,最壞適應(yīng)法,D,循環(huán)首次適應(yīng)法,A,5.,在幾種基本的放置策略中,空白區(qū)是按大小遞增的順序鏈接在一起的是()策略。,A,首次匹配,B,最佳匹配,C,最壞匹配,D,以上三者,B,6.,虛擬內(nèi)存的可行性的基礎(chǔ)是()。,A,程序執(zhí)行的離散性,B,程序執(zhí)行的順序性,C,程序執(zhí)行的局部性,D,程序執(zhí)行的并發(fā)性,C,7.,分區(qū)管理要求對(duì)每一個(gè)作業(yè)都分配()的內(nèi)存單元。,A,地址連續(xù),B,若干地址不連續(xù),C,若干連續(xù)的幀,D,若干不連續(xù)的幀,A,8.,分區(qū)管理和分頁(yè)管理的主要區(qū)別是(,)。,A,分區(qū)管理中的塊比分