操作系統(tǒng)章節(jié)復(fù)習(xí)題(第3-4章)
第三章
一、填空題(22小題,共22分)
1. (進(jìn)程互斥)是指當(dāng)若干個(gè)并發(fā)進(jìn)程都要使用某一共享資源時(shí),任何時(shí)刻最多只允許一個(gè)進(jìn)程去使用,其他要使用該資源的進(jìn)程必須等待,直到占用資源者釋放了該資源。
2. 原語(yǔ)是一種特殊的廣義指令,又稱原子操作,它執(zhí)行應(yīng)該是(不可被中斷)的。
3. 每執(zhí)行一次V操作,信號(hào)量S的值加1,若S0,則從對(duì)應(yīng)的(等待?)隊(duì)列中喚醒一個(gè)進(jìn)程。
4. 有m個(gè)進(jìn)程共享同一臨界資源,若使用信號(hào)量機(jī)制實(shí)現(xiàn)對(duì)臨界資源的互斥訪問,則信號(hào)量值的變化范圍是(1~-(m-1) )。
5. 只要能保持系統(tǒng)處于安全狀態(tài)就可( 避免)死鎖的發(fā)生。
6. 如果操作系統(tǒng)能保證所有的進(jìn)程在有限時(shí)間內(nèi)得到需要的全部資源,并順利執(zhí)行完畢,則稱系統(tǒng)處于( 安全狀態(tài))。
7. 利用P、V操作管理相關(guān)臨界區(qū)時(shí),必須成對(duì)出現(xiàn),在進(jìn)入臨界區(qū)之前要調(diào)用( P操作)。
8. 設(shè)有4個(gè)進(jìn)程共享一程序段,而每次最多允許兩個(gè)進(jìn)程進(jìn)入該程序段,則信號(hào)量的取值范圍是(-2~2 )。
9. ( 進(jìn)程的同步)是指并發(fā)進(jìn)程之間存在一種制約關(guān)系,一個(gè)進(jìn)程的執(zhí)行依賴另一個(gè)進(jìn)程的消息,當(dāng)一個(gè)進(jìn)程沒有得到另一個(gè)進(jìn)程的消息時(shí)應(yīng)等待,直到消息到達(dá)才被喚醒。
10. 操作系統(tǒng)中要兼顧資源的使用效率和安全可靠,對(duì)不同的資源采用不同的分配策略,往往采用死鎖的預(yù)防、避免和( 檢測(cè))的混合策略。
11. 當(dāng)若干進(jìn)程需求資源的總數(shù)大于系統(tǒng)能提供的資源數(shù)時(shí),進(jìn)程間就會(huì)出現(xiàn)競(jìng)爭(zhēng)資源的現(xiàn)象,如果系統(tǒng)對(duì)資源(?分配不當(dāng))就會(huì)引起死鎖。
12. 最基本的通信原語(yǔ)有兩條,它們是send原語(yǔ)和(receive)原語(yǔ)。
13. 執(zhí)行一次信號(hào)量S的P操作,使S.value的值減1后,如果S.value的值(<0 )時(shí),調(diào)用進(jìn)程阻塞等待。
14. 在利用信號(hào)量實(shí)現(xiàn)進(jìn)程互斥時(shí),應(yīng)將(臨界區(qū))置于P操作和V操作之間。
15. 計(jì)算機(jī)系統(tǒng)產(chǎn)生死鎖的根本原因是(系統(tǒng)資源不足)和進(jìn)程推進(jìn)順序不當(dāng)。
16. 避免死鎖的實(shí)質(zhì)是(在資源的動(dòng)態(tài)分配中,如何使系統(tǒng)不進(jìn)入不安全狀態(tài)?)。
17. 每執(zhí)行一次P操作,信號(hào)量S的值減1,如果S0,則該進(jìn)程(繼續(xù)執(zhí)行)。
18. 解決死鎖的方法分為死鎖的預(yù)防、死鎖的避免、死鎖的檢測(cè)和(解除死鎖)。
19. 兩個(gè)進(jìn)程爭(zhēng)奪同一個(gè)資源時(shí),(不一定?)(填寫“一定”或“不一定”)產(chǎn)生死鎖。
20. 產(chǎn)生死鎖的4個(gè)必要條件是互斥條件、不可剝奪條件、請(qǐng)求與保持條件和(循環(huán)等待條件)。
21. 如果資源分配圖中無(wú)環(huán)路,則系統(tǒng)中(沒有死鎖)發(fā)生。
22. 解除死鎖的方法有兩種,一種是(終止)一個(gè)或幾個(gè)進(jìn)程的執(zhí)行以破壞循環(huán)等待,另一種是從涉及死鎖的進(jìn)程中搶奪資源。
?
二、選擇題(40小題,共40分)
1.當(dāng)出現(xiàn)(C.多個(gè)進(jìn)程競(jìng)爭(zhēng)資源出現(xiàn)了循環(huán)等待)情況下,系統(tǒng)可能出現(xiàn)死鎖。
2.用P、V操作實(shí)現(xiàn)進(jìn)程同步,信號(hào)量的初值為( D.由資源數(shù)目確定)。
3.當(dāng)一進(jìn)程因在互斥信號(hào)量mutex上執(zhí)行P(mutex)操作而被阻塞,則此時(shí)mutex的值為(?B.小于0 )。
4.產(chǎn)生死鎖的4個(gè)必要條件是:互斥、(B .請(qǐng)求與保持)、循環(huán)等待和不剝奪。
5.若系統(tǒng)在分配資源時(shí)不加以特別的限制,則可采用死鎖檢測(cè)的方法來(lái)解決死鎖問題。所以該系統(tǒng)(C.?有時(shí)要搶奪某進(jìn)程的資源進(jìn)行再分配)。
6.一個(gè)進(jìn)程在獲得資源后,只能在使用完資源后由自己釋放,這屬于死鎖必要條件的( C.不剝奪條件?)。
7.某系統(tǒng)中有3個(gè)并發(fā)進(jìn)程,都需要同類資源4個(gè),試問該系統(tǒng)不會(huì)發(fā)生死鎖的最少資源數(shù)是(B.10?)。
8.在9個(gè)生產(chǎn)者、6個(gè)消費(fèi)者共享8個(gè)單元緩沖區(qū)的生產(chǎn)者一消費(fèi)者問題中,互斥使用緩沖區(qū)的信號(hào)量的初始值為(A.1?)。
9.死鎖的預(yù)防是根據(jù)(C.破壞死鎖的4個(gè)必要條件之一 )而采取措施實(shí)現(xiàn)的。
10.在操作系統(tǒng)中,死鎖出現(xiàn)是指(C.若干進(jìn)程因競(jìng)爭(zhēng)資源而無(wú)限等待其他進(jìn)程釋放已占有的資源?)。
11.以下關(guān)于預(yù)防死鎖的論述中正確的是(D.可以通過(guò)破壞產(chǎn)生死鎖的4個(gè)必要條件之一或其中幾個(gè)的方法來(lái)預(yù)防發(fā)生死鎖)。
12.下述選項(xiàng)中體現(xiàn)原語(yǔ)特點(diǎn)的是(D.執(zhí)行過(guò)程不可中斷?)。
13.某系統(tǒng)中有11臺(tái)打印機(jī),N個(gè)進(jìn)程共享打印機(jī)資源,每個(gè)進(jìn)程要求3臺(tái)。當(dāng)N的取值不超過(guò)( B.5)時(shí),系統(tǒng)不會(huì)發(fā)生死鎖。
14.銀行家算法在解決死鎖問題中是用于(B.避免死鎖)的。
15.在下列解決死鎖的方法中,屬于死鎖預(yù)防策略的是( B.有序資源分配法)。
16.在操作系統(tǒng)中,臨界區(qū)是(C.一段程序)。
17.用信箱實(shí)現(xiàn)進(jìn)程間相互通信的通信機(jī)制要有兩個(gè)通信原語(yǔ),它們是(C.“發(fā)送”原語(yǔ)和“接收”原語(yǔ)?)。
18.若信號(hào)量S的初值為2,當(dāng)前值為1,則表示有(B.1個(gè))等待進(jìn)程。
19.為多道程序提供的可共享資源不足時(shí),可能出現(xiàn)死鎖。但是在進(jìn)程之間不適當(dāng)?shù)模?strong>C.進(jìn)程推進(jìn)順序)也可能產(chǎn)生死鎖。
20.在(C.若干進(jìn)程因競(jìng)爭(zhēng)資源而無(wú)休止地相互等待他方釋放已占有的資源)的情況下,系統(tǒng)出現(xiàn)死鎖。
21.對(duì)信號(hào)量X執(zhí)行P操作時(shí),若(A.X1<0)則進(jìn)程進(jìn)入等待狀態(tài)。
22.發(fā)生死鎖的必要條件有4個(gè),要防止死鎖的發(fā)生,可以通過(guò)破壞這4個(gè)必要條件之一來(lái)
實(shí)現(xiàn),但(A.互斥)條件不僅不能破壞,反而要保證。
23.在非搶占式調(diào)度下,處于運(yùn)行狀態(tài)的進(jìn)程執(zhí)行V操作后,其本身的狀態(tài)(A.不變)。
24.如果系統(tǒng)中有n個(gè)進(jìn)程,則就緒隊(duì)列中進(jìn)程的個(gè)數(shù)最多為(C.n1)。
25.死鎖產(chǎn)生的原因之一是(D.資源分配不當(dāng))。
26.在操作系統(tǒng)中,P、V操作均是一種(D.原語(yǔ))。
27.若一個(gè)系統(tǒng)中共有5個(gè)并發(fā)進(jìn)程涉及某個(gè)相同的變量A,則變量A的相關(guān)臨界區(qū)是由(C.5 )個(gè)臨界區(qū)構(gòu)成的。
28.信箱通信是一種(B.間接通信)通信方式。
29.當(dāng)一進(jìn)程因在互斥信號(hào)量mutex上執(zhí)行V(mutex)操作而導(dǎo)致喚醒另一個(gè)進(jìn)程時(shí),則此時(shí)mutex的值為(D.小于等于0)。
30.采用資源剝奪法可以解除死鎖,還可以采用(B.撤銷進(jìn)程)方法解除死鎖。
31.在用信號(hào)量機(jī)制實(shí)現(xiàn)互斥時(shí),信號(hào)量的初值為(B.1)。
32.進(jìn)程從執(zhí)行狀態(tài)到阻塞狀態(tài)可能是由于(C.當(dāng)前運(yùn)行的進(jìn)程執(zhí)行了P操作)。
33.設(shè)有n個(gè)進(jìn)程共用一個(gè)相同的程序段,如果每次最多允許m個(gè)進(jìn)程(mn)同時(shí)進(jìn)入臨界區(qū),則信號(hào)量的初值為(B.m)。
34.資源的有序分配策略可以破壞死鎖的(D.循環(huán)等待)條件。
35.以下(B.CPU)不屬于臨界資源。
36.在間接通信時(shí),用Send(N,M)原語(yǔ)發(fā)送信件,其中N表示(C.信箱名)。
37.對(duì)于兩個(gè)并發(fā)進(jìn)程,設(shè)互斥信號(hào)量為mutex(初值為1),若mutex=1,則(C.表示有一個(gè)進(jìn)程進(jìn)入臨界區(qū),另一個(gè)進(jìn)程等待進(jìn)入)。
38.在操作系統(tǒng)中,要對(duì)并發(fā)進(jìn)程進(jìn)行同步的原因是(C.并發(fā)進(jìn)程具有異步性)。
39.對(duì)信號(hào)量X執(zhí)行V操作時(shí),若(B.X+10)則喚醒阻塞隊(duì)列中的隊(duì)首進(jìn)程。
40.用V操作喚醒一個(gè)等待進(jìn)程時(shí),被喚醒進(jìn)程的狀態(tài)變?yōu)椋?strong>C.就緒)。
?
三、判斷題(23小題,共23分)
1. 在管道通信中,管道是一個(gè)普通的共享文件。 (X)
2.僅當(dāng)一個(gè)進(jìn)程退出臨界區(qū)以后,另一個(gè)進(jìn)程才能進(jìn)入相應(yīng)的臨界區(qū)。 (√)
3.導(dǎo)致死鎖的4個(gè)必要條件在死鎖時(shí)會(huì)同時(shí)發(fā)生。 (V)
4.系統(tǒng)進(jìn)入不安全狀態(tài)時(shí),必定會(huì)產(chǎn)生死鎖。 (X)
5.死鎖預(yù)防是排除死鎖的靜態(tài)策略。 (V)
6.一旦出現(xiàn)死鎖,所有進(jìn)程都不能運(yùn)行。 (X)
7.P、V操作是一種原語(yǔ),在執(zhí)行時(shí)不能打斷。 (√)
8.參與死鎖的進(jìn)程至少有兩個(gè)己經(jīng)占有資源。 (V)
9.進(jìn)程之間采用高級(jí)通信方式時(shí),進(jìn)程間利用P、V操作來(lái)交換信息。 (X)
10.進(jìn)程間的互斥是一種特殊的同步關(guān)系。 (V)
11.產(chǎn)生死鎖后,系統(tǒng)未必處于不安全狀態(tài)。 (X)
12.銀行家算法是防止死鎖發(fā)生的方法之一。 (X)
13.進(jìn)程通信只能采用P、V操作。 (X)
14.P、V操作只能實(shí)現(xiàn)進(jìn)程互斥,不能實(shí)現(xiàn)進(jìn)程同步。 (X)
15.如果信號(hào)量S的當(dāng)前值為5,則表示系統(tǒng)中共有5個(gè)進(jìn)程。 (X)
16.P、V操作可看成是進(jìn)程之間的一種通信方式。 (V)
17.當(dāng)進(jìn)程數(shù)大于資源數(shù)時(shí),進(jìn)程競(jìng)爭(zhēng)資源必然產(chǎn)生死鎖。 (X)
18.對(duì)臨界資源應(yīng)采用互斥訪問方式來(lái)實(shí)現(xiàn)共享。 (V)
19.在信號(hào)量上除了能執(zhí)行P、V操作外,不能執(zhí)行其他任何操作。 (X)
20.系統(tǒng)存在安全序列時(shí),一定不會(huì)有死鎖發(fā)生。 (V)
21.所有進(jìn)程都阻塞時(shí)系統(tǒng)一定陷入死鎖。 (X)
22.若想預(yù)防死鎖,4個(gè)必要條件必須同時(shí)具備。 (X)
23.系統(tǒng)處于不安全狀態(tài)不一定是死鎖狀態(tài)。 (V)
?
四、簡(jiǎn)答題(13小題,共65分)
1. 產(chǎn)生死鎖的必要條件是什么?
?產(chǎn)生死鎖的四個(gè)必要條件:
互斥條件:一個(gè)資源每次只能被一個(gè)進(jìn)程使用,即在一段時(shí)間內(nèi)某 資源僅為一個(gè)進(jìn)程所占有。此時(shí)若有其他進(jìn)程請(qǐng)求該資源,則請(qǐng)求進(jìn)程只能等待。
請(qǐng)求與保持條件:進(jìn)程已經(jīng)保持了至少一個(gè)資源,但又提出了新的資源請(qǐng)求,而該資源 已被其他進(jìn)程占有,此時(shí)請(qǐng)求進(jìn)程被阻塞,但對(duì)自己已獲得的資源保持不放。
不可剝奪條件:進(jìn)程所獲得的資源在未使用完畢之前,不能被其他進(jìn)程強(qiáng)行奪走,即只能 由獲得該資源的進(jìn)程自己來(lái)釋放(只能是主動(dòng)釋放)。
循環(huán)等待條件: 若干進(jìn)程間形成首尾相接循環(huán)等待資源的關(guān)系
這四個(gè)條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會(huì)發(fā)生死鎖。
?
2.進(jìn)程A和B共享一個(gè)變量,因此在各自的程序里都有自已的臨界區(qū)?,F(xiàn)在進(jìn)程A在臨界區(qū)里。試問進(jìn)程A的執(zhí)行能夠被別的進(jìn)程打斷嗎?能夠被進(jìn)程B打斷嗎?(這里“打斷”的含義是調(diào)度新進(jìn)程運(yùn)行,使進(jìn)程A暫停執(zhí)行)。
?解:當(dāng)進(jìn)程A在自已的臨界區(qū)中執(zhí)行時(shí),能夠被別的進(jìn)程打斷,沒有任何限制。當(dāng)進(jìn)程A在自已的臨界區(qū)中執(zhí)行時(shí),也能夠被進(jìn)程B打斷,不過(guò)這種打斷是有限制的,即當(dāng)進(jìn)程B執(zhí)行到要求進(jìn)入自已的臨界區(qū)時(shí),就會(huì)被阻塞,這是因?yàn)樵谒驍噙M(jìn)程A時(shí),進(jìn)程A正在臨界區(qū)中還沒有出來(lái),既然進(jìn)程A在臨界區(qū)中,進(jìn)程B當(dāng)然就無(wú)法進(jìn)入自已的臨界區(qū)。
?
3.為什么說(shuō)不能通過(guò)破壞“互斥條件”來(lái)預(yù)防死鎖。
?解:破壞互斥條件,即允許多個(gè)進(jìn)程同時(shí)訪問資源。但這受到資源本身的使用方法所決定,有些資源必須互斥訪問,不能同時(shí)訪問,如幾個(gè)進(jìn)程同時(shí)使用打印機(jī),而打印機(jī)的使用必須是互斥的。所以企圖通過(guò)破壞互斥條件來(lái)防止死鎖是不太實(shí)際的。
?
4.進(jìn)程間的高級(jí)通信分為哪三大類?
共享存儲(chǔ)器系統(tǒng),管道通信系統(tǒng),消息傳遞系統(tǒng)以及客戶機(jī)-服務(wù)器系統(tǒng)
?
5.解決死鎖問題常采用哪幾種措施?
死鎖的預(yù)防:通過(guò)破壞死鎖產(chǎn)生的必要條件中的后三條之一來(lái)預(yù)防死鎖的發(fā)生。
死鎖的避免:在資源動(dòng)態(tài)分配過(guò)程中,用某種方法防止系統(tǒng)進(jìn)入不安全狀態(tài),從而避免死鎖。
死鎖的檢測(cè)及解除:通過(guò)系統(tǒng)的檢測(cè)機(jī)構(gòu)及時(shí)地檢測(cè)出死鎖的發(fā)生,然后采取某種措施解除死鎖。
?
6.信號(hào)量上的P、V操作只是對(duì)信號(hào)量的值進(jìn)行減1或加1操作嗎?在信號(hào)量上不能夠執(zhí)行除P、V操作外的其他操作嗎?
?答:根據(jù)信號(hào)量的定義可知,P、V操作并非只是對(duì)信號(hào)量進(jìn)行減1或加1操作,更重要
的?是在減1或加1后,還要判斷運(yùn)算的結(jié)果。對(duì)于P操作,判定后調(diào)用進(jìn)程自己有可能繼?續(xù)運(yùn)行,也可能阻塞等待。對(duì)于V操作,判定后調(diào)用進(jìn)程自己最后總是繼續(xù)運(yùn)行,但之?前可能會(huì)喚醒在信號(hào)量隊(duì)列上等待的進(jìn)程。
在信號(hào)量上除了能執(zhí)行P、V操作外,不能執(zhí)行其他任何操作
?
7.在某一時(shí)刻,系統(tǒng)中是否可能出現(xiàn)既無(wú)運(yùn)行態(tài)進(jìn)程又無(wú)就緒態(tài)進(jìn)程?若可能,在什么情況下會(huì)產(chǎn)生?
?解:有可能。例如在系統(tǒng)死鎖的狀態(tài)下,進(jìn)程處于占有等待資源的狀態(tài),應(yīng)當(dāng)既不屬于運(yùn)行態(tài),也不屬于就緒態(tài);或者在進(jìn)程都處于阻塞狀態(tài)等待I/O完成時(shí),這些進(jìn)程既不屬于運(yùn)行態(tài),也不屬于就緒態(tài)。
8.簡(jiǎn)述進(jìn)程同步與互斥之間的區(qū)別和聯(lián)系。
(1)區(qū)別:??互斥:是指三部在不同進(jìn)程之間的若干程序片斷,當(dāng)某個(gè)進(jìn)程運(yùn)行其中一個(gè)程序片段時(shí),其它進(jìn)程就不能運(yùn)行它們之中的任一程序片段,只能等到該進(jìn)程運(yùn)行完這個(gè)程序片段后才可以運(yùn)行,是指某一資源同時(shí)只允許一個(gè)訪問者對(duì)其進(jìn)行訪問,具有唯一性和排它性。但互斥無(wú)法限制訪問者對(duì)資源的訪問順序,即訪問是無(wú)序的。;???同步:是指散步在不同進(jìn)程之間的若干程序片斷,它們的運(yùn)行必須嚴(yán)格按照規(guī)定的 某種先后次序來(lái)運(yùn)行,這種先后次序依賴于要完成的特定的任務(wù),是指在互斥的基礎(chǔ)上(大多數(shù)情況),通過(guò)其它機(jī)制實(shí)現(xiàn)訪問者對(duì)資源的有序訪問。在大多數(shù)情況下,同步已經(jīng)實(shí)現(xiàn)了互斥,特別是所有寫入資源的情況必定是互斥的,少數(shù)情況是指可以允許多個(gè)訪問者同時(shí)訪問資源。
(2)聯(lián)系:同步是一種更為復(fù)雜的互斥,而互斥是一種特殊的同步。也就是說(shuō)互斥是兩個(gè)線程之間不可以同時(shí)運(yùn)行,他們會(huì)相互排斥,必須等待一個(gè)線程運(yùn)行完畢,另一個(gè)才能運(yùn)行,而同步也是不能同時(shí)運(yùn)行,但他是必須要安照某種次序來(lái)運(yùn)行相應(yīng)的線程(也是一種互斥)。
?
9.什么是死鎖,產(chǎn)生死鎖的原因是什么?
?答:死鎖是指多個(gè)進(jìn)程在運(yùn)行過(guò)程中因爭(zhēng)奪資源而造成的一種僵局,若無(wú)外力作用,它們都將無(wú)法再向前推進(jìn)
產(chǎn)生死鎖的原因:1.競(jìng)爭(zhēng)資源 2.進(jìn)程間推進(jìn)順序非法
?
10.3個(gè)進(jìn)程共享4個(gè)同類型資源,每個(gè)進(jìn)程最大需要兩個(gè)資源,請(qǐng)問該系統(tǒng)是否會(huì)因?yàn)楦?jìng)爭(zhēng)該資源而死鎖??
答:該系統(tǒng)不會(huì)因?yàn)楦?jìng)爭(zhēng)該資源而死鎖。因?yàn)楸赜幸粋€(gè)進(jìn)程獲得兩個(gè)資源,故能順利完成,并釋放給其他進(jìn)程使用,使它們也順利完成。
?
11.有相同類型的5個(gè)資源被4個(gè)進(jìn)程所共享,且每個(gè)進(jìn)程最多需要2個(gè)這樣的資源就可以運(yùn)行完畢。試問該系統(tǒng)是否會(huì)由于對(duì)這種資源的競(jìng)爭(zhēng)而產(chǎn)生死鎖。
答:不會(huì)。
?
12.什么是管道?
?所謂“管道”,是指用于連接一個(gè)讀進(jìn)程和一個(gè)寫進(jìn)程一是實(shí)現(xiàn)它們之間通信的一個(gè)共享文件,又名pipe文件。
?
13.下面關(guān)于死鎖問題的敘述是否正確?請(qǐng)做出判斷,然后說(shuō)明原因。
(1)參與死鎖的所有進(jìn)程中至少有兩個(gè)進(jìn)程占有資源。
答:是正確的。參與死鎖的進(jìn)程至少有兩個(gè)
(2)死鎖只發(fā)生在無(wú)關(guān)進(jìn)程之間。
答:是錯(cuò)誤的。死鎖也可能發(fā)生在相關(guān)進(jìn)程之間。
?
五、綜合題(18小題,共180分)
1. 在一個(gè)盒子里,混裝了個(gè)數(shù)相等的圍棋白子和黑子?,F(xiàn)在要用自動(dòng)分揀系統(tǒng)把白子和黑子分開。設(shè)系統(tǒng)有兩個(gè)進(jìn)程P1和P2,其中P1揀白子,P2揀黑子。規(guī)定每個(gè)進(jìn)程每次只揀一子。當(dāng)一個(gè)進(jìn)程正在揀子時(shí),不允許另一個(gè)進(jìn)程同時(shí)揀子;當(dāng)一個(gè)進(jìn)程揀一子后,必須讓另一個(gè)進(jìn)程去揀。試寫出這兩個(gè)并發(fā)進(jìn)程能正確執(zhí)行的程序。
補(bǔ)問題:(1)兩個(gè)進(jìn)程間是同步還是互斥
(2)寫出用P、V定義的信號(hào)量及其初值。
(3)寫出P、V管理的兩個(gè)并發(fā)進(jìn)程的程序。
答:(1)同步關(guān)系。
(2)兩個(gè)信號(hào)量:SA允許揀黑子;SB允許揀白子;初值為:0、A或A、0。
(3)程序如下:
main()
{
Semaphore SA, SB;
SA=A; SB=0;
cobegin
processPA();
processPB();
coend
}
processPA()
{
while(A)
{
P(SA);
揀黑子;
V(SB);
}
}
processPB()
{
while(A)
{
P(SB);
揀白子;
V(SA);
}
}
2.設(shè)公共汽車上有一個(gè)司機(jī)和一個(gè)售票員,它們的活動(dòng)如下圖所示,問這兩個(gè)活動(dòng)是什么同步關(guān)系?請(qǐng)用信號(hào)量機(jī)制實(shí)現(xiàn)他們的同步。
答:

3.有一個(gè)閱覽室,讀者進(jìn)入時(shí)必須先在一張登記表上進(jìn)行登記,該表為每一座位列出一個(gè)表目,包括座位號(hào)、姓名,讀者離開時(shí)撤銷登記信息。閱覽室有100個(gè)座位。試用P、V操作描述這些進(jìn)程間的同步關(guān)系。
答:設(shè)同步信號(hào)量empty,表示圖書館是否還有空座位可坐,初值為100。
設(shè)互斥信號(hào)量mutex,表示互斥的訪問登記表,初值為1;
讀者:
Whne(True)
{P(empty);
P(mutex);
在登記表上登記自己的內(nèi)容。
V(mutex);
進(jìn)入閱覽室讀書;
P(mutex);
在登記表中刪除自己的登記項(xiàng);
V(mutex):
V(empty);
?
4. 試用P、V操作實(shí)現(xiàn)下面的前趨圖。
?

5. 試化簡(jiǎn)圖中的進(jìn)程資源圖,并利用死鎖定理給出相應(yīng)的結(jié)論。

6. 對(duì)于生產(chǎn)者—消費(fèi)者問題,若緩沖區(qū)中緩沖區(qū)單元只有一個(gè),生產(chǎn)者和消費(fèi)者各只有一人,如下圖所示。用P、V原語(yǔ)實(shí)現(xiàn)生產(chǎn)者和消費(fèi)者的同步操作。

7. 一個(gè)系統(tǒng)具有150個(gè)存儲(chǔ)單元,在T0時(shí)刻按下表所示分配給3個(gè)進(jìn)程。

對(duì)下列請(qǐng)求,應(yīng)用銀行家算法分析判斷是否安全?
問:第4個(gè)進(jìn)程P4到達(dá),最大需求60個(gè)存儲(chǔ)單元,當(dāng)前請(qǐng)求分配25個(gè)單元。系統(tǒng)進(jìn)行分配后,是否仍是安全的,請(qǐng)給出一個(gè)可能的進(jìn)程安全執(zhí)行序列;如果不是安全的,請(qǐng)說(shuō)明原因。
答:根據(jù)題意,在T0時(shí)刻,系統(tǒng)剩余的存儲(chǔ)單元Available為(150-25-40-45),即40。
P4的當(dāng)前請(qǐng)求量request4為25,小于它的最大需求量60和Available(40)。故可為它試行分配資源, 對(duì)上述狀態(tài)進(jìn)行安全性檢查,此時(shí),能找到一個(gè)安全序列<P3,P4,P1,P2>,系統(tǒng)處于安全狀態(tài),故可為P4分配資源。
?
8. 對(duì)于生產(chǎn)者一消費(fèi)者問題,若緩沖區(qū)中緩沖區(qū)的單元有n個(gè),生產(chǎn)者和消費(fèi)者各只有一人,如下圖所示。用P、V原語(yǔ)實(shí)現(xiàn)生產(chǎn)者和消費(fèi)者的同步操作。緩沖區(qū)(n個(gè)單元)

9. 若系統(tǒng)運(yùn)行中出現(xiàn)如下表所示的資源分配情況,問該系統(tǒng)是否安全?給出檢查過(guò)程。
?

10. 某車站售票廳,任何時(shí)間最多可容納100名購(gòu)票者進(jìn)入,當(dāng)售票廳少于100名購(gòu)票者時(shí),則廳外的購(gòu)票者可立即進(jìn)入,否則需在外面等待。若把一個(gè)購(gòu)票者看作一個(gè)進(jìn)程,請(qǐng)回答以下問題:
(1)P、V操作管理這些并發(fā)進(jìn)程時(shí),應(yīng)怎樣定義信號(hào)量?寫出信號(hào)量的初值以及信號(hào)量各種取值的含義。
(2)根據(jù)所定義的信號(hào)量,插入應(yīng)執(zhí)行的P、V操作以保證進(jìn)程能夠正確地并發(fā)執(zhí)行。
main()
{ Cobegin
ProcessPi(i=1,2,…,n)
{ 進(jìn)入售票廳;
退出;
}
Coend
}
(3)若欲購(gòu)票者最多為n個(gè)人,寫出信號(hào)量可能的變化范圍(最大值和最小值)。
?
11. 銀行家算法的主要思想是什么?它能夠用來(lái)解決實(shí)際中的死鎖問題嗎?為什么?
?

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。在T0時(shí)刻系統(tǒng)狀態(tài)如下表所示。系統(tǒng)采用銀行家算法實(shí)施死鎖避免策略。

問:T0時(shí)刻是否為安全狀態(tài)?若是,請(qǐng)給出安全序列。
?
13. 進(jìn)程之間存在哪幾種制約關(guān)系?各是什么原因引起的?以下活動(dòng)各屬于哪種制約關(guān)系?
(1)若干學(xué)生去圖書館借書。
(2)兩隊(duì)進(jìn)行籃球比賽。
(3)流水線生產(chǎn)的各道工序。
(4)商品生產(chǎn)和社會(huì)消費(fèi)。
?
14. 用P、V操作解決讀者一寫者問題如下:
Semaphore S=1;
Semaphore Sr=1;
int rc=0;
main()
{ Cobegin
{ 讀者進(jìn)程Readeri(i=1,…,n)
{ while(true)
{ P(Sr);
rc=rc+1;
if(rc1)P(S);
V(Sr):
讀文件;
P(Sr);
rc=rc1;
if(rc0)V(S);
v(Sr);
}
}
寫者進(jìn)程Writerj(j=1,…,m)
{ while(true)
{ P(S);
寫文件;
V(S);
}
}
}
Coend
}
請(qǐng)回答以下問題:
(1)信號(hào)量Sr的作用是什么?
(2)程序中什么語(yǔ)句用于讀一寫互斥、寫一寫互斥?
?
第四章
一、填空題(24小題,共24分)
1.在某基本分頁(yè)存儲(chǔ)管理中,邏輯地址為24位,其中8位表示頁(yè)號(hào),則允許的最大頁(yè)面大小是(2 16次方)字節(jié)。
2.存儲(chǔ)管理是對(duì)主存空間的(用戶區(qū))進(jìn)行管理。
3.某分頁(yè)存儲(chǔ)管理中,頁(yè)面大小為4KB,某進(jìn)程的頁(yè)號(hào)0~8對(duì)應(yīng)的物理塊號(hào)分別為8、9、 10、15、18、20、21、22、23。則該進(jìn)程的邏輯地址05AF8H對(duì)應(yīng)的物理地址是(14AF8H)。
4.動(dòng)態(tài)分區(qū)分配的首次適應(yīng)算法要求空閑分區(qū)按(地址遞增)的順序鏈接成一個(gè)空閑分區(qū)鏈。
5.在分頁(yè)存儲(chǔ)管理中,要求程序中的邏輯地址可以分頁(yè),頁(yè)的大小與(物理塊號(hào))大小一致。
6.分頁(yè)存儲(chǔ)管理做重定位時(shí),實(shí)際上是把(塊號(hào))作為物理地址的高位地址,而塊(或頁(yè))內(nèi)地址作為它的低地址部分。
7.把邏輯地址轉(zhuǎn)換成絕對(duì)地址的工作稱為(重定位)。
8.在請(qǐng)求分頁(yè)存儲(chǔ)系統(tǒng)中,若訪問的頁(yè)面不在主存中,則產(chǎn)生(缺頁(yè)中斷),由操作系統(tǒng)把當(dāng)前所需的頁(yè)面裝入主存中。
9.在請(qǐng)求段頁(yè)式存儲(chǔ)管理中,在不考慮使用快表的情況下,訪問內(nèi)存的每條指令需要3次訪問內(nèi)存,其中第(2)次是查作業(yè)的頁(yè)表。
10.在基本分頁(yè)存儲(chǔ)管理系統(tǒng)中,把一段時(shí)間內(nèi)總是經(jīng)常訪問的某頁(yè)表項(xiàng)存放在(快表)中,可實(shí)現(xiàn)快速查找并提高指令執(zhí)行速度。
11.內(nèi)存管理中引入對(duì)換技術(shù)獲得好處是以犧牲(cpu的運(yùn)行時(shí)間)為代價(jià)的。
12.在基本分頁(yè)存儲(chǔ)管理中,按給定的邏輯地址讀寫時(shí),要訪問兩次主存,第1次是(查頁(yè)表),第2次是按計(jì)算出來(lái)的物理地址進(jìn)行讀寫。
13.在頁(yè)面調(diào)度時(shí),如果剛調(diào)出的頁(yè)面又要立即裝入,可裝入不久的頁(yè)面又要調(diào)出,這種頻繁的裝入/調(diào)出現(xiàn)象稱為(抖動(dòng))。
14.若分段管理中供用戶使用的邏輯地址為24位,其中段內(nèi)地址占16位,則用戶程序最多可以分為(2的8次方)個(gè)段。
15.動(dòng)態(tài)分區(qū)分配的最佳適應(yīng)算法把空閑區(qū)按長(zhǎng)度(遞增)登記在空閑分區(qū)表中,使找到的第一個(gè)滿足作業(yè)要求的分區(qū)最小。
16.重定位方式有兩種,其中(靜態(tài)重定位)是指把作業(yè)的指令和數(shù)據(jù)地址在作業(yè)裝入時(shí)全部轉(zhuǎn)換成絕對(duì)地址。
17.在分段存儲(chǔ)管理中要有硬件地址轉(zhuǎn)換機(jī)構(gòu)做支撐,段表的每個(gè)表項(xiàng)至少包含(段長(zhǎng)和起始地址)信息。
18.一個(gè)用戶程序中含有代碼段A、代碼段B和數(shù)據(jù)段C,當(dāng)該程序在段頁(yè)式管理機(jī)構(gòu)中運(yùn)行時(shí),系統(tǒng)至少為該用戶程序建立(1)個(gè)段表。
19.(內(nèi)存)可被CPU直接訪問,但CPU不能直接訪問輔存。
20.當(dāng)存儲(chǔ)器采用段頁(yè)式管理時(shí),主存被劃分為定長(zhǎng)的(塊)。
21.為了防止各個(gè)進(jìn)程之間相互干擾和保護(hù)各個(gè)區(qū)域內(nèi)的信息不被破壞,必須實(shí)現(xiàn)(存儲(chǔ)保護(hù))。
22.缺頁(yè)中斷率與分配給作業(yè)的主存塊數(shù)有關(guān),一般地,分配給作業(yè)的主存塊數(shù)多,能(降
低)缺頁(yè)中斷率。
23.多分區(qū)的存儲(chǔ)管理可采用(固定分區(qū)分配)或 動(dòng)態(tài)分區(qū)分配方式進(jìn)行管理。
24.作業(yè)的頁(yè)表中包含邏輯地址中的頁(yè)號(hào)與主存中(物理塊號(hào))的對(duì)應(yīng)關(guān)系。
?
二、選擇題(64小題,共64分)
1.在分段存儲(chǔ)管理方式中,(A.以段為單位分配,每段是一個(gè)連續(xù)存儲(chǔ)區(qū))。
2.下列(C.分頁(yè)管理)存儲(chǔ)管理方式能使存儲(chǔ)碎片盡可能少,而且使內(nèi)存利用率較高。
3.在請(qǐng)求頁(yè)式存儲(chǔ)管理中,頁(yè)面的大小與可能產(chǎn)生的缺頁(yè)中斷次數(shù)(B.成反比)。
4.操作系統(tǒng)采用分頁(yè)存儲(chǔ)管理方式,要求(A.每個(gè)進(jìn)程擁有一張頁(yè)表,且進(jìn)程的頁(yè)表駐留在內(nèi)存中)。
5.在可變分區(qū)存儲(chǔ)管理中的拼接技術(shù)可以(A.集中空閑分區(qū))。
6.引入分段存儲(chǔ)管理,主要是為了滿足用戶的一系列要求,以下不屬于這一系列要求的是(A.方便操作)。
7.系統(tǒng)抖動(dòng)是指(B.剛被調(diào)出的頁(yè)面又立即被裝入所形成的頻繁裝入/調(diào)出的現(xiàn)象)。
8.在請(qǐng)求分頁(yè)系統(tǒng)中,分頁(yè)是由(D.操作系統(tǒng))實(shí)現(xiàn)的。
9.動(dòng)態(tài)分區(qū)管理要求對(duì)每一個(gè)作業(yè)都分配(A.地址連續(xù))的內(nèi)存單元。
10.最佳適應(yīng)算法的空閑分區(qū)是(B.按容量大小遞增順序連在一起)。
11.虛擬存儲(chǔ)技術(shù)是(B.邏輯上擴(kuò)充內(nèi)存空間的技術(shù))。
12.分段管理提供(B.2)維的地址結(jié)構(gòu)。
13.較好地解決外部碎片問題的存儲(chǔ)管理方法是(A.分頁(yè)管理)。
14.在段頁(yè)式存儲(chǔ)管理中,CPU每次從內(nèi)存中取一次數(shù)據(jù)需要(B.3)次訪問內(nèi)存。
15.多個(gè)進(jìn)程在內(nèi)存中彼此互不干擾的環(huán)境下運(yùn)行,操作系統(tǒng)是通過(guò)(B.內(nèi)存保護(hù))來(lái)實(shí)現(xiàn)互不干擾的。
16.在段頁(yè)式存儲(chǔ)管理中,地址映像表是(C.每個(gè)作業(yè)或進(jìn)程有一張段表、每個(gè)段有一張頁(yè)表)。
17.采用分段存儲(chǔ)管理的系統(tǒng)中,若地址用24位表示,其中8位表示段內(nèi)地址,則允許分段的最大個(gè)數(shù)是(B.216)。
18.以時(shí)間換空間的技術(shù)是(B.虛擬技術(shù))。
19.存儲(chǔ)管理的目的是(C.方便用戶和提高內(nèi)存利用率)。
20.在請(qǐng)求分頁(yè)存儲(chǔ)管理中,若進(jìn)程訪問的頁(yè)面不在主存,且主存中沒有可用的空閑塊時(shí),系統(tǒng)正確的處理順序?yàn)椋?strong>C.缺頁(yè)中斷,決定淘汰頁(yè),頁(yè)面調(diào)出,頁(yè)面調(diào)入)。
21.對(duì)主存儲(chǔ)器的訪問,是(B.以字節(jié)或字為單位)。
22.在請(qǐng)求頁(yè)式存儲(chǔ)管理中,頁(yè)表項(xiàng)中使用修改位的目的是(D.檢查頁(yè)面是否最近被改寫過(guò))。
23.(B.交換技術(shù))是指將作業(yè)不需要或暫時(shí)不需要的部分移到外存,讓出內(nèi)存空間以調(diào)入其他所需數(shù)據(jù)。
24.若處理器有32位地址,則它的虛擬地址空間為(B.4GB)。
25.在固定分區(qū)分配中,每個(gè)分區(qū)的大小是(C.可以不同但預(yù)先固定)。
26.以下存儲(chǔ)管理技術(shù)中,支持虛擬存儲(chǔ)器的技術(shù)是(C.請(qǐng)求分頁(yè)技術(shù))。
27.段頁(yè)式存儲(chǔ)管理汲取了頁(yè)式管理和段式管理的長(zhǎng)處,其實(shí)現(xiàn)原理結(jié)合了頁(yè)式和段式管理的基本思想,即(B.用分段方法來(lái)分配和管理用戶地址空間,用分頁(yè)方法來(lái)管理物理存儲(chǔ)空間)。
28.在虛擬存儲(chǔ)系統(tǒng)中,地址轉(zhuǎn)換工作是由(A.硬件)完成的。
29.在分段存儲(chǔ)管理中,一個(gè)程序如何分段是在(B.用戶編程時(shí))決定的。
30.(A.固定分區(qū)管理)要求主存空間分配具有連續(xù)性。
31.首次適應(yīng)算法的空閑分區(qū)是(C.按地址由低到高排列)。
32.在存儲(chǔ)管理中采用交換技術(shù),目的是(D.提高內(nèi)存利用率)。
33.在分頁(yè)存儲(chǔ)管理中,主存的分配是(A.以塊為單位進(jìn)行)。
34.當(dāng)內(nèi)存碎片容量大于某一作業(yè)所申請(qǐng)的內(nèi)存容量時(shí),(C.經(jīng)過(guò)拼接后,可以為這一作業(yè)分配內(nèi)存)。
35.以下有關(guān)外層頁(yè)表的敘述中錯(cuò)誤的是(A.反映在磁盤上頁(yè)面存放的物理位置)。
36.為了保證一個(gè)程序在主存中改變了存放位置之后仍能正確執(zhí)行,則對(duì)主存空間應(yīng)采用(B.動(dòng)態(tài)重定位)技術(shù)。
37.以下存儲(chǔ)管理方式中,(A.固定分區(qū))方式可以采用靜態(tài)重定位。
38.碎片是指(D.未被使用,而又暫時(shí)不能使用的存儲(chǔ)區(qū))。
39.實(shí)施虛擬存儲(chǔ)器管理的依據(jù)是程序的(A.局部性原理)。
40.以下存儲(chǔ)管理方式中,不適合多道程序設(shè)計(jì)系統(tǒng)的是(A.單一連續(xù)分配)。
41.實(shí)現(xiàn)虛擬內(nèi)存最主要的技術(shù)是(C.部分對(duì)換)。
42.在可變分區(qū)分配管理中,某一作業(yè)完成后,系統(tǒng)收回其內(nèi)存空間,并與相鄰空閑區(qū)合并,為此修改空閑區(qū)說(shuō)明表,造成空閑分區(qū)數(shù)減1的情況是(D.有上鄰空閑分區(qū),也有下鄰空閑分區(qū))。
43.以下不屬于虛擬內(nèi)存特征的是(A.一次性)。
44.在段式分配中,CPU每次從內(nèi)存中取一次數(shù)據(jù)需要(C.2)次訪問內(nèi)存。
45.設(shè)主存容量為1 MB,外存容量為400MB,計(jì)算機(jī)系統(tǒng)的地址寄存器有24位,那么虛存的最大容量是(D.224B)。
46.(B.分頁(yè))存儲(chǔ)管理方式提供一維地址結(jié)構(gòu)。
47.系統(tǒng)采用分區(qū)存儲(chǔ)管理時(shí),可采用(B.交換技術(shù))讓多用戶進(jìn)程輪流進(jìn)入主存儲(chǔ)器執(zhí)行。
48.在分頁(yè)管理系統(tǒng)中,分頁(yè)是由(B.硬件)完成的。
49.(B.不必將作業(yè)全部裝入內(nèi)存)是請(qǐng)求分頁(yè)存儲(chǔ)管理方式和基本分頁(yè)存儲(chǔ)管理方式的區(qū)別。
50.分頁(yè)式存儲(chǔ)管理的主要特點(diǎn)是(C.不要求作業(yè)裝入到主存的連續(xù)區(qū)域)。
51.請(qǐng)求頁(yè)式存儲(chǔ)管理的主要特點(diǎn)是(B.不要求將作業(yè)同時(shí)全部裝入主存的連續(xù)區(qū)域)。
52.把作業(yè)空間中使用的邏輯地址變?yōu)閮?nèi)存中物理地址稱為(B.重定位)。
53.虛擬內(nèi)存的基礎(chǔ)是(A.局部性理論)。
54.下述內(nèi)存分配算法中,(C.最佳適應(yīng)算法)更易產(chǎn)生無(wú)法利用的小碎片。
55.虛擬存儲(chǔ)器是(A.可以容納總和超過(guò)主存容量的多個(gè)作業(yè)同時(shí)運(yùn)行的一個(gè)地址空間)。
56.請(qǐng)求分頁(yè)存儲(chǔ)管理中,若把頁(yè)面尺寸增加一倍,在程序順序執(zhí)行時(shí),則一般缺頁(yè)中斷次數(shù)會(huì)(B.減少)。
57.碎片現(xiàn)象的存在使得(A.內(nèi)存空間利用率降低)。
58.以下頁(yè)面置換算法中,(C.先進(jìn)先出算法)可能會(huì)產(chǎn)生Belady現(xiàn)象。
59.源程序經(jīng)過(guò)編譯后所生成的目標(biāo)程序所對(duì)應(yīng)的地址空間是(B.邏輯地址空間)。
60.有關(guān)虛擬存儲(chǔ)器的敘述中正確的是(B.要求作業(yè)運(yùn)行前,不必全部裝入內(nèi)存,且在運(yùn)行中不必常駐內(nèi)存)。
61.虛擬內(nèi)存的最大容量只受(D.計(jì)算機(jī)地址位數(shù))的限制。
62.下列關(guān)于虛擬存儲(chǔ)器的論述中,正確的論述(B.在請(qǐng)求段頁(yè)式系統(tǒng)中,以段為單位管理用戶的虛空間,以頁(yè)為單位管理內(nèi)存空間)。
63.在請(qǐng)求分頁(yè)系統(tǒng)中,LRU算法是指(B.近期最長(zhǎng)時(shí)間以來(lái)沒被訪問的頁(yè)先淘汰)。
64.在請(qǐng)求頁(yè)式存儲(chǔ)管理中,若所需頁(yè)面不在內(nèi)存中,則會(huì)引起(D.缺頁(yè)中斷)。
三、判斷題(34小題,共34分)
1.在虛擬存儲(chǔ)系統(tǒng)中,用戶地址空間的大小可以不受任何限制。 (×)
2.分頁(yè)存儲(chǔ)管理中一個(gè)作業(yè)可以占用不連續(xù)的內(nèi)存空間,而分段存儲(chǔ)管理中一個(gè)作業(yè)則是占用連續(xù)的內(nèi)存空間。 (×)
3.首次適應(yīng)算法的空閑區(qū)是按地址順序從小到大登記在空閑區(qū)表中。 (√)
4.存儲(chǔ)保護(hù)的目的是限制內(nèi)存的分配。 (X)
5.大多數(shù)虛擬系統(tǒng)采用最佳置換算法(OPT)是因?yàn)樗_實(shí)可以得到最小的缺頁(yè)率。(×)
6.在請(qǐng)求分頁(yè)存儲(chǔ)系統(tǒng)中,頁(yè)面長(zhǎng)度固定并且是硬件決定的。 (√)
7.動(dòng)態(tài)重定位技術(shù)使得作業(yè)在內(nèi)存中可以移動(dòng)。 (√)
8.分段存儲(chǔ)管理中,段內(nèi)地址是連續(xù)的,段與段之間的地址也是連續(xù)的。 (×)
9.在請(qǐng)求分頁(yè)存儲(chǔ)管理中,頁(yè)面淘汰所花費(fèi)的時(shí)間不屬于系統(tǒng)開銷。 (×)
10.分段存儲(chǔ)管理要有硬件地址轉(zhuǎn)換機(jī)構(gòu)做支撐,段表的表項(xiàng)起到了基址/限長(zhǎng)寄存器的作用。 (√)
11.把邏輯地址轉(zhuǎn)換成物理地址的工作稱為重定位。 (√)
12.在現(xiàn)代操作系統(tǒng)中,不允許用戶干預(yù)內(nèi)存的分配。 (√)
13.最佳適應(yīng)算法的空閑區(qū)是按地址順序從小到大登記在空閑區(qū)表中。 (×)
14.采用動(dòng)態(tài)分區(qū)方式將作業(yè)裝入主存后,作業(yè)的地址不一定是連續(xù)的。 (×)
15.在基本分頁(yè)存儲(chǔ)管理中,一個(gè)作業(yè)的邏輯地址由頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分組成。 (√)
16.虛擬存儲(chǔ)器的容量比實(shí)際物理內(nèi)存空間大得多。 (√)
17.快表是位于內(nèi)存中的一個(gè)特殊區(qū)域。 (X)
18.分頁(yè)存儲(chǔ)管理中,用戶可以按照自己的意愿將程序劃分成若干相等的頁(yè)。 (×)
19.分段存儲(chǔ)管理中,分段是由用戶決定的。 (√)
20.在動(dòng)態(tài)分區(qū)中內(nèi)存中的碎片,可以直接通過(guò)拼湊合并成為一個(gè)連續(xù)區(qū)。 (√)
21.虛擬存儲(chǔ)器是利用操作系統(tǒng)產(chǎn)生的一個(gè)假想的特大存儲(chǔ)器,在邏輯上擴(kuò)充了內(nèi)存容量,而物理內(nèi)存容量并未增加。 (√)
22.在基本分頁(yè)存儲(chǔ)管理中,一個(gè)作業(yè)的邏輯地址為12位,則邏輯地址空間的容量為212B。(×)
23.段頁(yè)式存儲(chǔ)管理實(shí)現(xiàn)了分頁(yè)存儲(chǔ)管理和分段存儲(chǔ)管理方式的優(yōu)勢(shì)互補(bǔ)。 (√)
24.動(dòng)態(tài)分區(qū)方式按作業(yè)需求量分配主存空間,所以分區(qū)長(zhǎng)度和個(gè)數(shù)都是確定的。 (×)
25.分段存儲(chǔ)管理中,系統(tǒng)為每個(gè)段分配一個(gè)連續(xù)主存區(qū)。 (√)
26.在基本分頁(yè)存儲(chǔ)管理中,一個(gè)作業(yè)必須全部裝入內(nèi)存才能運(yùn)行。 (√)
27.在分頁(yè)存儲(chǔ)管理中,作業(yè)的頁(yè)面大小和內(nèi)存物理塊大小可以不相同。 (X)
28.存儲(chǔ)管理的主要目的是擴(kuò)大內(nèi)存空間。 (X)
29.在請(qǐng)求分頁(yè)存儲(chǔ)系統(tǒng)中,頁(yè)面大小根據(jù)程序長(zhǎng)度動(dòng)態(tài)地分配。 (×)
30.在虛擬存儲(chǔ)管理方式下,一個(gè)作業(yè)必須全部裝入主存才能執(zhí)行。 (×)
31.連續(xù)分配管理方式僅適合于單道程序運(yùn)行環(huán)境。 (×)
32.在分頁(yè)存儲(chǔ)管理中,頁(yè)的大小是可以不相等的。 (×)
33.CPU可以直接存取外存上的信息。 (×)
34.在分頁(yè)存儲(chǔ)管理中,作業(yè)裝入主存后,整個(gè)作業(yè)的地址是連續(xù)的。 (×)
?
四、簡(jiǎn)答題(10小題,共50分)
1.簡(jiǎn)述操作系統(tǒng)是如何處理缺頁(yè)中斷的。
?答:①查主存分配表找一個(gè)空閑主存塊,若無(wú)空塊,則由頁(yè)面調(diào)度解決,然后查頁(yè)表找出該?頁(yè)在磁盤上的位置,啟動(dòng)磁盤讀出該頁(yè)信息;
②從磁盤上讀出的信息裝入找到的主存塊中,
③修改頁(yè)表中的相應(yīng)表目,表示該頁(yè)已在 主存中
④重新執(zhí)行破中斷的命令
?
2.在分頁(yè)虛擬存儲(chǔ)管理系統(tǒng)中,為什么說(shuō)一條指令執(zhí)行期間可能產(chǎn)生多次缺頁(yè)中斷?
答:因分頁(yè)虛擬管理方式中,只要作業(yè)的部分頁(yè)在內(nèi)存,該作業(yè)就能執(zhí)行,而在執(zhí)行過(guò)程中發(fā)現(xiàn)所要訪問的指令或者數(shù)據(jù)不在內(nèi)存時(shí),則產(chǎn)生缺頁(yè)中斷,將所需的頁(yè)面調(diào)入內(nèi)存。在分頁(yè)虛擬存儲(chǔ)管理系統(tǒng)中,一條指令(如CopyA to B)可能跨了兩個(gè)頁(yè),而其中要訪問的操作數(shù)可能也跨了兩個(gè)頁(yè)。當(dāng)要執(zhí)行這類指令,而相應(yīng)的頁(yè)都不在內(nèi)存時(shí),就將產(chǎn)生多次缺頁(yè)中斷
?
3.什么是交換技術(shù)?
答:交換是指把內(nèi)存中暫時(shí)不能運(yùn)行的進(jìn)程或者暫時(shí)不用的程序和數(shù)據(jù),調(diào)到外存上,以便騰出足夠的內(nèi)存空間,再把已具備運(yùn)行條件的進(jìn)程和進(jìn)程所需要的程序和數(shù)據(jù)調(diào)入內(nèi)存
從而提高內(nèi)存利用率
?
4.在請(qǐng)求分頁(yè)存儲(chǔ)管理中影響缺頁(yè)中斷率有哪幾個(gè)主要因素?
答:頁(yè)面大小,進(jìn)程所分配物理塊的數(shù)目,頁(yè)面置換算法,程序固有特性
?
5什么是虛擬存儲(chǔ)器,其特點(diǎn)是什么?
答:由進(jìn)程中的目標(biāo)代碼、數(shù)據(jù)等虛擬地址組成的虛擬空間稱為虛擬存儲(chǔ)器。虛擬存儲(chǔ)器不 考慮物理存儲(chǔ)器的大小和信息存放的實(shí)際位置,只規(guī)定每個(gè)進(jìn)程中相互關(guān)聯(lián)信息的相對(duì) 位置。每個(gè)進(jìn)程都擁有自己的虛擬存儲(chǔ)器,且虛擬存儲(chǔ)器的容量是由計(jì)算機(jī)的地址結(jié)構(gòu) 和尋址方式來(lái)確定的。虛擬存儲(chǔ)器就是要提供一個(gè)空間像磁盤那樣大、 速度像緩存那 樣快的主存儲(chǔ)系統(tǒng)。實(shí)現(xiàn)虛擬存儲(chǔ)器要求有相應(yīng)的地址轉(zhuǎn)換機(jī)構(gòu),以便把指令的虛擬地 址變換為實(shí)際物理地址;另外,由于內(nèi)存空間較小,進(jìn)程只有部分內(nèi)容存放在內(nèi)存中,其 他的待執(zhí)行時(shí)根據(jù)需要再調(diào)入內(nèi)存。
?
6.為什么要引入動(dòng)態(tài)重定位?
答:程序放在不連續(xù)的實(shí)際物理空間中,要進(jìn)行邏輯地址到物理地址的轉(zhuǎn)換,實(shí)現(xiàn)動(dòng)態(tài)重定位
?
7.請(qǐng)求分頁(yè)管理方式能滿足用戶哪些需要?為實(shí)現(xiàn)該種存儲(chǔ)管理方式,頁(yè)表中需包含哪些 項(xiàng)?
答:允許用戶程序只裝入少數(shù)頁(yè)面的程序即可啟動(dòng)運(yùn)行
頁(yè)表中還包括特征位、外存地址、修改位等
?
8.試述缺頁(yè)中斷與一般中斷的主要區(qū)別。
答:兩種中斷產(chǎn)生的時(shí)刻不同:缺頁(yè)中斷是在執(zhí)行一條指令中間時(shí)產(chǎn)生的中斷,并立即轉(zhuǎn)去 處理;而一般中斷則是在一條指令執(zhí)行完畢后,當(dāng)硬件中斷裝置發(fā)現(xiàn)有中斷請(qǐng)求時(shí)才去 響應(yīng)和處理。2)處理完畢后的歸屬不同:缺頁(yè)中斷處理完后,仍返回到原指令去重新執(zhí) 行,因?yàn)槟菞l指令并未執(zhí)行;而一般中斷則是或返回到被中斷進(jìn)程的下一條指令去執(zhí)行, 因?yàn)樯弦粭l指令已經(jīng)執(zhí)行完了,或重新調(diào)度,去執(zhí)行別的進(jìn)程程序。
9.簡(jiǎn)要比較主存的連續(xù)分配和離散分配兩種方式。

10.分頁(yè)和分段存儲(chǔ)方式的主要區(qū)別是什么?
答:①頁(yè)是信息的物理單位,分頁(yè)是為了滿足系統(tǒng)的需要;段是信息的邏輯單位,含有一組 意義相對(duì)完整的信息,分段是為了滿足用戶的需要。
②頁(yè)的大小固定且由系統(tǒng)確定,由系統(tǒng)把邏輯地址分為頁(yè)號(hào)和頁(yè)內(nèi)地址;段的長(zhǎng)度不固定,取決 于用戶編寫的程序
③分頁(yè)的作業(yè)地址空間是一維的;分段的作業(yè)地址空間是二維的