計算機操作系統基礎筆記2

計算機操作系統基礎筆記2

1 人贊了文章

程序並發執行時的特徵:

1、間斷性

程序並發執行時,由於它們共享系統資源,以及為完成同一項任務而相互合作,致使在這些並發執行的程序之間形成了互相制約的關係:並發程序具有「執行--暫停--執行」的間斷性的活動規律。

2、失去封閉性

當系統中存在著多個可以並發執行的程序時,系統中的各種資源將為他們共享,而這些資源的狀態也由這些程序來改變,致使其中任一程序在運行時,其他環境都必然受到其他程序的影響。

3、不可再現性

兩個循環程序A和B,它們共享一個變數N。

程序A每執行一次時,都要做N=N+1操作;

程序B每執行一次時,都要做執行Print(N)操作,之後執行N=0操作;

A、B以不同的速度運行,則可能出現下述3種情況(假設某時刻變數N的值為n)

n+1,n+1,0

n,n+1,0

n,0,n+1

進程的三種基本狀態:

(1)就緒狀態:進程已獲得除CPU外的所有必要資源,只等待CPU時的狀態。一個系統會將多個處於就緒狀態的進程排成一個就緒隊列。

(2)執行狀態:進程已獲CPU,正在執行。單處理機系統中,處於執行狀態的進程只一個;多處理機系統中,有多個處於執行狀態的進程。

(3)阻塞狀態:正在執行的進程由於某種原因而暫時無法繼續執行,便放棄處理機而處於暫停狀態,即進程執行受阻。(這種狀態又稱等待狀態或封鎖狀態)

通常導致進程阻塞的典型事件有:請求I/O,申請緩衝空間等。

哲學家進餐問題:

有五個哲學家,他們的生活方式是交替地進行思考和進餐。他們共用一張圓桌,分別坐在五張椅子上。

在圓桌上有五個碗和五支筷子,平時一個哲學家進行思考,飢餓時便試圖取用其左、右最靠近他的筷子,只有在他拿到兩支筷子時才能進餐。進餐完畢,放下筷子又繼續思考。

1.至多只允許四個哲學家同時進餐,以保證至少有一個哲學家能夠進餐,最終總會釋放出他所使用過的兩支筷子,從而可使更多的哲學家進餐。

2.通過互斥信號量 mutex 對 eat() 之前取左側和右側筷子的操作進行保護,可以防止死鎖的出現。


推薦閱讀:

TAG:計算機 | 科技 | 筆記 |