【正文】
signal語句完善給出的流程:流程中s1是get的私用信號量;ss3是copy的私用信號量;s4是put的私用信號量。buffer1buffer2getcopyput卡片打印機var s1, s2, s3, s4:semaphore := A 。 buffer1, buffer2 : item。begin parbegin get : begin repeat produce an item in x。 wait(s1) 。 buffer1:= x 。 B 。 until false 。 end copy : begin repeat wait(s2) 。 C 。 copy buffer1 to buffer2。 D 。 E 。 until false 。 end put : begin repeat F 。 y := buffer2。 signal(s3) 。 print data in y 。 until false 。 end parendend選擇答案:A : ① 1,1,1,1 ② 0,1,0,1 ③ 1,0,1,0 ④ 1,1,0,0B、C、D、E、F:① wait(s1) ② wait(s2) ③ wait(s3) ④ wait(s4)⑤ signal(s1) ⑥ signal(s2) ⑦ signal(s3) ⑧ signal(s4) 答案ABCDEF24.用戶級線程與內(nèi)核線程之間的關(guān)系存在多對一、一對一、多對多三種模型。其中:多對一模型是指多個用戶級線程映射到一個內(nèi)核線程。在這種模型中用戶級線程在內(nèi)核之上支持,并在用戶空間通過 A 實現(xiàn);對線程的創(chuàng)建、管理、和調(diào)度 B 內(nèi)核支持;任何一個用戶級線程執(zhí)行了引起阻塞的系統(tǒng)調(diào)用,則該 C 阻塞;開發(fā)人員可創(chuàng)建任意多的線程,系統(tǒng)的并發(fā)度(并發(fā)性能) D 。一對一模型是指每個用戶級線程映射到一個內(nèi)核線程,在這種模型中線程的并發(fā)能力 E ,能 F 運行在多處理器系統(tǒng)上。多對多模型是指多路復用了許多用戶級線程到同樣數(shù)量或更小數(shù)量的內(nèi)核線程上,開發(fā)人員可創(chuàng)建 G 的用戶級線程,內(nèi)核線程可在多處理器系統(tǒng)上并行運行。選擇答案:A:① 內(nèi)核 ② 線程庫 ③ 原語 ④ 系統(tǒng)調(diào)用B:① 需要 ② 不需要C、D、E、F、G:① 線程 ② 程序 ③ 進程 ④ 任意數(shù)量 ⑤ 提高⑥ 并發(fā) ⑦ 不變 ⑧ 并行 ⑨ 有限數(shù)量答案ABCDEFG 填空題1.Sa、Sb、Sc是已定義信號量,初值分別為0、0;x、y、z是公共變量。下面三個并發(fā)程序段執(zhí)行結(jié)束后,x= _,y= ,z= 。prA(){ P(Sc)。 z=x+y。 V(Sb)。}prB(){ y=18。 P(Sb)。 V(Sc)。 P(Sb)。 y=zy。 V(Sa)。}prC(){ P(Sa)。 x=10。 V(Sb)。 P(Sa)。 x=z9。}2.從物理意義上講,信號量的值大于0時,其值表示 。3.管程的三個組成部分為 。4.系統(tǒng)感知進程存在的唯一標識為 。5.從結(jié)構(gòu)上看每個進程由 組成。6.一段時間內(nèi)僅允許一個進程訪問的資源稱為 。7.在操作系統(tǒng)控制下的多個程序的執(zhí)行順序和每個程序的執(zhí)行時間是不確定的,這種現(xiàn)象稱為操作系統(tǒng)的 。8.進程的動態(tài)特征是指 。9.設(shè)有n個進程共享一個臨界區(qū),若最多允許m個進程(mn)同時進入臨界區(qū),則所采用的信號量的初值應(yīng)為 ,信號量值的變化范圍為 。10.在Unix V系統(tǒng)中,PCB大致可分為 和 兩部分。11.并發(fā)進程之間存在著 和 兩種關(guān)系。12.把執(zhí)行不能分割的過程稱為 。13.進程調(diào)度的兩種基本方式為 和 。14.有2個同類臨界資源,被5個并發(fā)進程訪問,使用信號量機制實現(xiàn)互斥,則初值為 ,信號量值的變化范圍為 。15.進程三種基本狀態(tài)之間有四種基本變遷關(guān)系:4,如圖所示。對下列給出的每個事件,在括號“()”中分別填上對應(yīng)的變遷關(guān)系。例如:若事件只引起了變遷關(guān)系“2”,則只在括號“()”中填入2:若事件引起了變遷關(guān)系“2”,隨后一定會再產(chǎn)生變遷關(guān)系“1”,則在“()”中填入1。4312運行就緒阻塞設(shè)備驅(qū)動進程啟動了通道程序( )。進程發(fā)出了讀鍵盤指令( )。接受進程取消息時,發(fā)現(xiàn)消息隊列中無消息( )。運行進程時間片用完( )。高優(yōu)先級進程剝奪運行進程的CPU()。輸入設(shè)備輸入完成中斷,且中斷時沒有其他進程運行()。某資源的信號量S的值為負時,運行進程執(zhí)行了Signal(S)操作( )。批處理系統(tǒng)中,后備隊列有新作業(yè)到來( )。在就緒隊列不空時,運行進程完成( )。磁盤驅(qū)動進程把讀入的數(shù)據(jù)傳送給用戶( )。 判斷題1.原語僅可在管態(tài)下執(zhí)行。2.原語可在目態(tài)下執(zhí)行。3.進程就是作業(yè)。4.所謂并行是指兩個或兩個以上的事件在同一時刻發(fā)生。5.處理機從目態(tài)轉(zhuǎn)變?yōu)楣軕B(tài)是通過置程序狀態(tài)字來實現(xiàn)的。6.所謂并發(fā)是指兩個或兩個以上的事件在同一時刻發(fā)生。7.操作系統(tǒng)的不確定性是指同一程序使用相同的輸入、在相同的環(huán)境下,經(jīng)過多次運行卻可能獲得完全不同的結(jié)果。8.處理機從管態(tài)轉(zhuǎn)變?yōu)槟繎B(tài)是通過置程序狀態(tài)字來實現(xiàn)的。9.廣義指令必須在管態(tài)下執(zhí)行。10.在采用顧客/服務(wù)員模型的系統(tǒng)中,服務(wù)員必須在管態(tài)下運行。11.在消息緩沖通信中,消息隊列屬于臨界資源。12.訪管中斷是由于程序執(zhí)行特權(quán)指令引起的。13.信號量的值不一定表示某類可用資源的數(shù)量。14.在UNIX系統(tǒng)中所有進程都可在核心態(tài)和用戶態(tài)兩種狀態(tài)下運行。15.并發(fā)指的是在操作系統(tǒng)本身存在著許多同時的或并行的活動。16.在UNIX系統(tǒng)中,所有進程都是利用系統(tǒng)調(diào)用fork創(chuàng)建的。17.我們可以通過設(shè)置狀態(tài)字,將CPU設(shè)置為內(nèi)核態(tài)或用戶態(tài)。18.所謂的用戶態(tài)、內(nèi)核態(tài)實際上是處理器的一種狀態(tài),而不是程序的狀態(tài)。 簡答題1.對比“進程”和“線程”的異同。2.為什么要引入信號量集機制。信號量機制可以被用于何種場合?3.原語與廣義指令的主要區(qū)別。4.管態(tài)和目態(tài)有何區(qū)別?如何區(qū)分二態(tài)?5.什么是并發(fā)?什么是并行?6.進程的三種基本狀態(tài)是什么?它們之間相互轉(zhuǎn)換的主要原因是什么?7.何謂臨界資源?使用臨界資源的原則是什么?使用臨界資源的諸進程間如何實現(xiàn)進程同步。8.何謂管程,管程是由哪幾部分組成?說明引入管程的必要性。9.對相關(guān)臨界區(qū)的管理有哪些要求?10.進程產(chǎn)生的主要原因有哪些?Windows XP在啟動時會有哪些進程產(chǎn)生?11.進程消亡的主要原因有哪些?12.進程創(chuàng)建的主要步驟是什么?13.消息隊列和管道有何區(qū)別? 綜合題1.某賓館門前有一個出租汽車停車位,假設(shè)賓館每一位顧客出門都要乘坐出租車,并且對顧客約定:如果有其它顧客在此停車位等車則在旁等待;否則在此等車;此停車位有車則乘坐。對出租車作出約定:如果此停車位已停有車,則等待此停車位空閑;否則停到此停車位等待顧客;有顧客則搭載顧客離開。試用P、V原語編寫程序描述顧客與出租車的行為。2.使用P、V原語實現(xiàn)圖示的前趨關(guān)系。 …3.現(xiàn)有四個進程R1,R2,W1,W2,它們共享可以存放一個數(shù)的緩沖區(qū)。進程R1每次把從鍵盤上讀入的一個數(shù)存到該緩沖區(qū)中,供進程W1打印輸出;進程R2每次從磁盤上讀一個數(shù)存放到該緩沖區(qū)中,供W2打印輸出。當一個進程把數(shù)存放到緩沖區(qū)后,在該數(shù)還沒有被打印輸出之前不準任何進程再向緩沖區(qū)中存數(shù)。當一個進程已把緩沖區(qū)中的數(shù)打印輸出后,在緩沖區(qū)中還沒有存入一個新的數(shù)之前不準任何進程再從緩沖區(qū)中取數(shù)打印。用PV操作來協(xié)調(diào)它們的工作。4.設(shè)有一數(shù)據(jù)區(qū),有若干進程要去讀或?qū)懰?。各進程要遵循下列原則:寫是互斥的。當一進程正在寫時,其它進程既不能讀也不能寫。讀可同時進行。只要沒有進程正在寫,則任何進程都可讀。請用P、V操作寫出讀寫過程的同步算法。5.假設(shè)有一如圖所示的工作模型,具有三個并發(fā)進程PP2和P3,兩個單緩沖B1和B2。進程P1負責不斷從輸入設(shè)備讀數(shù)據(jù),若讀入的數(shù)據(jù)為正數(shù),則直接送入B2,否則應(yīng)先將數(shù)據(jù)送入B1,經(jīng)P2取出加工后再送入B2,P3從B2中取信息輸出。請用信號量和P、V操作描述進程PPP3實現(xiàn)同步的算法。8.在天津大學與南開大學之間有一條彎曲的小路,這條路上每次每個方向上只允許一輛自行車通過。但其中有一個小的安全島M,同時允許兩輛自行車停留,可供兩輛自行車已從兩端進入小路的情況下錯車使用。如圖所示。下面的算法可以使來往的自行車均可順利通過。其中使用了4個信號量,T代表天大路口資源,S代表南開路口資源, L代表從天大到安全島一段路的資源,K代表從南開到安全島一段路的資源。程序如下,請在空白位置處填寫適當?shù)腜V操作語句,每處空白可能包含若干個P,V操作語句。begin t:=1。s:=1。l:=1。k:=1。 cobegin 從天大到南開的進程 begin ______(1)_____ 通過L路段。 進入安全島M; ______(2)______ 通過K路段 ______(3)______ end 從南開到天大的進程 begin 略,與“從天大到南開的進程”相反。 end coendend.9.五個哲學家在一塊兒思考問題并一起用餐。用餐時,它們公用一個由5把椅子圍成的圓桌。每把椅子歸某個哲學家使用。桌子中間是一些“永遠也吃不完”的飯菜。桌子上還放有5個盤子和5支筷子。當哲學家們思考問題時,它們互不干擾。一個哲學家需要用餐了,他就進入餐廳,走到餐桌邊找到一把空椅子就座,然后就試圖去拿相鄰的兩支筷子。當然,他不能去拿已經(jīng)握在鄰近椅子上同事手上的筷子,也不能去拿位于其左、右同事位置之外的筷子。當一個需用餐的哲學家拿到鄰近的兩支筷子后,他就開始用餐而不放下。當他用餐完畢,就把手中的兩支筷子放回原處再去思考他的問題。因此,這些哲學家門的生活是一種單調(diào)的重復動作,即這個問題可以概括為:repeat think, eatforever。第三章 處理機調(diào)度與死鎖 選擇題1.操作系統(tǒng)中的高級調(diào)度是指:A. 作業(yè)調(diào)度 B. 進程調(diào)度 C. 進程交換調(diào)度 D. 線程調(diào)度2.作業(yè)經(jīng)過下面哪一個過程進入“后備”狀態(tài)?A. 作業(yè)創(chuàng)建 B. 作業(yè)調(diào)度 C. 進程調(diào)度 D. 作業(yè)終止3.要求進程一次性申請所需的全部資源,是破壞了死鎖必要條件中的哪一條?A. 互斥 B. 請求與保持 C. 不剝奪 D. 循環(huán)等待4.使用“銀行家算法”決定是否給進程分配資源,這種策略屬于:A. 預防死鎖 B. 避免死鎖 C. 檢測死鎖 D. 解除死鎖5.對資源編號,要求進程按照序號順序申請資源,是破壞了死鎖必要條件中的哪一條?A. 互斥 B. 請求與保持 C. 不剝奪 D. 循環(huán)等待6.通過破壞死鎖必要條件之一來防止死鎖產(chǎn)生,這種策略屬于:A. 預防死鎖 B. 避免死鎖 C. 檢測死鎖 D. 解除死鎖7.當某個作業(yè)被作業(yè)調(diào)度程序選中,進入內(nèi)存開始運行時,作業(yè)的狀態(tài)為: A、提交狀態(tài) B、完成狀態(tài) C、執(zhí)行狀態(tài) D、后備狀態(tài)8.死鎖定理用于: A、預防死鎖 B、解除死鎖 C、避免死鎖 D、檢測死鎖9.進入輸入井的作業(yè)其狀態(tài)處于( )A、提交狀態(tài) B、完成狀態(tài)C、執(zhí)行狀態(tài) D、后備狀態(tài)10.作業(yè)由后備狀態(tài)轉(zhuǎn)變?yōu)閳?zhí)行狀態(tài)是通過以下那個調(diào)度程序?qū)崿F(xiàn)的( )A、作業(yè)調(diào)度 B、進程調(diào)度C、中級調(diào)度 D、驅(qū)臂調(diào)度11.以下那種調(diào)度算法不可能是剝奪式的( )A、先來先服務(wù) B、最短CPU執(zhí)行期優(yōu)先C、最高優(yōu)先權(quán) D、輪轉(zhuǎn)法12.在UNIX系統(tǒng)中,用來實現(xiàn)進程換入換出的是( )A、0進程 B、1進程 C、kill系統(tǒng)調(diào)用 D、作業(yè)