作業系統 期末複習

2021-09-08 00:02:49 字數 4555 閱讀 4286

* 訊號量機制主要有整形訊號量、記錄性訊號量、訊號量集機制。

* 訊號量是乙個整形變數,根據控制物件的不同賦不同的值。

* 訊號量可分為公用訊號量和私用訊號量兩類。

* 公用訊號量:實現程序間的互斥,初值=1或資源的數目

* 私用訊號量:實現程序間的同步,初值=0或某個整數

* 訊號量s的物理意義:s>=0時表示某資源的可用數,s<0時其絕對值表示阻塞佇列中等待該資源的程序數。p、v操作是實現程序同步與互斥的常用方法。

* p操作表示申請乙個資源, v操作表示釋放乙個資源。

* p操作的定義:s=s-1,若s>=0,則執行p操作的程序繼續執行;若s<0,則置該程序為阻塞狀態,並將其插入阻塞佇列。

* v操作定義:s=s+1,若s>0則執行v操作的程序繼續執行;若s<0,則從阻塞狀態喚醒乙個程序,並將其插入就緒佇列,執行v操作的程序繼續執行。

1. 第一題 對應著訊號量的物理意義,s<0時,其絕對值表示阻塞佇列等待該資源的程序數。

2. 第二題 資源的的當前可用數等於資源當前值,也就是1。或者理解為初值減去已經使用的資源數。

等待該資源的程序數為0,因為當前訊號量的值大於0。

3. 訊號量的初始值設為1。因為互斥使用臨界資源,是指在同一時間只允許乙個程序使用此資源,所以互斥訊號量的初值都為1。

4. 乙個等待程序。訊號量當前值是-1,所以絕對值就是阻塞的等待程序數。

知識點
* 尋道演算法主要有四種:

+ 先到先服務演算法(fcfs)。

+ 最短尋道時間優先演算法(sstf)。

+ 掃瞄演算法(scan)。

+ 迴圈掃瞄演算法(cscan)。

磁碟分:盤面-磁軌-扇區。盤面上有很多磁軌,盤面也分成若干個扇區,整體結構就是這樣的。尋道就是磁頭尋找對應的磁軌。它們都是磁碟使用要排程的。

讀寫一次磁碟資訊所需的時間可分解為:尋道時間、延遲時間、傳輸時間。

(一)先來先服務演算法(fcfs)

1、演算法思想:按訪問請求到達的先後次序服務。

2、優點:簡單,公平。

3、缺點:效率不高,相鄰兩次請求可能會造成最內到最外的柱面尋道,使磁頭反覆移動,增加了服務時間,對機械也不利。

4、例子:

假設磁碟訪問序列:98,183,37,122,14,124,65,67。讀寫頭起始位置:53。求:磁頭服務序列和磁頭移動總距離(道數)。

由題意和先來先服務演算法的思想,得到下圖所示的磁頭移動軌跡。由此:下面補充。

磁頭服務序列為:98,183,37,122,14,124,65,67

磁頭移動總距離=(98-53)+(183-98)+|37-183|+(122-37)+|14-122|+(124-14)+|65-124|+(67-65)=640(磁軌)

(二)最短尋道時間優先演算法(sstf)

1、演算法思想:優先選擇距當前磁頭最近的訪

問請求進行服務,主要考慮尋道優先。

2、優點:改善了磁碟平均服務時間。

3、缺點:造成某些訪問請求長期等待得不到服務。

4、例子:對上例的磁碟訪問序列,可得磁頭

移動的軌跡如下圖

(三) 掃瞄演算法(電梯演算法)(scan)

1、演算法思想:當裝置無訪問請求時,磁頭不動;當有訪問請求時,磁頭按乙個方向移動,在移動過程中對遇到的訪問

請求進行服務,然後判斷該方向上是否還有訪問請求,如果有則繼續掃瞄;否則改變移動方向,並為經過的訪問請求服務,如此反覆。如下圖所示:下面補充。

2、優點:克服了最短尋道優先的缺點,既考慮了距離,同時又考慮了方向。

3、 例子:

4、迴圈掃瞄演算法(cscan)

迴圈掃瞄演算法是對掃瞄演算法的改進。如果對磁軌的訪問請求是均勻分布的,當磁頭到達磁碟的一端,並反向運動時落在磁頭之後的訪問請求相對較少。

這是由於這些磁軌剛被處理,而磁碟另一端的請求密度相當高,且這些訪問請求等待的時間較長,為了解決這種情況,迴圈掃瞄演算法規定磁頭單向移動。

例如,只自里向外移動,當磁頭移到最外的被訪問磁軌時,磁頭立即返回到最裡的欲訪磁軌,即將最小磁軌號緊接著最大磁軌號構成迴圈,進行掃瞄。

先到先服務

最短尋道時間

掃瞄演算法

5. 採用尋道時間最短時間優先演算法。按照磁軌序號的大小排序,然後找到磁頭的位置,然後尋找距離磁頭最近的磁軌,

然後計算他的移動磁軌數,同理計算,最後得到結果就是答案。162道。(理解為磁軌差的絕對值)

知識點
位址對映過程中,若在頁面中發現所要訪問的頁面不在記憶體中,則產生缺頁中斷。

當發生缺頁中斷時,如果作業系統記憶體中沒有空閒頁面,則作業系統必須在記憶體選擇乙個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。

而用來選擇淘汰哪一頁的規則叫做頁面置換演算法。

常用演算法有:

1.最佳置換演算法(opt)(理想置換演算法)。

從主存中移出永遠不再需要的頁面;如無這樣的頁面存在,則選擇最長時間不需要訪問的頁面。

於所選擇的被淘汰頁面將是以後永不使用的,或者是在最長時間內不再被訪問的頁面,這樣可以保證獲得最低的缺頁率。

2.先進先出置換演算法(fifo)。

是最簡單的頁面置換演算法。這種演算法的基本思想是:當需要淘汰乙個頁面時,總是選擇駐留主存時間

最長的頁面進行淘汰,即先進入主存的頁面先淘汰。其理由是:最早調入主存的頁面不再被使用的可能性最大。

3.最近最久未使用(lru)演算法。

這種演算法的基本思想是:利用區域性性原理,根據乙個作業在執行過程中過去的頁面訪問歷史來推測未來的行為。

它認為過去一段時間裡不曾被訪問過的頁面,在最近的將來可能也不會再被訪問。所以,這種演算法的實質是:當需要淘汰乙個頁面時,

總是選擇在最近一段時間內最久不用的頁面予以淘汰。

4. 時鐘(clock)置換演算法。

lru演算法的效能接近於opt,但是實現起來比較困難,且開銷大;fifo演算法實現簡單,但效能差。

所以作業系統的設計者嘗試了很多演算法,試圖用比較小的開銷接近lru的效能,這類演算法都是clock演算法的變體。

缺頁率 = (頁面置換次數+分配給該程序的物理塊數)/要訪問的頁面總數

第六題思路:

首先,排出每次頁面置換的情況。

注意:物理塊沒有用滿的情況下也是屬於頁面缺頁。

然後計算頁面被置換出來的次數。要求使用fifo演算法,即是先進的先淘汰。得出淘汰率是75%和83%。

同理得第七題答案是10次中斷

#### 解答第**題

第八題: 系統同時存在n個程序,處於等待的程序最多可有n個。原理:所有的程序都可以等待乙個外部裝置。(如鍵盤輸入)

第九題:

當乙個擁有n個程序的系統出現死鎖時,死鎖程序個數k可滿足的條件是1pi

(i =1,

2...)

其中訊號量的變化範圍為

最大值: 10

最小值: n-10

原理範圍表示了程序可以進行的最大併發量和最大阻塞程序數,所以最小值是等待程序數的負數。

思路:本題與上題不同,本題的程序操作不一致,但是都是使用乙個資源(盤子),所以需要定義三種訊號量,乙個訊號量表示是否進行放水果操作,乙個表示是否可取桔子,乙個表示是否可取蘋果。

初值s(放水果) = 1, s1(取桔子) = 0, s2(取蘋果) = 0;

int s =

1, s1 =

0, s2 =0;

main

(void

)father()

else}}

daughter()

}son()

}

最短程序優先演算法 :優先處理處理時間最短的程序。

例子排程順序是:1>4>3>2;

作業號到達時間

結束時間

周轉時間

帶權周轉時間

110.00

12.0021

410.50

12.30

1.86

310.40

12.80

2.40

4.82

10.20

13.80

3.60

3.6死鎖的四個必要條件

互斥條件:乙個資源每次只能被乙個程序使用。

請求和保持條件:乙個程序因請求資源而阻塞時,對已獲得的資源保持不放。

不剝奪條件:程序已獲得的資源,在未使用完之前,不能強行剝奪。

迴圈等待條件:若干程序之間形成一種頭尾相接的迴圈等待資源關係。

避免死鎖的常用演算法:

習題原題鏈結》

作業系統期末複習

1 作業系統是一種 系統軟體 是 使用者和計算機 的介面。2 程序的同步是指併發程序之間存在一種制約關係,乙個程序的執行依賴另乙個程序,的訊息,當乙個程序沒有得到另乙個程序的訊息時應等待,直到訊息到達才被喚醒。所以兩個程序合作完成乙個任務,在併發執行中,乙個程序要等待其合作夥伴發來資訊,或者建立某個...

作業系統期末複習總結(3)

3 產生死鎖的原因 掌握 1 競爭資源 多個程序共享資源,資源數目不足所引起程序對資源的競爭 a 可剝奪資源和非剝奪性資源 b 競爭非剝奪性資源 c 競爭臨時性資源 2 程序推進順序非法 請求和釋放資源順序不當。a 程序推進順序合法 b 程序推進順序非法 4.1產生死鎖的必要條件 精通 1 互斥條件...

作業系統期末複習之 常用排程演算法整理

按照課本的順序 一 作業管理 常見的批處理作業排程演算法 1.先來先服務排程演算法 fcfs 就是按照各個作業進入系統的自然次序來排程作業。這種排程演算法的優點是實現簡單,公平。其缺點是沒有考慮到系統中各種資源的綜合使用情況,往往使短作業的使用者不滿意,因為短作業等待處理的時間可能比實際執行時間長得...