操作系統習題(F.L)答案 下載本文

1.敘述進程和程序的主要區別。

2.在測量控制系統中,數據采集任務把所采集的數據送入一單緩沖區;計算任務從該單緩沖區中去出數據進行計算。試寫出利用信號量機制實現兩者共享單緩沖區的同步算法。 3.已知一個求值公式(A2+3B)/(B+5A),若A、B已賦值,試畫出該公式求值過程的前驅圖。

4.圖2.7給出了四個進程合作完成某一任務的前趨圖,試說明這四個進程間的同步關系,并用P、V操作描述它。

S1

S2 S3

S4

圖2.7 四個合作進程的前趨圖

5.某系統的今年成狀態轉換圖如圖2.8所示,請說明: (1)引起各種狀態轉換的典型事件有哪些?

(2)當我們觀察系統中某些進程時,能夠看到某一進程產生的一次狀態轉換能引起另一進程作一次狀態轉換。在什么情況下,當一個進程發生轉換3時能立即引起另一進程發生轉換1? (3)試說明是否會發生下述因果轉換:

2→1 ; 3→2 ; 4→1

執行 2 3

1 6.在單處理機的分時系統中,分配給進程P的時間片用完后,系統進行就緒 阻塞 切換,結果調度到的仍然是進程P。有可能出現上述情形嗎?如果可能4 請說明理由。 圖2.8某系統進程狀態圖

7.桌上有一空盤,允許存放一只水果。爸爸可向盤中放蘋果,也可向盤中放橘子,兒子專等吃盤中的橘子,女兒專等吃盤中的蘋果。規定當盤空時一次只能放一只水果供吃者取用,請用P、V原語實現爸爸、兒子、女兒三個并發進程的同步。

8.哲學家甲請哲學家乙、丙、丁到某處討論問題,約定全體到齊后開始討論;在討論的間隙四位哲學家進餐,每人進餐時都需使用刀、叉各一把,餐桌上的布置如圖2.9所示,請用信號量及P、V操作說明這四位哲學家的同步、互斥過程。

9.某數據庫有一個寫進程,多個讀進程,它們之間讀、寫操作的互斥要求是:寫進程正在寫該數據庫時不能有其他進程讀該數據庫,也不能有其他進程寫該數據庫;讀進程之間不互斥,可以同時讀該數據庫。請用信號量及P、V操作描述這一組進程的工作過程。 10.設在公共汽車上,司機和售票員的活動分別是: 司機的活動: 啟動車輛;

正常行車; 到站停車;

售票員的活動:關車門;

售票; 開車門;

在汽車不斷地到站、停車、行駛過程中,這兩個活動有什么同步關系?用信號量和P、V操作實現它們的同步。

11.設有一個發送者進程和一個接受者進程,其流程土如圖2.10所示。S是用于實現進程同步的信號量,mutex是用于實現進程互斥的信號量。試問流程圖中的A、B、C、D四框中應填寫什么?假定緩沖區無限多個,s和mutex的初值應為多少? 發送者進程: 申請緩沖區

B 把信息寫入緩沖區

V(s)

A

將緩沖區放到消息鏈尾

接收者進程: :

C

D

從消息鏈首取一個緩沖區

V(mutex)

從緩沖區中取出信息

釋放緩沖區

12.下述程序是解決兩個進程互斥訪問臨界區溫暖體的一種方法,試從“互斥”、“有空讓進”、“有限等待”等三個方面討論它是否正確。 int c1=0; int c2=0; main ( ) {

cobegin

p1 ( );

p2 ( ); /*進程p1、p2并發執行*/ coend }

p1 ( ) /*第一個進程p1*/ {

while ( 1 ) {

other section 1 ; /*其他部分*/ do c1=1 – c2 ; while ( c2==0 );

critical section ; /*臨界區*/ c1 =1; } }

p2 ( ) /*第二個進程p2*/ {

while ( 1 ) {

other section 2 ; /*其他部分*/ do

c2=1 – c1 ; while ( c1==0 );

critical section ; /*臨界區*/ c2 =1; } }

13. ①寫出P、V操作的定義。

②有三個進程PA、PB和PC合作解決文件打印問題:PA將文件記錄從磁盤讀入主存的緩沖區1,每執行一次讀一個記錄;PB將緩沖區1的內容復制到緩沖區2,每執行一次復制一個記錄;PC將緩沖區2的內容打印出來,每執行一次打印一個記錄。緩沖區的大小等于一個記錄大小。請用P、V操作來保證文件的正確打印。

14.設有八個程序prog1、prog2、…、prog8。它們在并發系統中執行時

有如圖2.13所示的制約關系,試用P、V操作實現這些程序見的同步。 prog1 prog2 prog3 prog5

prog4

prog6 prog7 prog8

圖2.13 進程并發執行的制約關系

15.有一個倉庫,可以存放A和B兩種產品,但要求: (1)每次只能存入一種產品(A或B); (2) - N﹤A產品數量 – B產品數量﹤M。

其中,N和M只正整數。試用P、V操作描述產品A與產品B的入庫過程。

16.進程A1、A2、…、An1通過m個緩沖區向進程B1、B2、…、Bn2不斷地發送消息。發送和接收工作遵循如下規則:

①每個發送進程一次發送一個消息,寫入一個緩沖區,緩沖區大小等于消息長度;

②對每一個消息,B1、B2、…、Bn2都須各接收一次,讀入各自的數據區內;

③m個緩沖區都滿時,發送進程等待;沒有可讀的消息時,接收進程等待。

試用P、V操作組織正確的發送和接收工作。

解析題:

1.(1)程序是指令的有序集合,其本身沒有任何運行的含義,它是一個靜態的概念。而進程是程序在處理機上的一次執行過程,它是一個動態的概念。

(2)程序的存在是永久的,而進程則是有生命期的,它因創建而產生,因調度而執行,因得不到資源而暫停,因撤消而滅亡。

(3)程序僅是指令的有序集合。而進程則由程序、數據和進程控制塊組成。





黑龙江22选5兑奖期限