1.在進(jìn)程管理中,當(dāng) C 時(shí),進(jìn)程從阻塞狀態(tài)變?yōu)榫途w狀態(tài)。
A.進(jìn)程被進(jìn)程調(diào)度程序選中 B.等待某一事件
C.等待的事件發(fā)生 D.時(shí)間片用完
2.分配到必要的資源并獲得處理機(jī)時(shí)的進(jìn)程狀態(tài)是 B 。
A.就緒狀態(tài) B.執(zhí)行狀態(tài) C.阻塞狀態(tài) D.撤消狀態(tài)
3.P、V操作是 A 。
A.兩條低級(jí)進(jìn)程通信原語 B.兩組不同的機(jī)器指令
C.兩條系統(tǒng)調(diào)用命令 D.兩條高級(jí)進(jìn)程通信原語
4.設(shè)系統(tǒng)中有n(n>2)個(gè)進(jìn)程,且當(dāng)前不在執(zhí)行進(jìn)程調(diào)度程序,試考慮下述4種情況,
不可能發(fā)生的情況是 A 。
A.沒有運(yùn)行進(jìn)程,有2個(gè)就緒進(jìn)程,n個(gè)進(jìn)程處于等待狀態(tài)。
B.有1個(gè)運(yùn)行進(jìn)程,沒有就緒進(jìn)程,n-1個(gè)進(jìn)程處于等待狀態(tài)。
C.有1個(gè)運(yùn)行進(jìn)程,有1個(gè)就緒進(jìn)程,n-2個(gè)進(jìn)程處理等待狀態(tài)。
D.有1個(gè)運(yùn)行進(jìn)程,n-1個(gè)就緒進(jìn)程,沒有進(jìn)程處于等待狀態(tài)。
5.若P、V操作的信號(hào)量S初值為2,當(dāng)前值為-1,則表示有 B 等待進(jìn)程。
A. 0個(gè) B. 1個(gè) C. 2個(gè) D. 3個(gè)
6.進(jìn)程的三個(gè)基本狀態(tài)在一定條件下可以相互轉(zhuǎn)化,進(jìn)程由就緒狀態(tài)變?yōu)檫\(yùn)行狀態(tài)的條件是 D 。
A.時(shí)間片用完 B.等待某事件發(fā)生
C.等待的某事件已發(fā)生 D.被進(jìn)程調(diào)度程序選中
7.進(jìn)程的三個(gè)基本狀態(tài)在一定條件下可以相互轉(zhuǎn)化,進(jìn)程由運(yùn)行狀態(tài)變?yōu)樽枞麪顟B(tài)的條件是 B 。
A.時(shí)間片用完 B.等待某事件發(fā)生
C.等待的某事件已發(fā)生 D.被進(jìn)程調(diào)度程序選中
8.下列的進(jìn)程狀態(tài)變化中, C 變化是不可能發(fā)生的。
A.運(yùn)行à就緒 B.運(yùn)行à就緒 C.等待à運(yùn)行 D.等待à就緒
9.一個(gè)運(yùn)行的進(jìn)程用完了分配給它的時(shí)間片后,它的狀態(tài)變?yōu)?span style="text-decoration:underline;"> A 。
A.就緒 B.等待 C.運(yùn)行 D.由用戶自己確定
10.用V操作喚醒一個(gè)等待進(jìn)程時(shí),被喚醒進(jìn)程的狀態(tài)變?yōu)?span style="text-decoration:underline;"> B 。
A.等待 B.就緒 C.運(yùn)行 D.完成
11.操作系統(tǒng)通過 B 對(duì)進(jìn)程進(jìn)行管理。
A. JCB B. PCB C. DCT D. CHCT
12.用P、V操作可以解決 A 互斥問題。
A. 一切 B. 某些 C. 正確 D. 錯(cuò)誤
13.一個(gè)進(jìn)程被喚醒意味著 D 。
A. 該進(jìn)程重新占有了CPU B. 它的優(yōu)先權(quán)變?yōu)樽畲?span>
C. 其PCB移至等待隊(duì)列隊(duì)首 D. 進(jìn)程變?yōu)榫途w狀態(tài)
14.多道程序環(huán)境下,操作系統(tǒng)分配資源以 C 為基本單位。
A. 程序 B. 指令 C. 進(jìn)程 D. 作業(yè)
15. 從靜態(tài)的角度看,進(jìn)程是由(A)、(B)、(C)三部分組成的,其中(C)是進(jìn)程存在的唯一標(biāo)志。當(dāng)幾個(gè)進(jìn)程共享(A)時(shí),(A)應(yīng)當(dāng)是可重入代碼。
A:程序段;
B:數(shù)據(jù)段;
C:PCB;
16. 進(jìn)程的三個(gè)基本狀態(tài)是(A)、(B)、(C)。由(A)到(B)是由進(jìn)程調(diào)度所引起的;由(B)到(C)是正在執(zhí)行的進(jìn)程發(fā)生了某事件,使之無法繼續(xù)執(zhí)行而引起的。
A:就緒;
B:執(zhí)行;
C:阻塞;
17. 正在等待他人釋放臨界資源的進(jìn)程處于(A)狀態(tài),已分配到除CPU外的所有資源的進(jìn)程處于(B)狀態(tài),已獲得CPU的進(jìn)程處于(C)狀態(tài)。
A:阻塞;
B:就緒;
C:執(zhí)行;
18. 下列進(jìn)程狀態(tài)轉(zhuǎn)換中,絕對(duì)不可能發(fā)生的狀態(tài)轉(zhuǎn)換是(A);一般不會(huì)發(fā)生的狀態(tài)轉(zhuǎn)換是(B)。
A:就緒à阻塞;
B:阻塞à執(zhí)行;
19. 在一個(gè)單處理機(jī)系統(tǒng)中,存在5個(gè)進(jìn)程,最多可有(A)個(gè)進(jìn)程處于就緒隊(duì)列;如果這5個(gè)進(jìn)程中有一個(gè)系統(tǒng)進(jìn)程IDLE(也叫空轉(zhuǎn)進(jìn)程,因?yàn)樗皇遣粩嘌h(huán)地執(zhí)行空語句),則最多可有(B)個(gè)進(jìn)程處于阻塞狀態(tài)。
A,B:(1)5;(2)4;(3)3;(4)2;(5)1;(6)0。
20. 正在執(zhí)行的進(jìn)程由于其時(shí)間片用完被暫停執(zhí)行,此時(shí)進(jìn)程應(yīng)從執(zhí)行狀態(tài)變?yōu)椋ˋ)狀態(tài);處于靜止阻塞狀態(tài)的進(jìn)程,在進(jìn)程等待的事件出現(xiàn)后,應(yīng)變?yōu)椋˙)狀態(tài);若進(jìn)程正處于執(zhí)行狀態(tài)時(shí),因終端的請(qǐng)求而暫停下來以便研究其運(yùn)行情況,這時(shí)進(jìn)程應(yīng)轉(zhuǎn)變?yōu)椋–)狀態(tài),若進(jìn)程已處于阻塞狀態(tài);則此時(shí)應(yīng)轉(zhuǎn)變?yōu)椋―)狀態(tài)。
A:(1)靜止阻塞;(2)活動(dòng)阻塞;(3)靜止就緒;(4)活動(dòng)就緒;(5)執(zhí)行。
B:(1)靜止阻塞;(2)活動(dòng)阻塞;(3)靜止就緒;(4)活動(dòng)就緒;(5)執(zhí)行。
C:(1)靜止阻塞;(2)活動(dòng)阻塞;(3)靜止就緒;(4)活動(dòng)就緒;(5)執(zhí)行。
D:(1)靜止阻塞;(2)活動(dòng)阻塞;(3)靜止就緒;(4)活動(dòng)就緒;(5)執(zhí)行。
21. 為使進(jìn)程由活動(dòng)就緒轉(zhuǎn)變?yōu)殪o止就緒,應(yīng)利用(A)原語;為使進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài),應(yīng)利用(B)原語;為使進(jìn)程由靜止就緒變?yōu)榛顒?dòng)就緒,應(yīng)利用(C)原語;從阻塞狀態(tài)變?yōu)榫途w狀態(tài)應(yīng)利用(D)原語。
A:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup。
B:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup。
C:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup。
D:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup。
22. 在分時(shí)系統(tǒng)中,導(dǎo)致進(jìn)程創(chuàng)建的典型事件是(A);在批處理系統(tǒng)中,導(dǎo)致進(jìn)程創(chuàng)建的典型事件是(B);由系統(tǒng)專門為運(yùn)行中的應(yīng)用進(jìn)程創(chuàng)建新進(jìn)程的事件是(C)。在創(chuàng)建進(jìn)程時(shí),(D)不是創(chuàng)建所必需的步驟。
A:(1)用戶注冊(cè);(2)用戶登錄;(3)用戶記賬;(4)用戶通信。
B:(1)作業(yè)錄入;(2)作業(yè)調(diào)度;(3)進(jìn)程調(diào)度;(4)中級(jí)調(diào)度。
C:(1)分配資源;(2)進(jìn)行通信;(3)共享資源;(4)提供服務(wù)。
D:(1)為進(jìn)程建立PCB;(2)為進(jìn)程分配內(nèi)存等資源;(3)為進(jìn)程分配CPU;(4)將進(jìn)程插入就緒隊(duì)列。
23. 從下面對(duì)臨界區(qū)的論述中,選出一條正確的論述。
(1)臨界區(qū)是指進(jìn)程中用于實(shí)現(xiàn)進(jìn)程互斥的那段代碼。
(2)臨界區(qū)是指進(jìn)程中用于實(shí)現(xiàn)進(jìn)程同步的那段代碼。
(3)臨界區(qū)是指進(jìn)程中用于實(shí)現(xiàn)進(jìn)程通信的那段代碼。
(4)臨界區(qū)是指進(jìn)程中用于訪問共享資源的那段代碼。
(5)臨界區(qū)是指進(jìn)程中訪問臨界資源的那段代碼。
24. 進(jìn)程A和B共享同一臨界資源,并且進(jìn)程A正處于對(duì)應(yīng)的臨界區(qū)內(nèi)執(zhí)行。請(qǐng)從下列描述中選擇一條正確的描述。C
A. 進(jìn)程A的執(zhí)行不能被中斷,即臨界區(qū)的代碼具有原子性。
B. 進(jìn)程A的執(zhí)行能被中斷,但中斷A后,不能將CPU調(diào)度給進(jìn)程B。
C. 進(jìn)程A的執(zhí)行能被中斷,而且只要B進(jìn)程就緒,就可以將CPU調(diào)度給進(jìn)程B。
D. 進(jìn)程A的執(zhí)行能被中斷,而且只要B進(jìn)程就緒,就必定將CPU調(diào)度給進(jìn)程B。
25. (A)是一種只能由wait和signal操作所改變的整型變量,(A)可用于實(shí)現(xiàn)進(jìn)程的(B)和(C),(B)是排他性訪問臨界資源。
A:(1)控制變量;(2)鎖;(3)整型信號(hào)量;(4)記錄型信號(hào)量。
B:(1)同步;(2)通信;(3)調(diào)度;(4)互斥。
C:(1)同步;(2)通信;(3)調(diào)度;(4)互斥。
26. 對(duì)于記錄型信號(hào)量,在執(zhí)行一次wait操作時(shí),信號(hào)量的值應(yīng)當(dāng)(A),當(dāng)其值為(B)時(shí),進(jìn)程阻塞。在執(zhí)行signal操作時(shí),信號(hào)量的值應(yīng)當(dāng)為(C),當(dāng)其值為(D)時(shí),應(yīng)喚醒阻塞隊(duì)列中的進(jìn)程。
A:(1)不變;(2)加1;(3)減1;(4)加指定數(shù)值;(5)減指定數(shù)值。
B:(1)大于0;(2)小于0;(3)大于等于0;(4)小于等于0.
C:(1)不變;(2)加1;(3)減1;(4)加指定數(shù)值;(5)減指定數(shù)值。
D:(1)大于0;(2)小于0;(3)大于等于0;(4)小于等于0.
27. 用信號(hào)量S實(shí)現(xiàn)對(duì)系統(tǒng)中4臺(tái)打印機(jī)的互斥使用,S.value的初值應(yīng)設(shè)置為(A),若S.value的初值為-1,則表示S.L隊(duì)列中有(B)個(gè)等待進(jìn)程。
A:(1)1;(2)0;(3)-1;(4)4;(5)-4
B:(1)1;(2)2;(3)3;(4)4;(5)5;(6)6;(7)0。
28. 設(shè)有10個(gè)進(jìn)程共享一個(gè)互斥段,如果最多允許有1個(gè)進(jìn)程進(jìn)入互斥段,則所采用的互斥信號(hào)量初值應(yīng)設(shè)置為(A),而該信號(hào)量的取值范圍為(B);如果最多允許有3個(gè)進(jìn)程同時(shí)進(jìn)入互斥段,則所采用的互斥信號(hào)量初值應(yīng)設(shè)置為(C)。
A:(1)10;(2);3;(3)1;(4)0。
B:(1)0~1;(2)-1~0;(3)1~-9;(4)0~-9。
C:(1)10;(2);3;(3)1;(4)0。
29. 在生產(chǎn)者-消費(fèi)者問題中,應(yīng)設(shè)置互斥信號(hào)量mutex、資源信號(hào)量full和empty。它們的初值應(yīng)分別為(A)、(B)、(C)。
A:(1)0;(2)1;(3)-1;(4)-n;(5)+n。
B:(1)0;(2)1;(3)-1;(4)-n;(5)+n。
C:(1)0;(2)1;(3)-1;(4)-n;(5)+n。
30. 對(duì)生產(chǎn)者-消費(fèi)者問題的算法描述如下,請(qǐng)選擇正確的答案編號(hào)填入方框中。
Producer: begin
Repeat
(A);
(B);
Buffer(in):=m;
In:=(in+1)mod n;
(C);
(D);
Until false
End
Consumer: begin
Repeat
(E);
(B);
M:=buffer(out);
Out:=(out+1)mod n;
(C);
(F);
Until false
end
A: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。
B: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。
C: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。
D: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。
E: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。
F: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。
31. 試選擇(A)~(D),以便能正確地描述圖2.12所示的前趨關(guān)系。
S1 |
S2 |
S3 |
S4 |
a |
b |
c |
Begin
Parbegin
Begin S1; (A); end;
Begin S2; (B); end;
Begin
Wait(a); wait(b); S3; (C);
End
Begin (D); S4 end
Parend
End
A: (1)signal(a); (2)signal(b); (3)wait(c); (4)signal(c)。
B: (1)signal(a); (2)signal(b); (3)wait(c); (4)signal(c)。
C: (1)signal(a); (2)signal(b); (3)wait(c); (4)signal(c)。
D: (1)signal(a); (2)signal(b); (3)wait(c); (4)signal(c)。
32. 有兩個(gè)程序:A程序按順序使用CPU10秒、設(shè)備甲5秒、CPU5秒、設(shè)備乙10秒、CPU10秒;B程序按順序使用設(shè)備甲10秒、CPU10秒、設(shè)備乙5秒、CPU5秒、設(shè)備乙10秒。在順序環(huán)境下,執(zhí)行上述程序,CPU的利用率約為(A)。若允許它們采用非搶占方式并發(fā)執(zhí)行,并且不考慮切換等開銷,則CPU的利用率約為(B)。
A(1)30%;(2)40%;(3)50%;(4)60%;(5)70%;(6)80%;(7)90%。
B(1)30%;(2)40%;(3)50%;(4)60%;(5)70%;(6)80%;(7)90%。
33. 從下面的敘述中選出一條正確的敘述:
(1)操作系統(tǒng)的一個(gè)重要概念是進(jìn)程,不同的進(jìn)程所執(zhí)行的代碼也不同。
(2)操作系統(tǒng)通過PCB來控制和管理進(jìn)程,用戶進(jìn)程可從PCB中讀出與本身運(yùn)行狀態(tài)相關(guān)的信息。
(3)當(dāng)進(jìn)程由執(zhí)行狀態(tài)變?yōu)榫途w狀態(tài)時(shí),CPU現(xiàn)場(chǎng)信息必須被保存在PCB中。
(4)當(dāng)進(jìn)程申請(qǐng)CPU得不到滿足時(shí),它將處于阻塞狀態(tài)。
(5)進(jìn)程是可與其他程序并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行過程,所以程序段是進(jìn)程存在的唯一標(biāo)志。
34. 從下面的敘述中選出4條正確的敘述:
(1)一個(gè)進(jìn)程的狀態(tài)發(fā)生變化總會(huì)引起其它一些進(jìn)程的狀態(tài)發(fā)生變化。
(2)進(jìn)程被掛起(suspend)后,狀態(tài)變?yōu)樽枞麪顟B(tài)。
(3)信號(hào)量的初值不能為負(fù)數(shù)。
(4)線程是CPU調(diào)度的基本單位,但不是資源分配的基本單位。
(5)在進(jìn)程對(duì)應(yīng)的代碼中使用wait、signal操作后,可以防止系統(tǒng)發(fā)生死鎖。
(6)管程每次只允許一個(gè)進(jìn)程進(jìn)入。
(7)wait、signal操作可以解決一切互斥問題。
(8)程序的順序執(zhí)行具有不可再現(xiàn)性。
35. 在引入線程的操作系統(tǒng)中,資源分配和調(diào)度的基本單位是(A),CPU調(diào)度和分配的基本單位是(B)。
A:(1)程序;(2)進(jìn)程;(3)線程;(4)作業(yè)。
B:(1)程序;(2)進(jìn)程;(3)線程;(4)作業(yè)。
36. 在三種基本類型的操作系統(tǒng)中,都設(shè)置了(A),在批處理系統(tǒng)中還應(yīng)設(shè)置(B);在分時(shí)系統(tǒng)中除了(A)以外,通常還設(shè)置了(C),在多處理機(jī)系統(tǒng)中則還需設(shè)置(D)。
A:(1)剝奪調(diào)度;(2)作業(yè)調(diào)度;(3)進(jìn)程調(diào)度;(4)中級(jí)調(diào)度;(5)多處理機(jī)調(diào)度。
B:(1)剝奪調(diào)度;(2)作業(yè)調(diào)度;(3)進(jìn)程調(diào)度;(4)中級(jí)調(diào)度;(5)多處理機(jī)調(diào)度。
C:(1)剝奪調(diào)度;(2)作業(yè)調(diào)度;(3)進(jìn)程調(diào)度;(4)中級(jí)調(diào)度;(5)多處理機(jī)調(diào)度。
D:(1)剝奪調(diào)度;(2)作業(yè)調(diào)度;(3)進(jìn)程調(diào)度;(4)中級(jí)調(diào)度;(5)多處理機(jī)調(diào)度。
37. 在面向用戶的調(diào)度準(zhǔn)則中,(A)是選擇實(shí)時(shí)調(diào)度算法的重要準(zhǔn)則,(B)是選擇分時(shí)系統(tǒng)中進(jìn)程調(diào)度算法的重要準(zhǔn)則,(C)是批處理系統(tǒng)中選擇作業(yè)調(diào)度算法的重要準(zhǔn)則,而(D)準(zhǔn)則則是為了照顧緊急作業(yè)用戶的要求而設(shè)置的。
A:(1)響應(yīng)時(shí)間快;(2)平均周轉(zhuǎn)時(shí)間短;(3)截止時(shí)間的保證;(4)優(yōu)先權(quán)高的作業(yè)能獲得優(yōu)先服務(wù);(5)服務(wù)費(fèi)低。
B:(1)響應(yīng)時(shí)間快;(2)平均周轉(zhuǎn)時(shí)間短;(3)截止時(shí)間的保證;(4)優(yōu)先權(quán)高的作業(yè)能獲得優(yōu)先服務(wù);(5)服務(wù)費(fèi)低。
C:(1)響應(yīng)時(shí)間快;(2)平均周轉(zhuǎn)時(shí)間短;(3)截止時(shí)間的保證;(4)優(yōu)先權(quán)高的作業(yè)能獲得優(yōu)先服務(wù);(5)服務(wù)費(fèi)低。
D:(1)響應(yīng)時(shí)間快;(2)平均周轉(zhuǎn)時(shí)間短;(3)截止時(shí)間的保證;(4)優(yōu)先權(quán)高的作業(yè)能獲得優(yōu)先服務(wù);(5)服務(wù)費(fèi)低。
38. 支持多道程序設(shè)計(jì)的操作系統(tǒng),在運(yùn)行過程中不斷地選擇新進(jìn)程運(yùn)行來實(shí)現(xiàn)CPU的共享,但其中(A)不是引起操作系統(tǒng)選擇新進(jìn)程的直接原因。
A:(1)執(zhí)行進(jìn)程的時(shí)間片用完;(2)執(zhí)行進(jìn)程出錯(cuò);(3)執(zhí)行進(jìn)程要等待某一事件發(fā)生;(4)有新進(jìn)程進(jìn)入就緒隊(duì)列。
39、一般情況下,互斥信號(hào)量的初值為 B 。
A. 0 B.1 C. 2 D. 4
第三部分 是非題
1.進(jìn)程是動(dòng)態(tài)的概念 (對(duì))
2.進(jìn)程執(zhí)行需要處理機(jī) (對(duì))
3.進(jìn)程是有生命期的 (對(duì))
4.進(jìn)程是指令的集合 (錯(cuò))
5.操作系統(tǒng)的一重要概念是進(jìn)程,因此不同進(jìn)程所執(zhí)行的代碼也一定不同(錯(cuò))
7.操作系統(tǒng)用PCB管理進(jìn)程,用戶進(jìn)程可以從PCB中讀出與本身運(yùn)行狀況有關(guān)的信息 (錯(cuò))
8.進(jìn)程同步是指某些進(jìn)程之間在邏輯上的相互制約關(guān)系 (對(duì))
9.在一個(gè)只有單個(gè)CPU的計(jì)算機(jī)中,進(jìn)程不能并行操作。
錯(cuò)。一個(gè)進(jìn)程在利用CPU運(yùn)行,另一個(gè)進(jìn)程可以同時(shí)進(jìn)行I/O操作,它們是并行的。
10.線程可以分為內(nèi)核級(jí)(Kernel Thread)和用戶級(jí)(User Thread)兩種,操作系統(tǒng)不可以直接調(diào)度用戶級(jí)的線程。對(duì)。
第四部分 填空題
1.信號(hào)量的物理意義是當(dāng)信號(hào)量值大于零時(shí)表示 可用資源的數(shù)目 ;當(dāng)信號(hào)量值小于零時(shí),其絕對(duì)值為 因請(qǐng)求該資源而被阻塞的進(jìn)程數(shù)目 。
2.臨界資源的概念是 一次僅允許一個(gè)進(jìn)程訪問的資源 ,而臨界區(qū)是指 進(jìn)程中訪問臨界資源的那段程序代碼 。
3.進(jìn)程在運(yùn)行過程中有三種基本狀態(tài),它們是 運(yùn)行、就緒、等待。
4.進(jìn)程主要由 程序段、數(shù)據(jù)段、PCB 三部分內(nèi)容組成,其中 PCB 是進(jìn)程存在的唯一標(biāo)志。而 程序段 部分也可以為其他進(jìn)程共享。
5.系統(tǒng)中各進(jìn)程之間邏輯上的相互制約關(guān)系稱為 進(jìn)程同步 。
6.若一個(gè)進(jìn)程已進(jìn)入臨界區(qū),其他欲進(jìn)入臨界區(qū)的進(jìn)程必須 等待。
7.將進(jìn)程的 PCB 鏈接在一起就形成了進(jìn)程隊(duì)列。
8.用P、V操作管理臨界區(qū)時(shí),任何一個(gè)進(jìn)程在進(jìn)入臨界區(qū)之前應(yīng)調(diào)用 P 操作,退出臨界區(qū)時(shí)應(yīng)調(diào)用 V 操作。
9.在多道程序系統(tǒng)中,進(jìn)程之間存在著的不同制約關(guān)系可以劃分為兩類:同步 與 互斥 。 同步 指進(jìn)程間具有的一定邏輯關(guān)系; 互斥 是指進(jìn)程間在使用共享資源方面的約束關(guān)系。
10.程序順序執(zhí)行時(shí)有順序性、封閉性 和可再現(xiàn)性的特點(diǎn)。
11.有m個(gè)進(jìn)程共享同一臨界資源,若使用信號(hào)量機(jī)制實(shí)現(xiàn)對(duì)臨界資源的互斥訪問,則信號(hào)量值的變化范圍是 1~ -(m-1) 。
12.在一個(gè)單處理機(jī)系統(tǒng)中,若有5個(gè)用戶進(jìn)程,且假設(shè)當(dāng)前時(shí)刻為用戶態(tài),則處于就緒狀態(tài)的用戶進(jìn)程最多有 4 個(gè),最少有 0 個(gè)。
13、在單用戶單任務(wù)環(huán)境下,用戶獨(dú)占全機(jī),此時(shí)機(jī)內(nèi)資源的狀態(tài),只能由運(yùn)行程序的操作加以改變,此時(shí)的程序執(zhí)行具有 封閉性 性和 可再現(xiàn)性 性特征。
14、并發(fā)進(jìn)程之間的相互制約,是由于它們的 共享資源 和 相互合作 而產(chǎn)生的,因而導(dǎo)致程序在并發(fā)執(zhí)行時(shí)具有 間斷性或異步性 特征。
15、程序并發(fā)執(zhí)行與順序執(zhí)行時(shí)相比產(chǎn)生了一些新特征,分別是 、 和 。間斷性、失去封閉性、不可再現(xiàn)性
16、引入進(jìn)程的目的是 ,而引入線程的目的是 。使程序能正確地并發(fā)執(zhí)行,以提高資源利用率和系統(tǒng)吞吐量;減少并發(fā)執(zhí)行的開銷,提高程序執(zhí)行的并發(fā)程度。
17、進(jìn)程由 、 和 組成,其中 是進(jìn)程存在的唯一標(biāo)志。PCB、程序段、數(shù)據(jù)段、PCB
18、進(jìn)程最基本的特征是 和 ,除此之外,它還有 、 和 特征。動(dòng)態(tài)性、并發(fā)性、獨(dú)立特征、異步性、結(jié)構(gòu)
19、由于進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行,故進(jìn)程有 的基本特征,該特征還表現(xiàn)在進(jìn)程由 而產(chǎn)生,由 而執(zhí)行,由 而消亡,即進(jìn)程具有一定的生命期。動(dòng)態(tài)性,創(chuàng)建,調(diào)度,撤銷
20、引入進(jìn)程帶來的好處是 和 。提高資源利用率,增加系統(tǒng)吞吐量
21、當(dāng)前正在執(zhí)行的進(jìn)程由于時(shí)間片用完而暫停執(zhí)行時(shí),該進(jìn)程應(yīng)轉(zhuǎn)變?yōu)?span style="text-decoration:underline;"> 狀態(tài);若因發(fā)生某種事件而不能繼續(xù)執(zhí)行時(shí),應(yīng)轉(zhuǎn)為 狀態(tài);若應(yīng)終端用戶的請(qǐng)求而暫停執(zhí)行時(shí),它應(yīng)轉(zhuǎn)為 狀態(tài)。就緒,阻塞,靜止就緒
22、用戶為阻止進(jìn)程繼續(xù)運(yùn)行,應(yīng)利用 原語,若進(jìn)程正在執(zhí)行,應(yīng)轉(zhuǎn)為 狀態(tài);以后,若用戶要恢復(fù)其運(yùn)行,應(yīng)利用 原語,此時(shí)進(jìn)程應(yīng)轉(zhuǎn)為 狀態(tài)。 掛起;靜止就緒;激活;活動(dòng)就緒
23、系統(tǒng)中共有5個(gè)用戶進(jìn)程,且當(dāng)前CPU在用戶態(tài)下執(zhí)行,則最多可有 個(gè)用戶進(jìn)程處于就緒狀態(tài),最多可有 個(gè)用戶進(jìn)程處于阻塞狀態(tài);若當(dāng)前在核心態(tài)下執(zhí)行,則最多可有 個(gè)用戶進(jìn)程處于就緒狀態(tài),最多可有 個(gè)用戶進(jìn)程處于阻塞狀態(tài)。4,4,5,5
24、同步機(jī)制應(yīng)遵循的準(zhǔn)則: 、 、 和 ??臻e讓進(jìn)、忙則等待、有限等待、讓權(quán)等待
25、在記錄型信號(hào)量機(jī)制中,S.value>0時(shí)的值表示 ;每次wait操作意味著 ,因此應(yīng)將S.value ,當(dāng)S.value 時(shí),進(jìn)程應(yīng)阻塞。可用的臨界資源數(shù)量;申請(qǐng)一個(gè)臨界資源;減1;小于0
26、在記錄型信號(hào)量機(jī)制中,每次signal操作意味著 ,因此應(yīng)將S.value ,當(dāng)S.value<=0時(shí),表示 ,此時(shí)應(yīng) 。釋放一個(gè)臨界資源,加1,仍有請(qǐng)求該資源的進(jìn)程被阻塞;喚醒相應(yīng)阻塞隊(duì)列中的首進(jìn)程
27、在利用信號(hào)量實(shí)現(xiàn)進(jìn)程互斥時(shí),應(yīng)將 置于 和 之間。臨界區(qū),wait操作,signal操作
28、在每個(gè)進(jìn)程中訪問 的那段代碼稱為臨界區(qū)。為實(shí)現(xiàn)對(duì)它的共享,應(yīng)保證進(jìn)程 進(jìn)入自己的臨界區(qū),為此,在每個(gè)進(jìn)程的臨界區(qū)前應(yīng)設(shè)置 ,臨界區(qū)后應(yīng)設(shè)置 。臨界資源,互斥,進(jìn)入?yún)^(qū),退出區(qū)
29、進(jìn)程通信的類型有 、 、 三類,其中 利用共享文件進(jìn)行通信。共享存儲(chǔ)器、消息系統(tǒng)、管道通信、管道通信
30、為實(shí)現(xiàn)消息緩沖隊(duì)列通信,應(yīng)在PCB中增加 、 、 三個(gè)數(shù)據(jù)項(xiàng)。消息隊(duì)列首指針mq;消息隊(duì)列互斥信號(hào)量mutex;消息隊(duì)列資源信號(hào)量sm
31. 在直接通信方式中,系統(tǒng)通常提供的兩條通信原語如下,請(qǐng)選擇適當(dāng)?shù)膮?shù)填入。
Send((A),(B));
Receive((C),(B));
A:(1)sender;(2)receiver;(3)text;(4)message;(5)mailbox。
B:(1)sender;(2)receiver;(3)text;(4)message;(5)mailbox。
C:(1)sender;(2)receiver;(3)text;(4)message;(5)mailbox。
32. 使用mail命令的信箱通信屬于(A),因?yàn)樾畔⑹潜话l(fā)送到接收方的(B)中;使用write命令,實(shí)現(xiàn)的是(C)通信,因?yàn)樾畔⑹潜话l(fā)送到接收方的(D)中;使用共享文件進(jìn)行通信的方式屬于(E)通信。
A:(1)共享存儲(chǔ)器;(2)實(shí)時(shí)通信;(3)消息緩沖通信;(4)非實(shí)時(shí)通信;(5)管道通信。
B:(1)消息緩沖隊(duì)列;(2)內(nèi)存;(3)信箱;(4)消息緩沖區(qū);(5)屏幕;(6)共享存儲(chǔ)器。
C:(1)共享存儲(chǔ)器;(2)實(shí)時(shí)通信;(3)消息緩沖通信;(4)非實(shí)時(shí)通信;(5)管道通信。
D:(1)消息緩沖隊(duì)列;(2)內(nèi)存;(3)信箱;(4)消息緩沖區(qū);(5)屏幕;(6)共享存儲(chǔ)器。
E:(1)共享存儲(chǔ)器;(2)實(shí)時(shí)通信;(3)消息緩沖通信;(4)非實(shí)時(shí)通信;(5)管道通信。
33、在采用用戶級(jí)線程的系統(tǒng)中,OS進(jìn)行CPU調(diào)度的對(duì)象是 ;在采用內(nèi)核支持線程的系統(tǒng)中,CPU調(diào)度的對(duì)象是 。進(jìn)程,線程
34、線程之所以能減少并發(fā)執(zhí)行的開銷是因?yàn)?span style="text-decoration:underline;"> 。線程基本不擁有資源
35、進(jìn)程通信的常用方式有 直接通信 和 間接通信 等。
36、如果P(S1)和P(S2)兩個(gè)操作在一起,那么P操作的順序至關(guān)重要,一個(gè)同步P操作與一個(gè)互斥P操作在一起時(shí)同步 P操作在互斥 P操作前。而兩個(gè)V操作的次序無關(guān)緊要 。
37、P(S):表示申請(qǐng)一個(gè)資源 ; V(S)表示釋放一個(gè)資源 。信號(hào)量的初值應(yīng)該大于等于0 。
38、P、V操作當(dāng)為互斥 操作時(shí),它們同處于同一進(jìn)程;當(dāng)為同步 操作時(shí),則不在同一進(jìn)程中出現(xiàn)。
39、臨界資源是指 系統(tǒng)中一次只允許一個(gè)進(jìn)程使用的資源 ,而臨界區(qū)是指 涉及到臨界資源的代碼段 。
40、I/O型進(jìn)程是指 花費(fèi)I/O 時(shí)間多于計(jì)算的進(jìn)程 ,而CPU型進(jìn)程是指 花費(fèi)計(jì)算多于I/O 時(shí)間的進(jìn)程 。
41、當(dāng)時(shí)間片輪轉(zhuǎn)算法的時(shí)間片足夠大時(shí),這個(gè)算法就等同于FIFO 算法。
42、P\V操作必須成對(duì) 出現(xiàn),有一個(gè)P操作就一定有一個(gè)V操作 。
43、臨界資源是指 系統(tǒng)中一次只允許一個(gè)進(jìn)程使用的資源 ,而臨界區(qū)是指 涉及到臨界資源的代碼段 。
第五部分 解析題
1.進(jìn)程的定義是什么?它最少有哪幾種狀態(tài)?
2.進(jìn)程與線程的主要區(qū)別是什么?
3、 什么是進(jìn)程的互斥與同步?同步和互斥這兩個(gè)概念有什么聯(lián)系和區(qū)別?
解:
(1) 同步:兩個(gè)事件的發(fā)生有著某種時(shí)序上的關(guān)系,進(jìn)程間的同步關(guān)系是指系統(tǒng)中往往有幾個(gè)進(jìn)程共同完成一個(gè)任務(wù);
(2) 互斥是進(jìn)程間的另外一種關(guān)系。由于各進(jìn)程要共享資源。而有些資源往往要求排他性地使用;
(3) 互斥是一種特殊的同步關(guān)系。
S4 |
S3 |
S2 |
S1 |
解:圖說明任務(wù)啟動(dòng)后S1先執(zhí)行。當(dāng)S1結(jié)束后,S2、S3可以開始執(zhí)行。S2、S3完成后,S4才能開始執(zhí)行。為了確保這一執(zhí)行順序,設(shè)3個(gè)同步信號(hào)量b2、b3、b4分別表示進(jìn)程S2、S3、S4是否可以開始執(zhí)行,其初值均為0。進(jìn)程同步描述如下:
//可用兩種方法來解決
//S1不必判斷能否開始
//b2、b3、b4起初全部為0,表示都不可開始
int b2=0;// 表示進(jìn)程S2是否可以開始執(zhí)行
int b3=0;// 表示進(jìn)程S3是否可以開始執(zhí)行
int b4=0;// 表示進(jìn)程S4是否可以開始執(zhí)行
//也可分為b42、b43
main()
{
cobegin
S1();
S2();
S3();
S4();
Coend
}
S1()
{
…
v(b2);
v(b3);
}
S2()
{
p(b2);
…
v(b4); //v(b42)
}
S3()
{
p(b3);
…
v(b4); //v(b43)
}
S4()
{//因?yàn)樵赟2及S3完成時(shí)均對(duì)b4做了v操作,因此這里要用兩個(gè)p操作
p(b4);//p(b42)
p(b4);//p(b43)
…
}
5. 桌上有一空盤,允許存放一只水果。爸爸可向盤中放蘋果,也可向盤中放桔子,兒子專等吃盤中的桔子,女兒專等吃盤中的蘋果。規(guī)定當(dāng)盤空時(shí)一次只能放一只水果供吃者取用,請(qǐng)用P、V原語實(shí)現(xiàn)爸爸、兒子、女兒三個(gè)并發(fā)進(jìn)程的同步。
解:設(shè)置3個(gè)信號(hào)量S、SO、SA,信號(hào)量S表示盤子是否為空,其初值為1;信號(hào)量SO表示盤中是否有桔子,其初值為0;信號(hào)量SA表示盤中是否有蘋果,其初值為0。
同步描述:
int S=1;
int SA=0;
int SO=0;
main()
{
cobegin
father();
son();
daughter();
coend
}
father()
{
while(1)
{
p(S);//盤子是否空
將水果放入盤中;
if(放入的是桔子)v(SO);//變形
else v(Sa) //很少有學(xué)生如此做!而這卻是本題的關(guān)鍵
}
}
son()
{
while(1)
{
p(SO);//盤子中有無桔子
從盤中取出桔子;
v(S);
吃桔子;
}
}
daughter()
{
while(1)
{
p(SA);//盤子中有無蘋果
從盤中取出蘋果;
v(S);
吃蘋果;
}
}
6. 在單處理機(jī)的分時(shí)系統(tǒng)中,分配給進(jìn)程P的時(shí)間片用完后,系統(tǒng)進(jìn)行切換,結(jié)果調(diào)度到的仍然是進(jìn)程P。有可能出現(xiàn)上述情形嗎?如果可能請(qǐng)說明理由。
解:有可能出現(xiàn)上述情況。例如,若在進(jìn)程P時(shí)間片用完后,被迫回到就緒隊(duì)列時(shí),就緒隊(duì)列為空,這樣進(jìn)程P就是就緒隊(duì)列中唯一的一個(gè)進(jìn)程,于是調(diào)度程序選中的進(jìn)程必然是進(jìn)程P;又如在按優(yōu)先級(jí)調(diào)度的系統(tǒng)中,就緒隊(duì)列按進(jìn)程優(yōu)先級(jí)排列,在進(jìn)程P時(shí)間片用完之后回到就緒隊(duì)列時(shí),若其優(yōu)先級(jí)高于當(dāng)前隊(duì)列中的其他進(jìn)程,則它將排在就緒隊(duì)列之首,從而再次被調(diào)度程序選中并投入運(yùn)行。
7. 哲學(xué)家甲請(qǐng)哲學(xué)家乙、丙、丁到某處討論問題,約定全體到齊后開始討論問題;在討論的間隙4位哲學(xué)家進(jìn)餐,每人進(jìn)餐時(shí)都需使用刀、叉各一把,餐桌上的布置如圖。請(qǐng)用信號(hào)量及P、V操作說明這4位哲學(xué)家的同步、互斥過程。
解:在本題中,應(yīng)設(shè)置4個(gè)信號(hào)量fork1、fork2、knife1、knife2,其初值均為1,分別表示資源叉1、叉2、刀1、刀2是否可用。同步描述如下:
int fork1=1;
int fork2=1;
int knife1=1;
int knife2=1;
main()
{
cobegin
Pa();
Pb();
Pc();
Pd();
Coend
}
Pa()
{
while(1)
{
p(knife1);
p(fork1);
進(jìn)餐;
v(knife1);
v(fork1);
討論問題;
}
}
Pb()
{
while(1)
{
p(knife2);
p(fork1);
進(jìn)餐;
v(knife2);
v(fork1);
討論問題;
}
}
Pc()
{
while(1)
{
p(knife2);
p(fork2);
進(jìn)餐;
v(knife2);
v(fork2);
討論問題;
}
}
Pd()
{
while(1)
{
p(knife1);
p(fork2);
進(jìn)餐;
v(knife1);
v(fork2);
討論問題;
}
}
8. 請(qǐng)用信號(hào)量實(shí)現(xiàn)對(duì)某數(shù)據(jù)庫的讀者-寫者互斥。
要求:(1)讀者與寫者之間互斥,寫者與寫者之間互斥。
(2)讀者之間不互斥。
解:本題是讀者-寫者問題。在本題中,允許讀進(jìn)程同時(shí)讀數(shù)據(jù)庫,但寫進(jìn)程正在寫數(shù)據(jù)庫時(shí)不允許其他進(jìn)程讀該數(shù)據(jù)庫,也不允許其他進(jìn)程寫該數(shù)據(jù)庫。為了解決讀、寫進(jìn)程之間的同步,應(yīng)該設(shè)置2個(gè)信號(hào)量和一個(gè)共享變量:讀互斥信號(hào)量rmutex,用于使讀進(jìn)程互斥地訪問共享變量count,其初值為1;寫互斥信號(hào)量wmutex,用于實(shí)現(xiàn)寫進(jìn)程與讀進(jìn)程的互斥及寫進(jìn)程與寫進(jìn)程的互斥,其初值為1;共享變量count,用于記錄當(dāng)前正在讀數(shù)據(jù)庫的讀進(jìn)程數(shù)目,初值為0。其工作過程描述如下:
Semaphore rmutex=1;
Semaphore wmutex=1;
Int count=0;
Main()
{
Cobegin
Reader();
Writer();
Coend
}
Reader()
{
While(true)
{
P(rmutex);
If(count==0) p(wmutex);
Count ++;
V(rmutex);
讀數(shù)據(jù)庫;
P(rmutex);
Count --;
If (count==0) v(wmutex);
V(rmutex);
}
}
Writer()
{
While(true)
{
P(wmutex);
寫數(shù)據(jù)庫;
V(wmutex);
}
}
注意:正確理解信號(hào)量rmutex的意義是理解讀者-寫者問題的關(guān)鍵。Rmutex是一個(gè)互斥信號(hào)量,用于使讀進(jìn)程互斥地訪問共享變量count。信號(hào)量rmutex并不表示讀進(jìn)程的數(shù)目,表示讀進(jìn)程數(shù)目的是共享變量count。當(dāng)一個(gè)讀進(jìn)程要讀數(shù)據(jù)庫時(shí),應(yīng)將讀進(jìn)程計(jì)數(shù)count增加1;如果此前(count加1以前)數(shù)據(jù)庫中無讀進(jìn)程,還應(yīng)對(duì)寫互斥信號(hào)量wmutex做p操作,這樣,若數(shù)據(jù)庫中無寫進(jìn)程則通過p操作阻止后續(xù)寫進(jìn)程寫,若數(shù)據(jù)庫中有寫進(jìn)程,則通過p操作讓讀進(jìn)程等待。同理,當(dāng)一個(gè)讀進(jìn)程完成讀數(shù)據(jù)庫操作時(shí),應(yīng)將讀進(jìn)程計(jì)數(shù)count減少1;如果此時(shí)(count減1以后)數(shù)據(jù)庫中已無讀進(jìn)程,還應(yīng)對(duì)寫互斥信號(hào)量wmutex做v操作,以允許寫進(jìn)程寫。
9. 就緒隊(duì)列中有10個(gè)進(jìn)程,系統(tǒng)將時(shí)間片設(shè)為200ms,CPU進(jìn)行進(jìn)程切換要花費(fèi)10ms,試問系統(tǒng)開銷所占的比率約為多少?
解:因就緒隊(duì)列中有10個(gè)進(jìn)程,它們以時(shí)間片輪轉(zhuǎn)的方式使用CPU,時(shí)間片長(zhǎng)度為200ms。當(dāng)一個(gè)時(shí)間片用完時(shí),調(diào)度進(jìn)程將當(dāng)前運(yùn)行進(jìn)程設(shè)置為就緒狀態(tài)并放入就緒隊(duì)列尾,再從就緒隊(duì)列首選擇進(jìn)程投入運(yùn)行,這一過程(進(jìn)程切換)要花費(fèi)時(shí)間10ms。因此系統(tǒng)開銷所占比率為:10/(200+10)=4.8%
10. 在單CPU和兩臺(tái)輸入/輸出設(shè)備(I1,I2)的多道程序設(shè)計(jì)環(huán)境下,同時(shí)投入三個(gè)作業(yè)Job1、Job2、Job3運(yùn)行。這三個(gè)作業(yè)對(duì)CPU和輸入/輸出設(shè)備的使用順序和時(shí)間如下所示:
Job1:I2(30ms);CPU(10ms);I1(30ms);CPU(10ms);I2(20ms)
Job2:I2(20ms);CPU(20ms);I2(40ms)
Job3:CPU(30ms);I1(20ms); CPU(10ms);I1(10ms)
假定CPU、I1、I2都能并行工作,Job1優(yōu)先級(jí)最高,Job2次之,Job3優(yōu)先級(jí)最低,優(yōu)先級(jí)高的作業(yè)可以搶占優(yōu)先級(jí)低的作業(yè)的CPU但不搶占I1和I2。試求:
三個(gè)作業(yè)從投入到完成分別需要的時(shí)間
從投入到完成的CPU利用率
I/O設(shè)備利用率。
解:三個(gè)作業(yè)并發(fā)執(zhí)行時(shí)的工作情況如圖4.2所示。
(1)由上圖可以看出Job1從投入到運(yùn)行完成需要110ms,Job2從投入到運(yùn)行完成需要90ms,Job3從投入到運(yùn)行完成需要110ms.
(2)CPU在時(shí)間段60ms到70ms,80ms至90ms,100ms至110ms期間空閑,所以CPU的利用率為:(110-30)/110=72.7%
(1) 設(shè)備I1在時(shí)間段20ms到40ms,90ms至100ms期間空閑,所以設(shè)備I1的利用率為:(110-30)/110=72.7%;設(shè)備I2在時(shí)間段30ms至50ms期間空閑,所以設(shè)備I2的利用率為:(110-20)/110=81.8%。
11.試?yán)肂ernstein 條件證明上題中的S2和S3語句是可以并發(fā)執(zhí)行的,而S3和S4語句是不能并發(fā)執(zhí)行的?
【解】(1) ∵R(S2) ∩ W( S3)={};
W(S2) ∩ R(S3)={};
W(S2) ∩ W(S3)={};
∴R(S2) ∩ W( S3)∪ W(S2) ∩ R(S3) ∪ W(S2) ∩ W(S3)={}
∴S2、S3可以并發(fā)執(zhí)行
(2)∵R(S3) ∩ W( S4)={};
W(S3) ∩ R(S4)={c};
W(S3) ∩ W(S4)={};
∴R(S3) ∩ W( S4)∪ W(S3) ∩ R(S4) ∪ W(S3) ∩ W(S4)={c}不是空集
∴S3,S4不能并發(fā)執(zhí)行
12.什么是臨界資源(P16)和臨界區(qū)(P50)?
【解】那些多個(gè)進(jìn)程必須互斥訪問的方式來實(shí)現(xiàn)資源共享的硬件資源和軟件資源叫臨界資源。
我們把在每個(gè)進(jìn)程中訪問臨界資源的那段代碼稱為臨界區(qū)。
13、在OS中引起進(jìn)程調(diào)度的主要因素有哪些?
【解】
在OS中引起進(jìn)程調(diào)度的主要因素有:
(1)缺乏資源。正在運(yùn)行的進(jìn)程因?yàn)槟硞€(gè)條件不能滿足,不得不進(jìn)入阻塞狀態(tài),此時(shí),運(yùn)行進(jìn)程被撤下,引起調(diào)度使另一個(gè)進(jìn)程進(jìn)入運(yùn)行
(2)時(shí)間片到。如果是分時(shí)系統(tǒng)或者以時(shí)間片作為激勵(lì)調(diào)度的系統(tǒng),時(shí)間片是引起硬件激勵(lì)的主要因素,每當(dāng)時(shí)間片到,正在運(yùn)行的進(jìn)程被暫時(shí)停止,將它再次排入就緒隊(duì)列,引起調(diào)度使另一就緒進(jìn)程進(jìn)入運(yùn)行。
(3)外部中斷。外部中斷信號(hào)也將引起調(diào)度,如打印機(jī)打印完成,通過打印通道或者信號(hào)線路傳送一激勵(lì)信號(hào),將原等待進(jìn)程喚醒重新進(jìn)入運(yùn)行,或引起調(diào)度使另一進(jìn)程運(yùn)行。
(4)進(jìn)程結(jié)束。進(jìn)程正常執(zhí)行完畢,退出并終止,此時(shí)將激勵(lì)系統(tǒng)調(diào)度另一進(jìn)程進(jìn)入運(yùn)行。
14.有兩個(gè)進(jìn)程P1和P2,它們執(zhí)行的過程如下:
P1: 10秒CPU操作、20秒I/O操作(設(shè)備1)、5秒CPU操作、10秒I/O操作(設(shè)備2)、5秒CPU操作、結(jié)束
P2: 15秒I/O操作(設(shè)備1)、10秒CPU操作、15秒I/O操作(設(shè)備2)、10秒CPU操作、結(jié)束
(1) 如果進(jìn)程P1和P2順序執(zhí)行,請(qǐng)畫出進(jìn)程P1和P2執(zhí)行情況圖;
(2) 如果進(jìn)程P1和P2并發(fā)執(zhí)行,請(qǐng)畫出進(jìn)程P1和P2執(zhí)行情況圖;
(3) 分別計(jì)算在(1)和(2)情況下,CPU的利用率、設(shè)備1和設(shè)備2的利用率。
解:
(1)
P1:
CPU |
I/O(DEV2) |
CPU |
I/O(DEV1) |
CPU |
0 10 30 35 45 50
P2:
I/O(DEV1) |
CPU |
I/O(DEV2) |
CPU |
50 65 75 90 100
(2)
P1 P1
CPU(P1) |
I/O(DEV1)(P1) |
CPU |
I/O(DEV2) |
CPU |
I/O(DEV1)(P2) |
CPU(P2) |
I/O(DEV2)(P2) |
CPU(P2) |
0 10 15 25 35 40 50 55
(3)
在情況(1)下,
CPU的利用率=40/100=40%
設(shè)備1的利用率=35/100=35%
設(shè)備2的利用率=25/100=25%
在情況(2)下,
CPU的利用率=40/55=73%
設(shè)備1的利用率=35/55=64%
設(shè)備2的利用率=25/55=45%
15.在五狀態(tài)圖中,假如計(jì)算機(jī)只有一個(gè)CPU,如果系統(tǒng)中有N個(gè)進(jìn)程:
(1)運(yùn)行的進(jìn)程最多幾個(gè),最少幾個(gè);就緒進(jìn)程最多幾個(gè)最少幾個(gè);等待進(jìn)程最多幾個(gè),最少幾個(gè)?
(2)有沒有這樣的狀態(tài)轉(zhuǎn)換,為什么?
等待—>運(yùn)行 ; 就緒—>等待
(3)一個(gè)進(jìn)程狀態(tài)的轉(zhuǎn)換是否會(huì)導(dǎo)致另一個(gè)進(jìn)程的狀態(tài)轉(zhuǎn)換,請(qǐng)列出所有的可能。
解:
(1)如果系統(tǒng)中有N個(gè)進(jìn)程,運(yùn)行的進(jìn)程最多1個(gè),最少0個(gè);就緒進(jìn)程最多N-1個(gè)最少0個(gè);等待進(jìn)程最多N個(gè),最少0個(gè)。
(2)沒有這樣的狀態(tài)轉(zhuǎn)換。
(3) 新建 到 就緒 導(dǎo)致 運(yùn)行 到 就緒
就緒 到 運(yùn)行 導(dǎo)致 無
運(yùn)行 到 就緒 導(dǎo)致 就緒 到 運(yùn)行
運(yùn)行 到 等待 導(dǎo)致 就緒 到 運(yùn)行
等待 到 就緒 導(dǎo)致 就緒 到 等待
運(yùn)行 到 結(jié)束 導(dǎo)致 就緒 到 運(yùn)行
聯(lián)系客服