總結《現代操做系統》的一些概念知識。
算法
1.進程上下文環境:編程
對進程運行活動全過程的靜態描寫敘述數組
由進程的用戶地址空間內容、硬件寄存器內容及與該進程相關的核心數據結構組成緩存
2.構造server的三種方法:安全
進程中的線程是相互協做的,而不是相互對立的。數據結構
假設放棄是爲了應用程序。那麼線程將 放棄 CPU。多線程
畢竟,通常是同一個程序猿寫的代碼。性能
多線程: 並行性、堵塞系統調用優化
單線程進程: 無並行性、堵塞系統調用操作系統
有限狀態機: 並行性、非堵塞系統調用、中斷
3. 臨界區(相互排斥區)的使用原則
不論什麼兩個進程不能同一時候處於其臨界區中
不該對CPU的速度和數量作不論什麼若是
臨界區外執行的進程不得堵塞其它進程
不得使進程無限期等待進入臨界區
4.忙等待: 進程在獲得臨界區訪問權以前,持續測試而不作其它事情
5. 原語: 完畢某種特定功能的一段程序。具備不可切割性或不可中斷性 即原語的運行必須是連續的。在運行過程當中不一樣意被中斷,可以經過屏蔽中斷、測試與設臵指令等來實現
6.管程: 是一個特殊的模塊,有一個名字,由關於共享資源的數據結構及在其上操做的一組過程組成
7. 多級反饋隊列調度算法:
設置多個就緒隊列.給每個就緒隊列中的進程分配不一樣的時間片,優先級高的爲第一級隊列,時間片最小;隨着隊列優先級別的減小。時間片增大
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技術:獨立磁盤冗餘陣列,使用多個並行部件來得到額外的性能提升:一、經過把多個磁盤組織在一塊兒,做爲一個邏輯卷提供磁盤跨越功能二、經過把數據分紅多個數據塊,並行寫入/讀出多個磁盤,以提升傳輸數據率(數據分條stripe)三、經過鏡像或校驗操做,提供容錯能力(冗餘)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的工做集:駐留在物理內存中的虛擬頁面的子集
進程工做集:爲每個進程分配的必定數量的頁框
系統工做集:爲可分頁的系統代碼和數據分配的頁框