復習筆記——操作系統
2014年12月考研前一周寫的筆記。。。
放在這裏,希望對其它人有幫助。
。。
===========================================================
本來想和linux源碼一起參照一下,結果如今拖到這個時候,沒時間了,囧
內容主要參考:
http://oa.gdut.edu.cn/os/multimedia/oscai/main.htm
http://www.educity.cn/zk/czxt/201305301133411490.htm
http://see.xidian.edu.cn/cpp/html/2628.html(這個就是和王道差點兒是同樣的,不知道是誰超誰)
===========================================================
1.準備
2.進程管理
2.1.進程調度
2.1.1調度的層次
高級、中級和低級調度作業從提交開始直到完畢,往往要經歷下述三級調度:
高級調度:(High-Level Scheduling)又稱為作業調度,它決定把後備作業調入內存執行;
低級調度:(Low-Level Scheduling)又稱為進程調度,它決定把就緒隊列的某進程獲得CPU;
中級調度:(Intermediate-Level Scheduling)又稱為在虛擬存儲器中引入,在內、外存對換區進行進程對換。
2.1.2剝奪非剝奪
(1)非剝奪方式
分派程序一旦把處理機分配給某進程後便讓它一直執行下去,直到進程完畢或發生進程調度
某事件而堵塞時,才把處理機分配給還有一個進程。
(2)剝奪方式
當一個進程正在執行時,系統能夠基於某種原則,剝奪已分配給它的處理機。將之分配給其他進程。剝奪原則有:優先權原則、短進程優先原則、時間片原則。
比如。有三個進程P1、P2、P3先後到達,它們分別須要20、4和2個單位時間執行完成。
假如它們就按P1、P2、P3的順序運行,且不可剝奪,則三進程各自的周轉時間分別為20、24、
26個單位時間,平均周轉時間是23.33個時間單位。
假如用時間片原則的剝奪調度方式。可得到:
可見:P1、P2、P3的周轉時間分別為26、10、6個單位時間(如果時間片為2個單位時間)。平均周轉時間為14個單位時間。
衡量進程調度性能的指標有:周轉時間、響應時間、CPU-I/O運行期。
2.2.進程同步
2.3.死鎖
3.內存管理
3.1.內存分配
3.2.虛擬內存
4.文件管理
4.1.文件系統
4.2.磁盤
5.IO管理
5.1
附:
1.進程同步。PV操作樣例
設某臺機掛有兩個I/0通道:分別掛一臺輸入機和一臺打印機。
卡片機上有一疊數據卡片。如今
要把這些數據逐一輸入到緩沖區B1,然後再拷貝到緩沖區B2,並在打印機上打印出來。問:系統可設哪些進程來完畢這個任務?
用RECEIVE(R)代替P(S2),用SEND(R)代替V(S1)。
用RECEIVE(P)代替P(S3)。用SEND(P)代替V(S4)。
問:畫出各進程的狀態轉換圖。
2.死鎖,樣例
首先,介紹一個因為共享資源而產生死鎖的樣例:設系統有一臺打印機(R1),一臺讀卡機(R2),兩進程共享這兩臺設備。用信號量S1表示R1是否可用,初值為1。用信號量S2表示R2是否可用,初值為1;
3.段頁
4.Clock置換算法
4.1. 簡單的Clock置換算法
4.2. 改進型Clock置換算法
由訪問位A和改動位M能夠組合成以下四種類型的頁面:
1類(A=0, M=0): 表示該頁近期既未被訪問。又未被改動。是最佳淘汰頁。
2類(A=0, M=1):表示該頁近期未被訪問。但已被改動,並非非常好的淘汰頁。
3類(A=1, M=0):近期已被訪問。但未被改動,該頁有可能再被訪問。
4類(A=1, M=1): 近期已被訪問且被改動,該頁可能再被訪問。其運行過程可分成下面三步:
(1) 從指針所指示的當前位置開始,掃描循環隊列。尋找A=0且M=0的第一類頁面, 將所遇到的第一個頁面作為所選中的淘汰頁。
在第一次掃描期間不改變訪問位A。
(2) 假設第一步失敗,即查找一周後未遇到第一類頁面,則開始第二輪掃描。尋找A=0且M=1的第二類頁面,將所遇到的第一個這類頁面作為淘汰頁。在第二輪掃描期間,將全部掃描過的頁面的訪問位都置0。
(3) 假設第二步也失敗,亦即未找到第二類頁面,則將指針返回到開始的位置,並將全部的訪問位復0。
然後反復第一步,假設仍失敗。必要時再反復第二步,此時就一定能找到被淘汰的頁。
5.磁盤分配的成組鏈接法【1】
題目如圖片:
問題是:
(1)該磁盤中眼下還有多少個空暇盤塊?【答】:我知道是2+100+100+99=301個吧
(2)在給文件F分配三個盤塊後,試給出分配後的盤塊鏈接情況【答】是先299號 再300號 再301號吧?
(3)接著,系統要刪除還有一個文件,並回收它所占的5個盤塊。它們的盤塊號依次為700,711,703,788,701。試給出回收後的盤塊鏈接情況
【就第三個不太理解。是先底部700,然後往上1 0處711 703嗎?還是怎麽分,求解釋?】第一組中的塊都分配完後,把下一組中的塊都放到超級塊中,這樣就少了一個組,然後再進行分配。
回收是先把塊放到第一組中,假設滿了就把這個組變為第二組。
s.free 4
711
703
788
701 。
。
700
每組就相當於個堆棧。
參考資料:
【1】http://zhidao.baidu.com/link?url=cbFVuBEaHbL7NtGAiXqEMwx6LiCq-SpaClCoTt3_H68OwwFpcThFS8bL6SHQE7F5ALVEfFQsILwjXzwc-8aBanD6FyHpV-KyERCloGXEvLa
復習筆記——操作系統