




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
操作系統練習題分章節匯總(0—08)
第01章練習題
i.操作系統是一種系統軟件。操作系統設計的主要目標包括方便件和行效的。操作系統的特批注mi]:os設計的目標:
征是并發性、共享性、虛擬性和異步性,操作系統最基本的特征是并發性和二字叫■操作系,彳忤、可擴充件、開放怦
統的主要功能是進程管理、內存留理、文件管理、設備管理、用戶接口管理。從用戶的觀點
出發,操作系統是用戶和計繳機之間的接口TT命令接口、圖形接口、程序接且三種。
2.按照用戶界面的使用環境和功能特征的不同,一般可以把操作系統分為三種基本類型,即:
批處理系統,分時系統和實時系統。
3.軟件系統分為系統軟件,支撐軟件和應用軟件。
4.若干事件在同一時間間隔內發生稱為現:若干事件在同一時刻發生稱為痂。
5.現代計算機中主:存儲器都是以理為單位進行編址。
6.分時系統中,時間片設置得越小,則平均響應時間越短。X批注【黃2):受切換次數的增加,平均響應時間先增加
7.實時系統在響應時間、可靠性及交互作用能力等方面一般都比分時系統要求高。X再減少.
8.操作系統是系統軟件中的一種,在進行系統安裝時可以先安裝其它軟件,然后再裝操作系
統。X
9.與分時系統相比,實時操作系統對則應時間的緊迫性要求面的多。V
10.早期的批處理系統中,用戶可以用交互式方式方便地使用計算機。X
11.多用戶操作系統一定是具有多道功能的操作系統。J
12.操作系統的所有程序都必須常駐內存.X
13.通過任何手段都無法實現計算機系統資源之間的互換.X
14.對臨界資源,應采用互斥訪問方式來實現共享。J
15.并發技術是現代操作系統的一個基本特征。J
16.操作系統只能管理計算機的軟件資源。X
17.多道批處理系統的主要優點是系統的吞吐后大、資源利用率高。,
18.操作系統可以管理計算機的軟硬件資源。J
19.資源共享是現代操作系統的一個基本特征。J
20.計算機中所有的資源都是共享資源.X
21.現代0S具有并發性和共享性,是由(D)的引入而導致的。
A.單道程序B.磁盤C.對象技術D.多道程序
22.一個完整的計算機系統是由(C>組成的。
A.硬件B.軟件C,硬件和軟件D.用戶程序
23.(A)對實時系統最重要。
A.及時性B.交互性C.共享性D.運行效率
24.與計算機硬件關系最密切的軟件是(D)?
A.辦公軟件B.數據庫管理程序C.游戲程序D.0S
25.要求在規定的時間內對外界的請求必須給予及時相應的OS是(B)。
A.多用戶分時系統B.實時系統C.批處理系統時間I).網絡操作系統
26.從用戶的觀點看,操作系統是(A).
A,用戶與計算機之間的接口B.控制和管理計算機資源的軟件
C.合理地組織計算機工作流程的軟件D.由若干層次的程序按?定的結構組成的TT機體
27.在操作系統中,處理機負責對進程進行管理和調度,對系統中的信息進行管理的部分通
常稱為(C).
A.數據庫系統B.軟件系統C.文件系統D.檢索系統
28.下面關于操作系統的敘述中正確的是(A)。
A.批處理作業必須具有作業控制信息B.分時系統不一定都具有人機交互功能
C.從響應忖問的角度看,實時系統與分時系統差不多
D.由于采用了分時技術,用戶可以獨占計算機的資源
29.訂購機票系統處理各個終端的服務請求,處理后通過終端回答用戶,所以它是一個(D批注【黃3):吹時信電.處理系統(軟實時)
A.分時系統B.多道批處理系統C.計算機網絡系統D.實時信息處理系統工業和武器控制(硬實時)
30.操作系統的基本職能是(A)o
A.控制和管理系統內各種資源,有效地組織多道程序的運行
B.提供用戶界面,方便用戶使用C.提供方便的可視化編輯程序
D.提供功能強大的網絡管理工具
31.為「使系統中所有的用戶都能得到及時的響應,該操作系統應該是(B
A.多道批處理系統B.分時系統C.實時系統D.網絡系統
32.計算機的操作系統是一種(B),
A.應川軟件B.系統軟件C.工具軟件D.字表處理軟件
33.操作系統是一組(C)程序。
A.文件管理B.中斷處理C資源管理D.設備管理
34.在(A)操作系統控制下,計算機系統能及時處理由過程控制反饋的數據并作出響應。
A.實時B.分時C.分布式D單用戶
35.以下著名的操作系統中,屬于多用戶、分時系統的是(C)。
A.DOS系統B.WindowsNT系統C.UNIX系統D.OS/2系統
36.UNIX屬于-一種(A)操作系統。
A.分時系統B.批處理系統C.實時系統D.分布式系統
37.Unix是一種(D):linux是一和(D);WindowsServer2003是一種(B):DOS
是一種(A)#
A.單用戶單任務B.單用戶多任務C.多用戶單任務D.多用戶多任務
38.設計實時操作系統時,首先應考慮系統的(B)。
A.可靠性和靈活性B.實時性和可雉性
C.靈活性和可鴕性D.優良性和分配性
39.(C)操作系統允許用戶把若干個作業提交給計算機系統。
A.單用戶B.分布式C批處理D.監督
40.操作系統是對(C)進行管理的軟件。
A.軟件B.硬件C.計算機資源D.應用程序
41.操作系統提供給程序員的接口是(B
A.進程B.系統調用C.庫函數D.B和C
42.(C)操作系統允許在一臺主機上同時聯接多臺終端,多個用戶可以通過各自的終端同
時交互地使用計算機。
A.網絡B.分布式C.分時D實時
43.計算機操作系統的功能是(D)。
A.把源程序代碼轉換為標準代碼B.實現計算機用戶之間的相互交流
C.完成計算機硬件與軟件之間的轉換D.控制、管理計算機系統的資源和程序的執行
44.如果分時操作系統的時間片一定,那么(A),則響應時間越短。
A.用戶數越少B.用戶數越多C內存越少D.內存越多
45.系統調用的目的是(A)
A.請求系統服務B.終止系統服務C.申請系統資源D.釋放系統資源
46.下面系統中,必須是實時操作系統的有(6)個。
圖形處理軟件;ATM機管理系統;過程控制系統;機器翻譯系統;辦公自動化系統:計算機激光
照排系統;計算機輔助設計系統(CAD);航空訂票系統;12306網上訂票系統;股票交易系統;
47.什么是操作系統?操作系統的特征行哪些?其設計基本目標是什么?操作系統的作用主
要表現在哪幾個方面?操作系統完成制主要功能有哪些?
答:操作系統是一組控制和管理計算機硬件和軟件資源、合理地對各類作業在行調度,以及
方便用戶的程序的集合。
特征:并發、共享、虛擬、異步
基本目標:方便性、有效性
作用:用戶與計算機硬件系統之間的接口、計律機系統資源的管理者、對計算機資源的抽象。
操作系統的主要功能:進程管理、內存管理、文件管理、設備管理、用戶接口管理。
48.什么是多道程序技術?在操作系統中引入該技術帶來了哪些好處?實現多道程序應解決
哪些問題?
答:定義:多道程序技術是指在內存中同忖存放若干個作業,并使它們共享系統的資源,同
時運行的技術。
好處:提高CPU的利用率、提高內存和I/O設備的利用率、增加系統吞吐量。
問題:1)處理機管理。2)存儲器管理。3)設備管理。4)文件管理。5)用戶接口
第02章練習題(2.1-2.3)
1.進程狀態的轉換是由操作系統完成他,對用戶是透明的。J
2.操作系統對進程的管理和控制主要是通過PCB來實現的.J
3.多個進程可以對應于同一個程序,且一個進程也可能會執行多個程序。J
4.一個進程的狀態發生變化總會引起其它一些進程的狀態發生變化。X
5.一般地,進程由PCB和其執行的程序數據所組成.V
6.系統調用是操作系統與外界程序之向的接口,它屬于核心程序。在層次結構設計中,它最
靠近硬件。x|批注[貨仙中斷程序行旅近硬件
7.原語是一種不可分割的操作。J
8.一個進程在執行過程中可以被中斷事件打斷,當相應的中斷處理完成后,就一定恢夏該進批注[黃5):若進程由中斷或異常進入核心態運行,執行
程被中斷時的現場,使它繼續執行。X完后又回到用戶態剛被中斷的程序運行,則操作系統只
9.進程的動態、并發特征是通過程序表現出來的。X需快發進程進入內核時所保存的CPU現場,而無須改
10.進程控制塊中的所有?信息必須常駐內存.X變當前進程的環境信息。但若要切換進程,當前運行進
11.當一個進程從等待態變成就緒態,則一定有一個進程從就緒念變成運行志.X程改變了,剜當前it程的環境信息也需發改變。運行
12.用戶程序一定在核心態下運行。>:環境佶息稱為進程的上下文:處理機狀態信息稱為處理
13.當某個特定條件滿足時,進程可以由運行狀態轉換為就緒狀態.J機的上下文.
14.進程控制塊(PCB)是為所有進程設更的私有數據結構,每個進程僅有一個Pl'BoJ
15.進程是獨立的,能夠并發執行,程序也一樣。X
進程優先數是進程調度的重要依據,必須根據進程運行情況動態改變X批注【黃司:優先級分靜態和動態兩種.
16.進程是程序的一次執行過程,在執行過程中進程的狀態不斷發生變化,進程的這種特性動態優先級是根據進程運行情況隨時調整的:
稱為(A)靜態優先級一旦確是不能改變。
A.動態性B.并發性C.同步性D.異步性
17.造成某進程狀態從就緒態轉變成運行態的原因是(D)
A.上次分配給該進程的處理痣時間太短B.有更高優先級的進程要運行
C.該進程需要更多的處理器時間運行D.該進程被進程調度程序選中
18.在進程管理中,當(C)時,進程從阻塞狀態變為就緒狀態。
A.進程被進程調度程序選中B.等待某一事件
C.等待事件發生D.時間片用完
19.下列進程狀態變化中,(C)變化是不可能發生的。
A.執行一〉就緒B.執行一〉阻塞C.陽塞一》執行D.阻塞一〉就緒
20.某進程由于需要從磁盤上讀入數據而處于阻塞狀態。當系統完成了所需的讀盤操作后,
此時該進程的狀態將(D)。
A.從就緒變為運行B.從運行變為就緒C.從運行變為阻塞D.從阻塞變為就緒
21.進程和程序的一個本質區別是()),
A.前者分時使用CPU,后者獨占CPUB.前者存儲在內存,后者存儲在外存
C.前者在一個文件中,后者在多個文件中D.前者為動態的,后者為靜態的
22.一個運行的進程用完了分配給它的時間片后,它的狀態變為(A)。
A.就緒B.等待C.運行D.由用戶自己確定
23.對進程的管理和控制使用(B)。
A.指令B.原語C.信號量D.信箱通信
24.不屬于進程控制原語的是(A)
A.接收原語B.撤消原語C.阻塞原語D.喚醒原語
25.分配到必要的資源并獲得處理機時的進程狀態是(B)
A.就緒狀態B.執行狀態C.阻塞狀態D.撤消狀態
26.下面所述步驟中,(A)不是創建進程所必需的。
A.由調度程序為進程分配CPUB.建立一個進程控制塊
C.為進程分配內存D.將進程控制塊鏈入就緒隊列
27.一個進程被喚醒意味著D)?
A.該進程重新占有了CPUB.它的優先權變為最大
C.其PCB移至等待隊列隊首D.進程變為就緒狀態
28.通常,用戶進程被建立后,(B).
A.便一直存在「?系統中,直到被操作人員撤消B.隨著作業運行正常或不正常結束而撤消
C.隨著時間片輪轉而撤消與建立1隨著進程的阻塞或喚醒而撒消與建立
29.在操作系統中,進程是一個具有一定獨立功能的程疔在某個數據集上的一次(B),
A.等待活動B.運行活動C.單犯操作D.關聯操作
30.下面對進程的描述中,錯誤的是(D)。
A.進程是動態的概念B.進程執行得要處理機
C.講程是有生命期的D.進程是指令的集合
31.一進程在某一時刻具有(A)。
A.一種狀態B.二種狀態C.三種狀態1四種狀態
32.操作系統的(D)管理部分負資對進程進行調度。
A.主存儲器B.控制器C.運算器D.處理機
33.進程名存放在該進程控制塊PCB的(B)區域中。
A.說明信息B.標識信息C.現場信息D.管理信息
34.一個進程被喚醒,意味著(B)。
A.改進程重新占有了CPUB.進程狀態變為就緒
C.它的優先權變為最大D.其FCB移至就緒隊列的隊首
35.操作系統通過(B)對進程進行管理。
A.進程B.進程控制塊C.進程啟動程序D.進程控制區
36.進程在系統中是否存在的惟一-標志是(D).
A.數據集合B.目標程序C.源程序D.進程控制塊
37.下列進程狀態的轉換中,哪一個是不正確的(D)?
A.就緒f運行B.運行一就緒C.阻塞->就緒D.就緒一阻塞
38.進程的控制信息和描述信息存放在(B)。
A.JCBB.PCBC.AFTD.SFT
39.當一個進程完成了特定的任務后,系統收回這個進程所占的工作區或主存空間或資源
和取消該進程的進程控制塊,就撤消了該進程。
41.當一個進程獨占處理器順序執行時,具有兩個特性:封閉性和可再現性。
42.
43.進程實體由程序、PCB或進程控制塊和數據集合三部分組成。
44.進程的基本特征包括動態性、并發性、獨立性、異步性和結
構特征。批注[黃7]:區別「帙作系統的基本特征
15.算機系統將處理器的工作狀態劃分為管態和目態。后者一般指用戶程序運行時的狀態,OS基本特征:并發、共享、虛擬、異步
又稱為用戶態.進程基本特征:動態、并發、獨立、異步
46.進程是動態的概念,而程序是靜態的概念。
47.什么是進程?試說明引起進程創建的事件有哪些?進程的基本狀態有哪些?各種狀態是
如何切換的(畫出進程狀態轉換圖)?進程同步應遵循哪些原則?為什么?
答:進程:進程是具有獨立功能的程序關于某個數據集合上的一次運行活動,是系統進行資
源分配和調度的獨立單位
進程創建事件:用戶登錄:作業調度:提供服務:應用請求。批注[黃8):用戶登錄、作業調度、提供版務均為系統
狀態:就緒、運行、阻塞內核為用戶創建一人新進程:
應用請求由用戶進程自己創建新進程.
進程同步原則:空閑讓進、忙則等待、有限等待、讓權等待。
原因:為實現進程能互斥地進入到自己的臨界區
48.進程與程序是兩個完全不同的概念,但又有密切的聯系,試從動態性、并發性和獨立性
三方面比較進程和程序。
答:1)動態性是進程最基木的特性,可表現為由創建而產生,由調度而執行,因得不到資
源而暫停執行,以及由撤俏而消亡,因而進程有一定的生命期:而程序只是一組有序指令的
集合,是靜態實體。
2)并發性是進程的重要特征,同時也是OS的重要特征。引入進程的目的正是為了使其程序
能和其它建立了進程的程序并發執行,而程序本身是不能并發執行的。
3)獨立性是指進程實體是一個能獨立運行的基本單位,同時也是系統中獨立獲得資源和獨
立調度的基本單位。而對于未建立任何進程的程序,都不能作為?個獨立的單位來運行。
49.什么是操作系統中的并發技術?
答:在多道程序環境下,為使程序并發獨立運行,操作系統引入了“進程”的概念。進程具
有并發性。并發性是指兩個或多個進程在同一時間間隔內同時執行。
第02章練習題(2.4)
I.進程間的互斥是一種特殊的同步關系.V
2.用信號量和P,V原語操作可解決互斥問題,互斥信號量的初值一定為1.X
3.對臨界資源,應采用互斥訪問方式來實現共享。J
4.如果一組并發進程是有交互的,則它們(B)
A.一定含有相同的程序B.程序間會有依賴關系
C.進程的執行具有封閉性D.進程的執行速度各自獨立
5.對一組并發進程來說,其中每一個進程都(A)
A.具有順序性B.不能被中斷C.不與其它進程共享資源D.含有不同的程序
6.多個進程的實體能存在于同吶存中,在一段時間內都得到運行。這種性版稱作進程的
(B
A.動態性B.并發性C.調度性D.異步性
7.進程的并發執行是指若干個進程(B)(.
A.同時執行B.在執行的時間上是重登為C.在執行的時間上是不可重登的D.共享系統資源
8.進程間的同步是指進程間在邏輯上的相互(B)關系。
A.聯接B.制約C.繼續D.調用
9.用P、V操作管理臨界區時,信號量的初值應定義為(C)批注[黃9):I題,正確應選BC若號試中遇到,
A.-lB.OC.1D.任意值選C
10.用V操作喚醒一個等待進程時,被喚醒進程的狀態變為(B).
A.等待B.就緒C.運行D.完成
H.臨界區是(C)o
A.一個緩沖區B.一段共享數據區C.一段程序D.一個互斥資源
12.用P、Y操作可以解決(A)互斥問題。
A.一切B.某些C.正確D.錯誤
13.正在運行的進程在信號量S上操作P操作之后,當S<0,進程將進入信號量的(A
A.等待隊列B.提交隊列C.后備隊列D.就緒隊列
14.當對記錄型信號線進行V原語操作之后(C).
A.當S<0,進程繼續執行B.當S>0,要喚醒一個就緒進程
C.當S<=0,要喚醒一個等待進程D.當S<=0,要喚醒一個就緒進程
15.PW操作是(A).
A.兩條低級進程通信原語B.兩組不同的機器指令
C.兩條系統調用命令D.兩條高級進程通信原語
16.兩個進程合作完成?個任務,在并發執行中?個進程要等待其合作伙伴發來消息,或者建
立某個條件后再向前執行,這種制約性合作關系被稱為進程的(A)。
A.同步B.互斥C.調度D.執行
17.(D)是一種只能進行P操作和V操作的特殊變量。
A.調度B.進程C.同步D.信號量
18.設與某資源相關聯的信號量初值為3,當前值為1,若M表示該資源的可用個數,N表
示等待該資源的進程數,則M,N分別是(B)
A.0,1B.1.0C.1,2D.2,0
19.可以被多個進程在任一時刻共享的代碼必須是(A
A.不能自身修改的代碼B.順序代碼C.無轉移指令的代碼D.匯編語言編制的代碼
20.原語是一種特殊的系統調用命令,它的特點是(D),
A.功能強B.自己調用自己C.可被外層調用D.執行時不可中斷
21.如果信號母的當前值為一4,則表示系統中在該信號員上有(A)個進程等待。
A.4B.3C.5D.0
22.設兩個進程共用一個臨界資源的互斥信號量mucex,肖mulex=T時表示?:A工
A.一個進程進入了臨界區,另一個進程等待B.沒有一個進程進入臨界區
C.兩個進程都進入臨界區D.兩個進程都在等待
23.如果進程PA對信號量S執行P操作,則信號量S的值應(B)。
A.加1B.減1C.等于0D.小于0
24.在下面的敘述中正確的是(C),
A.臨界資源是非共享資源B.臨界貨源是任意共享資源
C.臨界資源是互斥共享資源D.臨界貨源是同時共享資源
25.在操作系統中解決進程間同步和互斥的?種方法是使用信號成。
26.什么是臨界資源?什么是臨界區?進程進入臨界區的調度原則是什么?
答:臨界資源:單位時間只允許一個進程訪問的資源稱為臨界資源。
臨界區:在每個進程中訪問臨界資源什J那段程序叫臨界區。
調度原則:空閑讓進、忙則等待、有限等待、讓權等待。
第02章練習題(2.5)
一、互斥訪問和程序段前趨關系控制問題及擴展
1.有兩個用戶進程A和B,在運行過程中都要使用系統中的一臺打印機輸出計算結果,為
保證這兩個進程能正確地打印出各自的結果,請用信號量和P、V操作寫出各自的有關申請、
使用打印機的代碼。要求給出信號吊;的含義和初值。
答:評定義信號信*/
semaphoremutex=l;〃打印機互斥信號量,初始值1代表可用
A(){/*A描述*/
while(l){
打印前的處理工作;
wail(muiex);“等打印機可用,申請打印機
打印;〃成功申請打印機,打印
signaKmutex);〃置打印機可用,釋放打印機
打印后的處理工作;
)
)
B(){/*B描述*/
while(l){
打印前的處理工作;
wail(muicx);〃等打印機可用,申請打印機
打卬;〃成功申請打印機,打印
signal(muiex);〃置打印機可用,釋放打印機
打印后的處理工作;
)
)
main(){
cobcgin
A();B():
coend
)
2.在公共汽車不斷地到站、停車、行駛過程中,司機和售票員的活動分別如下:(1)司機:
啟動車輛:正常行車:到站停車;<2)售票員:關車門:售票;開車門。請用記錄型信號量
機制描述司機和售票員的同步關系。
答:尸定義信號量及初值*/
jsem叩horeSI=0;〃表示是否允許司機啟動車輛,其初值為0;批注Mho]:光關車門,再啟動車輛
semaphoreS2=0:〃表示是否允許售票員開車門,其初值為0。|
批注I黃11]:信票之后,再上車
driver(){/*司機描述*/
whiled){
wait(SI);
啟動車輛;
正常行車;
到站停車;
signal(S2):
}
)
Seller()(尸售票員描述*/
whilefl){
關車門;
signal(SI);
售票;
wait(S2);
開車門;
}
}
tnain(){
cobegin
Seller():drived);
coend
)
3.假定系統有三個并發進程read,move和print共享緩沖器Bl和B2.進程read負責從輸入
設備上讀信息,每讀出一個記錄后把它存放到緩沖器BI中.進程move從緩沖涔BI中取出一
記錄加工后存入緩沖器B2.進程piini格B2中的記#:取山打卬輸出.緩沖器BI和B2每次只
能存放一個記錄.要求三個進程協調完成任務,使打印出來的與讀入的記錄的個數,次序完全
一樣.請用PV操作,寫出它們的并發程序.
答:產定義信號量及初值*/
recordB1.B2;〃B1第一個緩沖區,B2第二個緩沖區
semaphoreempty1=1:〃緩沖區bI空緩沖區數量信號量,I代表可用。
semaphorefull1=0:〃緩沖區bl滿緩沖區數量信號量,0代表無資源。
semaphoreempty2=l;〃緩沖區b2空緩沖區數成信號成,I代表可用。
semaphorefull2=0;〃緩沖區b3滿緩沖區數設信號量,0代表無資源。
rcad(){
recordX;
while"){
X=接收來自輸入設備上一個記錄;
wait(empty1):〃等b1空
BI=X;
signal(ftiHl);〃置bl滿,喚move
)
)
inove(){
recordY;
while(l){
wait(fulll);〃等bl滿
Y=BI;
signal(cmptyI);〃置bI空,喚read
加工Y;
wait(cmpty2);〃等b2空
B2=Y;
signal(full2);//Sb2滿,喚prini
)
)
printOf
recordZ;
while(l){
wait(full2);〃等b2滿
Z=B2;
signal(cmpty2);〃置b2空,喚move
打印Z;
}
)
inain(){
cobegin
read();move();print();
coend
)
4.三個進程:輸入、計算、輸出。它們通過兩個緩沖區傳遞數據,如圖所示,
手個緩沖區一次只能放入一條數據。寫出用信號量進行同步。
公共緩公共緩
-
0^沖區沖區2d
答:原理同3題
【多個同樣進程,多緩沖區,同步】
5.彳1一?閱覽室,讀者進入時必須先在?張登記表上登記,該表為每?座位列出?個表目,
包括座號、姓名,讀者離開時要注銷登記信息:假如閱覽室共有*100個座位。試用:信號戰
和P、V操作,來實現用戶進程的同步算法。
答:/*定義信號量及初值*/
stringAI100]:〃晉記表,座何號0-99,存儲座位上讀者的名字
semaphoremutcxA=l;〃mulcxA座位數組A互斥信號量,初始值I代表可用
semaphoresea(count=IOO;"seaicouni空余的座位數,初始值100
reader(stringreadernaine){〃讀者進程,傳遞讀者名
intreadernumber;〃讀者座位號
wait(seatcount);〃等有空座位,座位-1
wait(mulexA);〃等座位數組A可用
for(i=0;i<100;i++)”找空座,并占住
if(A[i].name==NULL)
{A[i].name=readername:break;}批注【黃12]:登記表為臨界資源,而并非座位
readenmmber=i;〃記錄座位號for循環體為臨界M
signal(niutexA);〃置座位數組A可用readnumber=i可以放在臨界區內也可以放在臨界區
讀者進入閱覽室,作在rcadcrnumbcr號座位讀書;外無影響
讀者準備離開閱覽室
wait(mutcxA);〃等座位數組A可用
A[readcmumber]=NULL;〃離開座位,空出座位
signal(muiexA);〃置座位數組A可用
signal(seatcount);〃座位+1,喚讀者
讀者離開閱覽室;
)
main()(
for(i=0;i<100;i++)A[i].name=null;
cobcgin
whiled){
rcademame=?r來的讀者名;
reader(reademanie);
}
coend
)
二、生產者-消費者問題及擴展
【經典生產者?消費者問題】
6.為了解決生產者和消責者的問題,當生產者和消皴者共享一個緩沖區時,請用信號量和P、
V操作寫出各自的有關申請、使用緩沖區的代碼。要求給出信號量的含義和初值。
【書P60-61]
答:/*記錄型信號量定義*/
intin=0.ou(=0;
itembuffering〃緩沖區臨界資源
semaphoreniutex=l;〃緩沖I乂互斥信號量,初始值1代表資源可用
semaphoreeinpty=n;〃緩沖區空緩沖數量信號量,初始值n代表n個可用
semaphorefull=0;〃緩沖區產品個數信號量,初始值0代表無
voidproceducer(){
while(l)(〃生產者進程
produceranitemnextp:
wait(empty);〃等有空位,空位J
wait(mutex):〃等緩沖區可用
〃向緩沖區內放產品
bufferlin]=nexip;
in=(in+l)%n;
signal(mutex):〃置緩沖區可用,喚消費者
signal(full);〃產品數+1
)
voidconsumer。(
while(l)(〃消費者進程
wait(full);〃等有產品,產品數-1
wait(mutex);〃等緩沖區可用
〃從緩沖區內取產品
nextc=buner|out|;
out=(oul+l)%oul;
signal(numtcx);〃置緩沖區可用,喚消費者
signal(empty);"空位+】
consumertheiteminnextc;
I
)
voidmain(){
cobcgin
proccduccr();consumer。;
cocnd
}
【一生產者,單緩沖區,二互斥消費者】批注[黃13]:I,「.單援沖區,互斥信號量mutex
7.桌上有一空盤,允許存放一只水果。媽媽可向盤中放白梨,也可向盤中放橙子,兒子專無影響.
等吃盤中的白梨,女兒專等吃盤中的橙子。規定當盤空時一次只放一只水果供吃者取用,請enip(y[-1,1]
用P,V原語實現媽媽,兒子,女兒三個并發進程的同步。
答:/*記錄型信號呈定義*/
itemplace:〃盤子臨界資源
semaphoreempiy=l;〃盤子中可放水果數信號量,互斥,I代表可放水果
semaphorefullp=0;〃盤子中白梨數信號量,0代表無
5Vinapliuicfullu-O,〃盤了中橙了數信號量,。代表無
產程序代碼,pv原語句
mothcr()(〃母親進程
while(l){
wait(empty);〃等待盤子空
plate=fifi機水果(pearororange);
if(plate==pe;u)
signal(fullp);〃置Fl梨可用,通知兒子
else
signal(fullo);“置橙子可用,通知女兒
son(){〃兒子進程
itemx;
whiled){
wail(fiillp);〃等白梨
x=plate:
signal(cmpiy);〃置盤子可用,通知媽媽
吃白梨X;
)
)
daughter!){〃女兒進程
itemx;
whilc(l){
wait(fullo);〃等橙子
x=plate;
signal(cmply);〃置盤子可用,通知媽媽
吃橙子X;
)
)
main(){
cobegin
mothcrf);son();daughtcr();
cocnd
)
8.某幼兒園中班有兩個班級每班各30名孩子。年底匯演中班排練節目,節目中需要手鼓和
搖於兩種樂器。園長負貨分發樂器,一班拿手鼓,二班拿搖鈴。園長一次只鋌發一種樂器且
將樂器放在指定位置匕一班和二班班主任每次按照所需要的也只能拿一件樂器發給班里小
朋友。請用P.V原語實現園長、一班和二班班主任三個人的進程同步。
答:同7題
9.學校羽毛球館,館內提供羽毛球拍和羽毛球若干。有A、B兩組學生,A組學生每人都
備有羽毛球拍,B組學生每人都備有羽毛球.任意?組學生只要能得到其他?種材料就可
以打球。有一個可以存放一個球拍或一個羽毛球的筐子,當筐子中無物品時,管理員就隨機
的放一個球拍或一個羽毛球供學生取用,每次允許一個學生從中取出自己所需的材料,當學
生從留了中取走材料后允許管理員再以件材料,請用信號身與P、V操作。
答:同7題
10.有一體育器材保管員,他網球拍和網球若干。有A、B兩組學生,A組學生每人都備
有網球拍,B組學生每人都備有網球.任意一組學生只要能得到其他一種材料就可以打網
球。有一個可以放一個球拍或一個網球的筐子,當筐子中無物品時,保管員就可任意放一個
球拍或一個網球供學生取用,每次允許一個學生從中取出自己所需的材料,當學生從筐子中
取走材料后允許保管員再放一件材料,請用信號量與P、V操作。
答:同7題
11.有一材料保管員,他保管紙和筆若干。有Al、A2兩組學生,A1組學生每人都備有
紙,A2組學生每人都備有筆.任意一名學生只要能得到其他-?種材料就可以寫信。有一個
可以放一張紙或一支筆的小盒,當小盒中無物品時,保管員就可任意放一張紙或一支筆供學
牛取用,每次允許一個學牛從中取出自己所需的材料,當學牛從禽中取走材料后允許保管員
再存放一件材料,請用信號量與P、V操作。
答:同7題
【一生產者,多緩沖區,二互斥消費者】
12.三個進程PI、P2、P3互斥使用一個包含N(NX))個單元的緩沖區。P1每次用produceO
生成一個正整數并用pui()送入緩沖區某一空單元中;P2每次用geioddO從該援沖區中取出
一個奇數并用countoddO統計奇數個數;P3每次用gctevenO從該緩沖區中取出一個偶數并用
counieven。統計偶數個數。請用信號量機制實現這三個進程的同步與互斥活動,并說明所定
義的信號量的含義。要求用偽代碼描述。
答:/*信號量定義及含義*/
semaphoreempty=N;〃緩沖區空緩沖數成信號成,N代表初始N個"J'用
semaphorefullodd=0;〃緩沖區中奇數個數信號量,0代表無
semaphorefullevcn=O;〃緩沖區中偶數個數信號量,0代表無
semaphoremutex=l;〃緩沖區互斥信號量,I代表可用
Pl()(〃進程PI,生成正整數
while(I){
X=produce();〃生成數
wail(empiy);〃等有空位
wait(mutex);"等緩沖區可用
put(X);
signal(muiex);"放緩沖區
iRx%2==0)
signal(fulleven);〃喚p3
else
signal(fullodd);〃喚p2
}
)
P2(){〃進程P2
while(l){
wait(fullodd);〃等奇數
wait(mutex);"等緩沖區可用
X=getodd();
signal(mutex);〃放緩沖
sigiiul(cinply),〃喚pl
countodd(X);
}
)
P3()(〃進程P3
while(l){
wail(i'ulleven);〃等偶數
wait(nnitex):〃等緩沖
X=geteven();
signal(mutex);〃放緩沖
signal(empty);〃喚pl
countcven(X):
}
)
niain(){
cobegin
PIO;P2():P3();
coend
【一生產者,單緩沖區,二共用消費者】
13.計算進程PC和打印進程POI、P02共享一個單緩沖區。計算進程負責計算,并把計算
結果放入單緩沖區中。打印進程POI、P02負責從單緩沖區中取出計算結果進行打印,而
且對于每一個計算結果,POI和P02都需分別打印一次。請用記錄型信號戰機制描述上述
三個進程之間的同步關系。
答:/*定義信號量*/,拙仁0,桃z
semaphorefull1=0;〃表示緩沖區中是否有可供POI打印的i|算結果,其初值為0:旗)fpoiOf
semaphorefull2=0;〃表示緩沖區中是否有可供PO2打卬的計算結果,其初值為0:5如?
semaphoreempty1=1;〃表示計算結果是否已被PO1取走,其初值為1:
semaphoreemp【y2=1;〃表示計算結果是否己被PO2取走,其初值為1。
PC()(/*PC描述*/
while(l){
計算;
POX)|
wait(emptyi);〃等pol取
wait(empty2);〃等po2取
計算結果放入緩沖;怡—初小初
signal(fulll);/帙pol
signal(full2);〃喚po2
}
)初」外國2死住做B%
POI(){/*P01描述刊及娼偃茲肛
while(l){批注(#14]:
wait(fulll):〃等結果,poi可用
取出計算結果;
signal(emptyl);〃喚pc,pel用完
打卬結果,
}
)
PO2(){/*PO2描述力
whiled){
wait(full2);〃等結果,po2可用
取出計算結果;
signal(empty2);〃喚pc.po2用完
打印結果;
)
)
main(){
cobegin
PC();P01();P02();
coend
J
【多生產者,一消費者問題】
14.某繳費中心提供I個服務窗口和5個供顧客等待的座位,顧客到達該中心時,若有空座
位,則到取號機上領取一個號,等待山號。取號機每次僅允許一位顧客使用。當收銀員空閑
時:通過叫號選取一位顧客,并為其服務。顧客和收銀員的活動表述如下:
Process顧客:
從取號機獲取一個號碼:
等待叫號:
獲取服務:
)
Process收銀員
(
叫號:
為顧客服務:
)
請添加必要的信號城和P、V(或者wail。和signal。)操作,實現上述過程中的互斥與同步。
要求寫出完整的過程,說明信號量的含義并賦初值。
【分析】空座死等,無需定義int變量進行判斷。
無法實現順序叫號和服務的對應關系
答:/*信號量定義*/
為”寸城街
semaphorescatcs=5:〃表示空余座位數量的資源信號量,初值為5
攵《1吐皿*?5=0;□□□
semaphorecustoniers=0:〃表示等待服務顧客的數量的資源信號量,初值為0
勿乃?馬〃評巴
semaphoremu(ex=l;〃管理取號機的互斥信號量,初值為1,表示取號機空閑
semaphoreservice=0:〃獲取服務的信號量I
se*u>pWwvite,?o,
customer){〃顧客進程
wait(seats);〃等空位
水,時,懂機生…
kTMCtMtwwK)
wait(mutex);〃等取號機,互斥資源刖(中),
從取號機獲取一個號碼;WKtCiMrt*);
崢機&Ig"
sigiial(mulcA),〃秤放取耳機,產〔MS〉,
signal(cuslomcrs);〃喚收銀員
等待叫號:
wait(service);〃等待叫號
獲取服務;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信施工免責協議書
- 現金托管協議書范本
- 農戶果樹變賣協議書
- 幼師租房誠信協議書
- 裝修后續承諾協議書
- 全面責任協議書模板
- 收款辦事協議書范本
- 銀行打錯賬戶協議書
- 汽車轉讓協議書打印
- 屋頂安裝鋼板協議書
- 2025年廣東能源集團云浮蓄能發電有限公司招聘筆試參考題庫含答案解析
- 2024年考生面對挑戰時的心理調整試題及答案
- 2025-2030全球及中國4,4-二氟二苯甲酮行業市場現狀供需分析及市場深度研究發展前景及規劃可行性分析研究報告
- 【初中地理】撒哈拉以南非洲課件-2024-2025學年人教版地理七年級下冊
- 藥物治療管理MTM
- 廣東省佛山市南海區2024-2025學年七年級外研版英語期中練習題(含答案)
- 鋼筋精算管理操作手冊
- 2025年河南水利與環境職業學院單招職業技能測試題庫審定版
- 近十年英語中考完形填空試題
- 207卒中患者時間節點控制表
- 《孟子》導讀PPT課件
評論
0/150
提交評論