挑戰408——操作系統(16)——進程管理刷題(2)

本節刷題內容:進程管理
題庫來源:408真題,王道教材,百度文庫
涉及的知識點:

進程與線程
進程狀態轉換
進程控制
進程通信
進程調度

補充知識點

抽屜原理
桌上有十個蘋果,要把這十個蘋果放到九個抽屜裏,無論怎樣放,我們會發現至少會有一個抽屜裏面至少放兩個蘋果。
抽屜原理的一般含義爲:“如果每個抽屜代表一個集合,每一個蘋果就可以代表一個元素,假如有n+1個元素放到n個集合中去,其中必定有一個集合裏至少有兩個元素。” 抽屜原理有時也被稱爲鴿巢原理,這個原理在解決死鎖的資源分配問題上有很大的幫助。

分析與計算類

第一題
在這裏插入圖片描述
分析:週轉時間 = 程序運行時間 + 等待時間,因此選B
在這裏插入圖片描述
第二題
在這裏插入圖片描述
分析:我們知道,短作業優先,可以降低平均週轉時間,而且可以CPU的利用率。於是:
在這裏插入圖片描述
其中計算繁忙和I/O繁忙已經介紹過了。
第三題
在這裏插入圖片描述
分析:這道題目涉及的進程比較多,要是一個一個去分析,會暈頭轉向,首尾難顧的。對於這種4個以上的進程求平均週轉時間的,我們通常採用甘特圖。先看第一種情況,非搶佔式,也就是P1在運行的時候,無論後面的進程運行時間多短,都不會搶奪CPU。直至P1運行完畢或者P1出現異常退出。按照短作業優先,在7時刻,P1進程還沒有運行完畢,但是所有進程已經到達,於是執行順序爲:P1 -> P3 -> P5 -> P2 -> P4於是畫出它們的運行時間圖如下:
在這裏插入圖片描述
對於P1.沒有等待時間,所以就是9. 對於P3,程序P1運行的時候它在等待,加上自己的運行時間,所以是9+1 = 10.但是注意了,這裏的10是相當於P1執行完之後,P2緊隨其後到達,,但是由題目可以知道,P2是提前到達的,所以很顯然要減去它到達的時間。以下的其他進程同樣分析。
對於搶佔式,原理是這樣的:先到的是P1,那麼在0.4時刻,運行時間爲4的進程P2趕到,剝奪了CPU,那麼下次再輪到P1進程運行的時候,P1的時間變爲了9 - 0.4(因爲在此之前已經運行了0.4)。以此類推
在這裏插入圖片描述
因爲P3,P5都是在其他程序到來的等待時間內完成的,所以它們其實並沒有等待。
第四題
在這裏插入圖片描述
分析:這道題特別容易錯選B,正常思維,FCFS,顯然0時刻的進程一直得不到執行,排隊最久,說明來的早,於是先執行J1,沒問題。J4運行時間爲1,是四者中最短的,應該是J4。所以誤選B。看清楚,題目給的是在T = 2的時刻,這個時候J4還沒到,如何調度??,顯然應該是J3。正確答案應該是D.
第五題
在這裏插入圖片描述
分析:這是一類題考的是程序的併發執行過程。這類題用甘特圖解決。第一題:
在這裏插入圖片描述
第二題略有不同,注意題目說了,輸入輸出是兩臺不同的設備,因此,I/O操作是不一樣的,就是說輸入是一個操作,輸出是一個操作,在不同機器上工作。所以:
在這裏插入圖片描述
第六題
在這裏插入圖片描述
分析:這道題考的是對信號量的理解。我們之前講過PV操作的原理:P操作意味着釋放一個資源,V操作意味着釋放一個資源。當s.value <= 0時,其|s.value <= 0|的值代表的是等待隊列中等待該資源的進程數。如s.value = -8,那麼表示等待隊列中有8個進程正在等待這個臨界資源,s.value = 0,則表示資源剛好使用完畢。所以當可用資源數爲正值得時候。說明該資源可以繼續分配給進程,此時沒有進程等待該資源的釋放(因爲本身就有多)。故此時N = 0.M = 1.顯然選B
第七題
在這裏插入圖片描述
分析:先讀題,每次只能允許3個進程進入程序段,說明該資源信號量最多可以P操作3次,第四次會因爲資源數不足而被掛起,所以信號量的最大值是3.當第四次申請的時候,信號量變成0 - 1 -= -1,所以信號量最小值爲-1.所以選C。(當然也可以這樣算,最大資源數爲3,四個進程依次申請,所需要的資源數爲 3 - 4 = -1)。
第八題
在這裏插入圖片描述
在這裏插入圖片描述
分析:這也是一類題。資源分配且不出現死鎖。這類題常常使用鴿巢原理解決。先看上面的比較簡單的。如果題意不好理解,我們換種說法:系統可能發生死鎖的K的最小值 > 系統一定不發生死鎖的最大值。這樣就好理解了。我們知道,程序都是併發執行的,有某個程序執行完畢後,就會釋放掉其資源。所以只要其中一個程序能順利執行且釋放的資源可以滿足後續的程序使用,就一定不會死鎖。所以我們假設一種極端的情況:K個進程,每個進程有2臺打印機了,此時只要一個進程再得到一臺打印機,那麼所有的進程都將可以順利執行。(是不是很像哲學家拿筷子的操作?)。
所以滿足 2K + 1 < = 8 的時候就一定不會發生死鎖,反之,滿足 2K + 1 > 8 的時候就可能發生死鎖,所以其最小值爲4。選C
而接下來的題目其實就一樣的,只不過可能會問,按照上面的說法,各分配 2, 2,2,此時給第一個進程分配1個設備,其餘的也可以順利進行啊。這個邏輯看起來沒有問題,但是注意,題目問的是確保,而這種方法存在一定的風險性,就是程序必須先執行的是第一個進程,而程序是併發的,推進速度誰也不確定,此刻,當第一個運行的進程是後面的任意一個,都會死鎖。所以當每個進程都各缺一個設備的時候,是臨界條件,即按 2,3,4分配。這個時候人員一個進程得到一個設備都可以繼續運行。所以n的值至少爲 2 + 3 + 4 + 1 = 10.
第九題
在這裏插入圖片描述
分析:做銀行家算法的題目,有三個關鍵信息一定要求出來:已分配資源數,最大需求量,剩餘資源數。這道題目是直接給了,所以用最大資源分配法(即將所有的可用資源都加上去的方法)對選項逐一驗證:
在這裏插入圖片描述
仿照上面的做法做下面的題目,原理一樣:
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章