現代作業系統筆記

來源:互聯網
上載者:User

現代作業系統筆記

總結《現代作業系統》的一些概念知識。

1.進程上下文環境:

對進程執行活動全過程的靜態描述

由進程的使用者地址空間內容、硬體寄存器內容及與該進程相關的核心資料結構組成

使用者級上下文:進程的使用者地址空間(包括使用者棧各層次),包括使用者本文段、使用者資料區段和使用者棧 寄存器級上下文:程式計數器、程式狀態寄存器、棧指標、通用寄存器的值 系統級上下文: 靜態部分(PCB和資源表格) 動態部分:核心棧(核心過程的棧結構,不同進程在調用相同核心過程時有不同核心棧)

2.構造伺服器的三種方法:

進程中的線程是相互協作的,而不是相互對立的。如果放棄是為了應用程式,那麼線程將 放棄 CPU。畢竟,通常是同一個程式員寫的代碼。

多線程: 並行性、阻塞系統調用

單線程進程: 無並行性、阻塞系統調用

有限狀態機器: 並行性、非阻塞系統調用、中斷

3. 臨界區(互斥區)的使用原則

任何兩個進程不能同時處於其臨界區中

不應對CPU的速度和數量做任何假設

臨界區外啟動並執行進程不得阻塞其他進程

不得使進程無限期等待進入臨界區

4.忙等待: 進程在得到臨界區訪問權之前,持續測試而不做其他事情

5. 原語: 完成某種特定功能的一段程式,具有不可分割性或不可中斷性 即原語的執行必須是連續的,在執行過程中不允許被中斷,可以通過屏蔽中斷、測試與設臵指令等來實現

6.管程: 是一個特殊的模組,有一個名字,由關於共用資源的資料結構及在其上操作的一組過程組成

7. 多級反饋隊列調度演算法:

設定多個就緒隊列.給每個就緒隊列中的進程分配不同的時間片,優先順序高的為第一級隊列,時間片最小;隨著隊列優先順序別的降低,時間片增大

當第一級隊列為空白時,在第二級隊列調度,以此類推;各隊列按照FIFO+時間片調度演算法進行調度,最後一級按照RR當一個新進程就緒後,進入第一級隊列進程由於阻塞而放棄CPU時,進入相應等待隊列;一旦等待的事件發生,則回到原來的就緒隊列時間片到,進程放棄CPU,進入下一級隊列當有一個優先順序更高的進程就緒時,可以搶佔CPU,被搶佔進程回到原來一級就緒隊列末尾

8. Windows 線程調度:調度單位是線程,採用基於動態優先順序的、搶佔式調度,結合時間配額調整,Windows 在單處理機系統和多處理機系統中的線程調度是不同的

就緒線程按優先順序進入相應隊列,系統總是選擇優先順序最高的就緒線程讓其運行,同一優先順序的各線程按時間片輪轉進行調度,多處理機系統中允許多個線程並行運行.調度策略: 主動切換. 搶佔: 使用者態下啟動並執行線程可以搶佔核心態下啟動並執行線程. 當線程被搶佔時,它被放回相應優先順序的就緒隊列的隊首. 時間配額用完:

9. 產生死結的條件:1>互斥使用(資源獨佔):一個資源每次只能給一個進程使用2>佔有且等待(部分分配)一個進程在申請新的資源的同時保持對原有資源的佔有3>不可搶佔(不可剝奪)資源申請者不能強行的從資源佔有者手中奪取資源,資源只能由佔有者自願釋放.4>迴圈等待:存在一個進程等待隊列

10.防止死結發生可採取的措施:

最多允許4個哲學家同時坐在桌子周圍

僅當一個哲學家左右兩邊的筷子都可用時,才允許他拿筷子

給所有哲學家編號,奇數號的哲學家必須首先拿左邊的筷子,偶數號的哲學家則反之

11. 特權指令和非特權指令:

特權指令:只能由作業系統使用的指令.為什麼引入:保護,即使用多道程式設計技術的電腦指令系統必須要區分為特權指令和非特權指令。特權指令一般引起處理器狀態的切換。處理器通過特殊的機制將處理器狀態切換到作業系統啟動並執行特權狀態(管態),然後將處理權移交給作業系統中的一段特殊代碼,這一個過程稱為陷入..

管態:作業系統管理程式啟動並執行狀態,較高的特權層級,又稱為特權態(特態)、核心態、系統態 目態:使用者程式運行時的狀態,較低的特權層級,又稱為普通態(普態)、使用者態.

目態→管態:唯一途徑 → 中斷或異常(陷入);管態→目態:設定PSW(修改程式狀態字)

12. 中斷與異常: 可以認為作業系統是由“中斷(異常)驅動的”或者 “事件驅動的”.

中斷(異常)的定義:CPU對系統中發生的某個事件作出的一種反應;CPU暫停正在執行的程式,保留現場後自動轉去執行相應事件的處理常式,處理完成後返回斷點,繼續執行被打斷的程式. 中斷(外中斷):與正執行指令無關,可以屏蔽。異常(內中斷):與正執行指令有關,不可屏蔽。

13. 系統調用:使用者在程式中叫用作業系統提供的一些子功能. 一種特殊的程序呼叫,由特殊的機器指令實現。系統調用是作業系統提供給編程人員的唯一介面,系統狀態從目態轉入管態。利用系統調用,動態請求和釋放系統資源完成與硬體相關的工作以及控製程序的執行.

14. 檔案:一種抽象機制,一組帶標識的、在邏輯上有完整意義的資訊項的序列

檔案系統:作業系統中統一管理資訊資源的一種軟體,管理檔案的儲存、檢索、更新,提供安全可靠的共用和保護手段,並且方便使用者使用.

檔案的邏輯結構:1>流式檔案:構成檔案的基本單位是字元,檔案是有邏輯意義的、無結構的一串字元的集合 好處:提供很大的靈活性 2>記錄檔案:檔案由若干個記錄組成,可以按記錄進行讀、寫、尋找等操作.

15. 檔案控制區:檔案控制區是作業系統為管理檔案而設臵的資料結構,存放了為管理文

件所需的所有有關資訊(檔案屬性或中繼資料)檔案目錄:把所有檔案的FCB組織在一起,構成檔案目錄(即檔案控制區的有序集合)簇:一個或多個(2的冪)連續的扇區,可定址資料區塊

檔案卷:磁碟上的邏輯分區,由一個或多個簇組成。在同一個檔案卷中使用同一份管理資料進行檔案分配和磁碟空閑空間管理,而在不同的檔案卷中使用相互獨立的管理資料

16. 開啟檔案:給出檔案路徑,獲得檔案控制代碼(file handle)或檔案描述符(file descriptor),需將該檔案的目錄項讀到記憶體① 根據檔案路徑名查目錄,找到FCB次部 (或I節點號)② 根據檔案號查系統開啟檔案表,看檔案是否已被開啟;③ 根據開啟檔案、共用說明和使用者身份檢查訪問合法性;④ 在使用者開啟檔案表中取一空表項,填寫開啟檔案等,並指向系統開啟檔案表對應表項

17. 檔案系統的一致性:問題的產生:磁碟塊 → 記憶體 → 寫回磁碟塊若在寫回之前,系統崩潰,則檔案系統出現不一致.解決方案:設計一個公用程式,當系統再次啟動時,運行該程式,檢查磁碟塊(√)和目錄系統

18. 檔案系統寫入方式:

(1)通寫(write-through):記憶體中的修改立即寫到磁碟.缺點:速度效能差.例.FAT檔案系統(2)延遲寫(lazy-write):利用回寫(write back)緩衝的方法得到高速.可恢複性差(3)可恢複(transaction log):採用交易記錄來實現檔案系統的寫入.既考慮安全性,又考慮速度效能例:NTFS

19. 檔案系統的效能:目錄項分解、目前的目錄、記憶體對應檔1)塊快取:系統在記憶體中儲存一些塊(塊快取),邏輯上它們屬於磁碟.2)提前讀取.每次訪問磁碟,多讀入一些磁碟塊.依據:程式執行的空間局部性原理開銷較小,具有針對性.3)合理分配磁碟空間:分配塊時,把有可能順序存取的塊放在一起,盡量分配在同一柱面上,從而減少磁碟臂的移動次數.4)資訊的最佳化分布:記錄在磁軌上的相片順序也會影響輸入輸出操作的時間.5)記錄的成組與分解:把若干個邏輯記錄合成一組存放一塊的工作.6)記憶體對應檔7)RAID技術:獨立磁碟容錯陣列,使用多個並行組件來獲得額外的效能提高:1、通過把多個磁碟組織在一起,作為一個邏輯卷提供磁碟跨越功能2、通過把資料分成多個資料區塊,並行寫入/讀出多個磁碟,以提高資料轉送率(資料分條stripe)3、通過鏡像或校正操作,提供容錯能力(冗餘)8)磁碟調度

20. 磁碟調度:

1)先來先服務:按訪問請求到達的先後次序服務 優點:簡單,公平; 缺點:效率不高,相臨兩次請求可能會造成最內到最外的柱面尋道,使磁頭反覆移動,增加了服務時間,對機械也不利

2)最短尋道時間優先:優先選擇距當前磁頭最近的訪問請求進行服務,主要考慮尋道優先.優點:改善了磁碟平均服務時間;缺點:造成某些訪問請求長期等待得不到服務

3)SCAN(電梯演算法)4)C-SCAN:總是沿一個方向掃描,當訪問到最後一個磁軌時,磁頭臂返回到磁碟相反方向磁軌的末端,再次開始掃描.減少了新請求的最大延遲

5)FSCAN策略,使用兩個子隊列.克服“磁頭臂的粘性”.

6)旋轉調度演算法:根據延遲時間來決定執行次序的調度

21. 地址保護:確保每個進程有獨立的地址空間,確定進程可訪問的合法地址的範圍,確保進程只訪問其合法地址. 地址重定位:為了保證CPU執行指令時可正確訪問記憶體單元,需要將使用者程式中的邏輯地址轉換為運行時可由機器直接定址的物理地址,這一過程稱為地址重定位

22. 記憶體管理基本方案:

1)可變分區:根據進程的需求,把可分配的記憶體空間分割出一個分區,分配給該進程

2)頁式:把使用者程式地址空間劃分成大小相等的部分,稱為頁。記憶體空間按頁的大小劃分為大小相等的地區,稱為記憶體塊(物理頁面,頁框,頁幀)。以頁為單位進行分配,邏輯上相鄰的頁,物理上不一定相鄰3)段式:使用者程式地址空間按進程自身的邏輯關係劃分為若干段,記憶體空間被動態劃分為若干個長度不相同的地區(可變分區)。以段為單位分配記憶體,每一段在記憶體中佔據連續空間,各段之間可以不連續存放 4)段頁式:使用者程式地址空間:段式;記憶體空間:頁式;分配單位:頁

23交換技術:記憶體空間緊張時,系統將記憶體中某些進程暫時移到外存,把外存中某些進程換進記憶體,佔據前者所佔用的地區(進程在記憶體與外存之間的動態調度)

24. 頁面置換演算法:OPT:置換以後不再需要的或最遠的將來才會用到的頁面;FIFO:選擇在記憶體中駐留時間最長的頁並臵換它;實現:頁面鏈表法;第二次機會SCR:按照先進先出演算法選擇某一頁面,檢查其訪問位R,如果為0,則臵換該頁;如果為1,則給第二次機會,並將訪問位臵0;時鐘演算法:優先選擇不需要寫回磁碟的頁面,節省時間;最近未使用演算法(NRU):選擇在最近一段時間內未使用過的一頁並臵換.設臵頁表表項的兩位訪問位(R),修改位(M);最近最少使用演算法(LRU):選擇最後一次訪問時間距離目前時間最長的一頁並臵換,即臵換未使用時間最長的一頁.實現:時間戳記 或 維護一個訪問頁的棧→開銷大;老化演算法:對LRU的改進,計數器在加R前先右移一位R位加到計數器的最左端

25顛簸:在虛存中,頁面在記憶體與外存之間頻繁調度,若調度頁面所需時間比進程實際啟動並執行時間還多,則系統效率急劇下降,這種現象稱為顛簸或抖動

26.工作集:思想:根據程式的局部性原理,一般情況下,進程在一段時間內總是集中訪問一些頁面,這些頁面稱為活躍頁面,如果分配給一個進程的物理頁面數太少了,使該進程所需的活躍頁面不能全部裝入記憶體,則進程在運行過程中將頻繁發生中斷

27.清除策略:設計分頁守護進程,大多數時候它是睡眠,但定期被喚醒以檢查記憶體的狀態.當需要使用一個已臵換出的頁框時,如果該頁框還沒有被覆蓋,將其從空閑頁框緩衝池中移出即可恢複該頁面.使用一個雙指標時鐘實現清除策略.前指標由分頁守護進程式控制制:當它指向一個“髒”頁面時,就把該頁面寫回磁碟,前指標向前移動;當它指向一個乾淨頁面時,僅僅向前移動指標.後指標用於頁面臵換,與標準時鐘演算法一樣

28頁緩衝:不丟棄臵換出的頁,將它們放入兩個表之一:如果未被修改,則放到空閑頁鏈表中,如果修改了,則放到修改頁鏈表中.被修改的頁以簇方式寫回磁碟.被臵換的頁仍然保留在記憶體中

29記憶體對應檔:進程通過一個系統調用將一個檔案對應到其虛擬位址空間的一部分,訪問這個檔案就象訪問記憶體中的一個大數組,而不是對檔案進行讀寫.在多數實現中,在映射共用的頁面時不會實際讀入頁面的內容,而是在訪問頁面時,頁面才會被每次一頁的讀入,磁碟檔案則被當作備份存放區.當進程退出或顯式地解除檔案對應時所有被修改頁面會寫迴文件.

30記憶體管理器的組成:工作集管理器;進程/堆棧交換器;已修改頁面寫入器;映射頁面寫

入器;廢棄段線程;零頁線程

31Windows的工作集:駐留在實體記憶體中的虛擬頁面的子集

進程工作集:為每個進程分配的一定數量的頁框

系統工作集:為可分頁的系統代碼和資料分配的頁框

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.