日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统习题三

發布時間:2023/12/4 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统习题三 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

1.有8個程序段,他們之間的前驅關系如下,試用信號量實現這些程序段之間的同步


2.簡述進程同步機制的基本原則。

答:在多道程序環境下,當程序并發執行時,由于資源共享和進程合作,使同處于一個系統中的進程之間可能存在著以下兩種形式的制約關系(1)間接相互制約關系,同處于一個系統中的進程,通常都共享著某種資源。(2)直接相互制約關系,這種制約主要源于進程間的合作。所以使用系統中的臨界資源時,諸進程應采取互斥方式,實現對資源的共享。為實現進程互斥的進入自己的臨界區,可用軟件方法,但更多的是在系統中設置專門的同步機制來協調各進程間的運行。
所有的同步機制都應遵循以下四條準則:
(1)空閑讓進:因為,當無進程處于臨界區時,表明臨界資源處于空閑狀態,應允許一個請求進入臨界區的進程立即進入自己的臨界區,以有效地利用臨界資源。
(2)忙則等待:因為,當已有進程進入臨界區時,表明臨界資源正在被訪問,因而其它試圖進入臨界區的進程必須等待,以保證對臨界資源的互斥訪問。
(3)有限等待:因為,對要求訪問的臨界資源的進程,應保證在有限時間內能進入自己的臨界區,以免陷入“死等”狀態。
(4)讓權等待:因為,當進程不能進入自己的臨界區時,應立即釋放處理機,以免進程陷入“忙等”狀態。

3.如何保證諸進程互斥地訪問臨界資源?

4.記錄型信號量的實現

答:記錄型信號量是不存在“忙等”現象的進程同步機制。除了需要一個用于代表資源數目的整型變量value外,再增加一個進程鏈表L,用于鏈接所有等待該資源的進程,記錄型信號量是由于釆用了記錄型的數據結構得名。記錄型信號量可描述為

typedef struct{int value;struct process *L; } semaphore;

相應的wait(S)和signal(S)的操作如下:

void wait (semaphore S) { //相當于申請資源S.value--;if(S.value<0) {add this process to S.L;block(S.L);} }

wait操作,S.value–,表示進程請求一個該類資源,當S.value<0時,表示該類資源已分配完畢,因此進程應調用block原語,進行自我阻塞,放棄處理機,并插入到該類資源的等待隊列S.L中,可見該機制遵循了“讓權等待”的準則。

void signal (semaphore S) { //相當于釋放資源S.value++;if(S.value<=0){remove a process P from S.L;wakeup(P);} }

signal操作,表示進程釋放一個資源,使系統中可供分配的該類資源數增1,故S.value++。若加1后仍是S.value<=0,則表示在S.L中仍有等待該資源的進程被阻塞,故還應調用wakeup 原語,將S.L中的第一個等待進程喚醒。

5.DNA型信號量的實現

總結

以上是生活随笔為你收集整理的操作系统习题三的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。