计算机操作系统|汤小丹|第四版|习题答案(三)
1.高級調度與低級調度的主要任務是什么?為什么要引入中級調度?
高級調度(長程調度、作業調度)主要任務是根據某種算法,決定將外存上處于后備隊列中的哪幾個作業調入內存,為它們創建進程、分配必要的資源,并將它們放入就緒隊列。
低級調度(短程調度、進程調度)主要任務是根據某種算法,決定就緒隊列中的哪個進程應獲得處理機,并由分派程序將處理及分配給被選中的進程。
引入中級調度(內存調度)的目的是,提高內存利用率和系統吞吐量。使那些暫時不能運行的進程不再占用內存資源,將它們調至外存等待,把進程狀態改為就緒駐外存狀態或掛起狀態。
2.處理機調度算法的共同目標是什么?批處理系統的調度目標又是什么?
處理機調度算法的共同目標:資源利用率、公平性、平衡性、策略強制執行
批處理系統的調度目標:平均周轉時間短、系統吞吐量高、處理機利用率高
3.何謂作業、作業步和作業流?
作業包含了通常的程序和數據,還配有一份作業說明書,系統根據該說明書來對程序的運行進行控制。
作業運行期間,每個作業都必須經過若干個相對獨立,又相互關聯的順序加工步驟才能得到結果。我們把其中的每一個加工步驟稱為一個作業步。
在操作系統的控制下,逐個作業進程處理,于是形成了處理作業流。
4.在什么情況下需要使用作業控制塊PCB,其中包含了哪些內容?
每當作業進入系統時,系統便為每個作業建立一個作業控制塊JCB,根據作業類型將它插入到相應的后備隊列中。JCB 包含的內容通常有:
4)作業類型(CPU繁忙型、I/O 芳名型、批量型、終端型)5)作業狀態
6)調度信息(優先級、作業已運行) 7)資源要求 8)進入系統時間 9) 開始處理時間 10) 作業完成時間 11) 作業退出時間 12) 資源使用情況等
5.在作業調度中應如何確定接納多少個作業和接納哪些作業?
作業調度每次接納進入內存的作業數,取決于多道程序度。應將哪些作業從外存調入內存,取決于采用的調度算法。最簡單的是先來服務調度算法,較常用的是短作業優先調度算法和基于作業優先級的調度算法。
6.為什么要引入高響應比優先調度算法?它有何優點?
在批處理系統中,先來先服務算法(FCFS)所考慮的只是作業的等待時間,而忽視了作業運行時間。而短作業優先算法(SJF)正好與之相反,只考慮作業運行時間,而忽視了作業等待時間。高響應比優先調度算法則是既考慮了作業等待時間,又考慮作業運行時間的調度算法,因此既照顧了短作業,又不致使長作業的等待時間過長,從而改善了處理機調度的性能。
7.試說明低級調度的主要功能。
保存處理機的現場信息、按某種算法選取進程、把處理器分配給進程
8.在搶占調度方式中,搶占的原則是什么?
優先權原則、短進程優先原則、時間片原則
9.在選擇調度方式和調度算法時,應遵循的準則是什么?
(1)面向用戶的準則:周轉時間短,響應時間快,截止時間的保證,優先權準則。
(2)面向系統的準則:系統吞吐量高,處理機利用率好,各類資源的平衡利用。
10.在批處理系統、分時系統和實時系統中,各采用哪幾種進程(作業)調度算法?
批處理系統常用調度算法:
①、先來先服務:FCFS
②、最短作業優先
③、最短剩余時間優先
④、響應比最高者優先
分時系統調度算法:
①、輪轉調度
②、優先級調度
③、多級隊列調度
④、彩票調度
實時系統調度算法:
①、單比率調度
②、限期調度
③、最少裕度法
11.何謂靜態和動態優先級?確定靜態優先級的依據是社么?
靜態優先級是在創建進程時確定的,在進程的整個運行期間保持不變。確定進程優先級大小的依據有三個:
進程類型、進程對資源的需求、用戶要求。
動態優先級是指在創建進程之初,先賦予其一個優先級,然后其值隨進程的推進或等待時間的增加而改變,以便獲得更好的調度性能。
12.試比較FCFS和SJF兩種進程調度算法。
相同:兩種調度算法都可用于作業調度與進程調度。
不同點:FCFS調度算法每次都從后備隊列中選擇一個或多個最先進入該隊列的作業,將它們調入內存、分配資源、創建進程、插入到就緒隊列。該算法有利于長作業進程,不利于短作業進程。
SJF算法每次調度都從后備隊列中選擇一個或若干個運行時間最短的作業,調入內存中運行。該算法有利于長作業進程,不利于短作業進程。
13.在時間片輪轉法中,應如何確定時間片大小?
略大于一次典型的交互所需要的時間。
14.通過一個例子來說明通常的優先級調度算法為什么不能適用于實時系統?
P102
15.為什么說多級反饋隊列調度算法能較好地滿足各方面用戶的需要?
(1)終端型用戶。由于終端型用戶提交的作業多屬于交互性作業,通常較小,系統只要能使這些作業在第一隊列規定的時間片內完成,便可使終端型用戶感到滿意。
(2)短批處理作業用戶。對于這類作業,如果可在第一隊列中執行完成,便可獲得與終端型作業一樣的響應時間。對于稍長的短作業,也只需在第二和第三隊列各執行一時間片完成,其周轉時間仍然較短。
(3)長批處理作業用戶。對于長作業,它將依次在第1,2,…,n個隊列中運行,然后再按輪轉方式運行,用戶不必擔心其作業長期得不到處理。
16.為什么說傳統的幾種調度算法都不能算是公平調度算法?
以上介紹的幾種調度算法所保證的只是優先運行,如優先級算法是優先級最高的作業優先運行,但并不保證作業占用了多少處理機時間。另外也未考慮到調度的公平性。
17.保證調度算法是如何做到調度的公平性的?
保證調度算法是另外一種類型的調度算法,它向用戶所做出的保證并不是優先運行,而是明確的性能保證,該算法可以做到調度的公平性。一種比較容易實現的性能保證是處理機分配的公平性。如果在系統中有n個相同類型的進程同時運行,為公平起見,須保證每個進程都獲得相同的處理機時間1/n。
18.公平分享調度算法又是如何做到調度的公平性的?
在公平分享調度算法中,調度的公平性主要是針對用戶而言,使所有用戶能獲得相同的處理機時間,或所要求的時間比例。
19.為什么在實時系統中,要求系統(尤其是CPU)具有較強的處理能力?
在實時系統中通常有多個實時任務,若處理機的處理能力不強,則有可能因處理機忙不過來,而致使某些實時任務不能得到及時處理,從而導致發生難以預料的后果。
20.按調度方式可將實時調度算法分為哪幾種?
非搶占式和搶占式。非搶占式又分為非搶占式輪轉調度算法和非搶占式優先調度算法,搶占式又分為基于時鐘中斷的搶占式優先級調度算法和立即搶占的優先級調度算法。
21.什么是最早截止時間優先調度算法?舉例說明之。
根據任務的開始截止時間確定的任務優先級調度算法。截止時間越早則優先級越高。該算法要求在系統中保持一個實時任務就緒隊列,該隊列按各任務截止時間的先后排序。
22.什么是最低松弛度優先調度算法?舉例說明之。
該算法是根據任務的緊急(或松弛)程度,來確定任務的優先級。任務的緊急程度越高,為該任務所賦予的優先級就越高,以使之優先執行。
例如,一個任務在200ms時必須完成,而它本身所需的運行時間就有100ms,因此,調度程序必須在100ms之前調度執行,該任務的緊急程度(松弛程度)為100ms。
又如,另一任務在400ms時必須完成,它本身需要運行150ms,則其松弛程度為250ms。
23.何謂“優先級倒置”現象,可采取什么方法來解決?
優先級倒置現象:高優先級進程(或線程)被低優先級進程(或線程)延遲或阻塞。
解決的方法:
(1)當進程進入臨界區后,CPU就不能被剝奪;
(2)優先級繼承:當優先級高的進程A被阻塞在資源X的臨界區外時,已分配到資源X、優先級低的進程B自動繼承A的高優先級,能盡早運行完畢,盡早釋放資源X,使得A盡快有機會運行。
24.試分別說明競爭可重用資源和可消耗資源的性質。
可重用資源:
(1)每一個可重用性資源中的單元只能分配給一個進程使用,不允許多個進程共享。
(2)進程在使用可重用性資源時,須按照這樣的順序:①請求資源。如果請求資源失敗,請求進程將會被阻塞或循環等待。②使用資源。進程對資源進行操作,如用打印機進行打印。③釋放資源。當進程使用完后自己釋放資源。
(3)系統中每一類可重用性資源中的單元數目是相對固定的,進程在運行期間即不能創建也不能刪除它。
可消耗性資源:
(1)每一類可消耗性資源的單元數目在進程運行期間是可以不斷變化的,有時它可以有許多,有時可能為0。
(2)進程在運行過程中,可以不斷地創造可消耗性資源的單元,將它們放入該資源類的緩沖區中,以增加該資源類的單元數目。
(3)進程在運行過程中,可以請求若干個可消耗性資源單元,用于進程自己的消耗,不再將它們返回給該資源類中。
25.試舉例說明競爭不可搶占資源所引起的死鎖。
P105
26.為了破壞“請求和保持”條件而提出了兩種協議,試比較這兩種協議。
第一種協議在所有進程開始運行之前,必須一次性地申請其在整個運行過程中所需的全部資源,并且在分配資源時,只要有一種資源不能滿足進程的要求,即使其他所需的各種資源都空閑也不分配給該進程,而讓該進程等待。因此有資源被嚴重浪費、進程經常會發生饑餓現象等缺點。
第二種協議是對第一種協議的改進,它允許一個進程只獲得運行初期所需的資源后,便開始運行。進程運行過程中再逐步釋放已分配給自己的,且已用畢的全部資源,然后再請求新的所需資源。
27.何謂死鎖?產生死鎖的原因和必要條件是什么?
死鎖是指多個進程在運行過程中因爭奪資源而造成的一種僵局,當進程處于這種僵持狀態時,若無外力作用,它們都將無法再向前推進。
產生死鎖的原因:競爭資源和進程推進順序非法。其必要條件是:互斥條件、請求和保持條件、不剝奪條件、環路等待條件。
在解決死鎖問題的幾個方法中,哪種方法最易于實現?哪種方法使資源利用率最高?
預防、避免、檢測和解除死鎖中,預防死鎖最容易實現;避免死鎖使資源利用率最高。
28.請詳細說明可通過哪些途徑預防死鎖。
(1)摒棄請求和保持條件,就是如果系統有足夠資源,便一次性把進程需要的所有資源分配給它;
(2)摒棄不剝奪條件,就是已經擁有資源的進程當它提出新資源請求而不能立即滿足時,必須釋放它已保持的所有資源,待以后需要時再重新申請;
(3)摒棄環路等待條件,就是將所有資源按類型排序標號,所有進程對資源的請求必須嚴格按序號遞增的次序提出。
29.在銀行家算法的例子中,如果P0發出的請求向量由Request(0,2,0)改為Request(0,1,0),問系統可否將資源分配給它?
本來編輯好表格了,結果被第四章覆蓋了,辛辛苦苦。有心情了再弄吧
30.在銀行家算法中,若出現下述資源分配情況,試問:
(1)該狀態是否安全?
(2)若進程P2提出請求Request(1,2,2,2)后,系統能否將資源分配給它?
總結
以上是生活随笔為你收集整理的计算机操作系统|汤小丹|第四版|习题答案(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 善用宝贝标题关键字 提高站内搜索流量
- 下一篇: 独立性检验