作業系統第五 六章作業

2021-10-11 16:32:25 字數 1983 閱讀 4263

補充題1

int put=10

,orange=0;

father:

//父親程序

while(1

)daughter:

//女兒程序

while(1

)son:

//兒子程序

while(1

)

補充題2

需要設定進出門程序,學生是否到齊程序,是否開始考試程序,考試結束程序

semaphore  s_door;

// 能否進出門,初值1

semaphore s_studentready;

// 學生是否到齊,初值為0

semaphore s_exambegin;

// 開始考試,初值為0

semaphore s_examover;

// 考試結束,初值為0

int nstudentnum =0;

// 學生數目

semaphore s_mutex1;

//互斥訊號量,初值為1

int n*****num =0;

// 已交的卷子數目

semaphore s_mutex2;

//互斥訊號量,初值為1

void

student()

void

teacher()

5.6

turn=0,程序p(1)使blocked[1]=true,在這時發現block[0]=false,然後p(0)會將block[0]=true,p(0)進入臨界區,p(1)在將1賦值給turn後也進入臨界區

補充題

在最壞情況下,三個程序各占用乙個資源,並同時請求第二個資源。由於系統中還有乙個未用的資源,所以三個程序中的乙個可以被滿足。另外兩個程序在這個程序結束以後可以獲取需要的資源,然後繼續執行。因此,不會出現死鎖。

當每個程序都申請m-1個資源,這個時候如果系統沒有資源了,它們中任何乙個程序,如果再提出申請1個資源的要求,就會死鎖。如果系統還有1個資源,就滿足了提出申請資源的某乙個程序,它釋放所持有的m-1個資源,死鎖局面被打破。

所以如果系統死鎖必有

n(m−1)+1>m

化簡一下可以得到

nm>m+n−1

進一步由不等式可以推出

nm>=m+n

這和題目中的條件nm < (m+n)矛盾

6.5

可用資源向量v=最大資源向量r-當前已分配矩陣aab

cdv6

354需求矩陣n=最大需求矩陣c-當前已分配矩陣a程序a

bcdp0

7534

p1212

2p234

42p32

331p4

4121

p5343

3資源變化情況程序a

bcdp1

6465

p21056

7p0125

88p31358

9p4146

89p51569

10當p5請求資源(3,2,3,3),則可用資源向量v為ab

cdv3

121由於當期可用資源向量無法滿足p0~p5任意程序執行需求,會發生死鎖

6.11

可用資源向量v=25,允許該請求。某一可行的程序終結序列1-2-3-4.

可用資源向量v=15 程序

最大需求量

當前已占有量

需求矩陣170

4525260

4020362

1545460

3525

6.15

可用資源向量最少需要v=3

故最少需要的資源數目為v+a=3+7=10個資源

高階程式設計技術作業(第五 六章)

總結 這兩章主要內容為條件判斷語句的使用和一種新的資料結構字典的使用。對於條件判斷語句,需要掌握的有條件判斷語句的基本結構,如if,else,elif等,另外還需要掌握and,or,in,not in等判斷用的關鍵字,如果有c語言的基礎,這一點並不難掌握 對於字典的使用,要學會對字典進行建立 遍歷 ...

軟體project 之第五 六章總結

軟體project的前幾章各自是軟體計畫 需求分析 軟體設計。整體的都規劃好了以後,就該著手去實踐了。所謂的理論體系足夠強大了以後,實踐就顯得尤為輕鬆。我們設計軟體,實踐當然就是用我已經計畫好的語言去編寫我們須要做的軟體,那麼,這個過程就叫做 程式編寫 總結下來就是首先我們編敲 之前要有一些主要的東...

軟體工程 之第五 六章總結

軟體工程的前幾章分別是軟體計畫 需求分析 軟體設計。總體的都規劃好了以後,就該著手去實踐了。所謂的理論體系足夠強大了以後,實踐就顯得尤為輕鬆。我們設計軟體,實踐當然就是用我已經計畫好的語言去編寫我們需要做的軟體,那麼,這個過程就叫做 程式編寫 總結導圖 第六章概要 程式設計完成之後,我們的程式是不是...