清華大學作業系統公開課筆記(向勇 陳渝)

2021-10-09 12:12:43 字數 3529 閱讀 1386

核心功能:物理記憶體管理 | 虛擬記憶體管理 | 檔案系統管理 | 中斷處理和io裝置驅動 (底層硬體)

核心特徵

併發(指一段時間內多個程式執行;而並行是指乙個時間點上多個程式執行,要求多個cpu):計算機系統中同時存在多個執行的程式,需要os管理和排程

共享「同時」訪問或互斥共享

虛擬利用多道程式設計技術,讓每乙個使用者都覺得有乙個計算機專門為他服務

非同步程式的執行不是一步到底的,而是走走停停,向前推進的速度不可預知但只要執行環境相同,os要保證程式執行的結果也相同

啟動流程:bios首先將bootloader載入到記憶體。bootloader負載將os載入到記憶體。

異常

系統呼叫

使用者態到核心態的開銷包括:

計算機基本硬體結構:記憶體、cpu、裝置(i/o)

記憶體管理的實現:程式重定位、分段、分頁、虛擬記憶體、按需分頁虛擬記憶體

分頁效能問題解決——tlb(快取)tlb使用associate memory實現,具備快速訪問效能。如果tlb命中,物理頁號可以很快被獲取;如果tlb未命中,對應的表項被更新到tlb中。

分頁效能問題解決——二級/多級頁表將大頁表拆分成兩個頁表,一級頁表的value項存放的是二級頁表的起始位址。邏輯位址被拆分成三部分,一級頁表號,二級頁表號和頁內偏移量。先根據一級頁表號在一級頁表中查詢到二級頁表的起始位址,再根據這個起始位址與二級頁表號查詢幀號。這樣一些不存在的邏輯位址,可以在二級頁表中不儲存,能夠節省空間。

實現方式有三種覆蓋技術、交換技術、虛存技術

虛存技術的原理:使用者程式執行時,不是把該程式的所有頁面都放入記憶體進行執行,而是調入部分。在執行時發現資料不存在或者指令不存在記憶體,向系統發出缺頁請求中斷,系統在處理這個中斷時,將外村相應頁面調入記憶體,使得程式繼續執行。

虛存技術中缺頁中斷處理流程

虛存技術效能eat(effective memory access time) = 訪存時間 * 命中率 + 缺頁處理時間 * 缺頁率

虛存技術各類資料儲存形式

belady現象是指分配的物理頁越多,缺頁現象反而越頻繁。

全域性頁面置換演算法:

抖動頻繁的在記憶體與外存之間替換頁面,使程式執行效率急速下降。解決方式利用區域性/全域性頁面置換,使平均缺頁時間(mtbf)/ 頁缺失服務時間(pfst)接近1

程序生命週期

程序狀態轉換

執行緒與程序區別

執行緒實現方式主要有三種:使用者執行緒,核心執行緒和輕量級程序。

核心執行緒執行緒控制塊tcb位於核心,每一次切換都涉及使用者態和核心態的切換。

輕量級程序它是核心支援的使用者執行緒,乙個程序可有乙個或多個輕量級程序,每個輕量級程序由乙個單獨的核心執行緒來支援。

上下文切換是指在切換程序的時候,儲存該程序恢復時需要用到的必要資料化,例如程式計數器、棧指標等等。並恢復要切換的程序的必要資料。

程序控制的系統呼叫命令

cpu排程含義從就緒佇列中挑選乙個程序/執行緒作為cpu將要執行的下乙個程序/執行緒

核心執行排程程式的條件(滿足一條即可)

cpu排程準則(一些指標)

基本排程演算法

sjf/spn/srt 最短作業優先

hrrn 最高響應比優先r=(w+s)/s [w] 等待時間 [s] 執行時間

round robin

multilevel feedback queues乙個程序可以在不同的佇列中移動,例如時間片大小隨著佇列的優先順序增加而增加,乙個任務在某乙個佇列中執行,如果在乙個時間片內沒有執行完成,則被降級到低一級的佇列。

fair share scheduling控制使用者對系統資源的公平訪問(使用者級別而不是程序級別)

實時排程演算法

多處理器排程演算法乙個任務來應該分配給哪個cpu、負載均衡

實現臨界區的方法:

基於軟體的解決方案

dowhile(1)

管程

經典同步問題 (思考怎麼用訊號量、管程來實現下面的問題)

死鎖處理方法

死鎖避免死鎖檢測允許系統進入死鎖狀態 | 死鎖檢測演算法 | 恢復機制

死鎖恢復終止程序,關鍵是終止哪些程序、按照什麼順序終止程序。| 搶占資源。

ipc(程序間通訊)

目錄目錄是一種特殊的檔案 | 乙個檔案系統需要先掛載才能使用(linux中的mount)

檔案別名兩個或多個檔名關聯同乙個檔案

檔案系統種類

虛擬檔案系統

組成

開啟檔案是指把檔案控制塊載入記憶體,返回乙個檔案描述符。

檔案分配分配方式的優劣主要看儲存利用和訪問速度兩個指標

鏈式分配檔案以資料塊鍊錶方式儲存 檔案頭包含了第一塊和最後一塊的指標

索引分配為每個檔案建立乙個名為索引資料塊的非資料塊,儲存了到檔案資料塊的指標列表

空閒空間管理跟蹤在儲存中的所有未分配的資料塊。用位圖代表空閒資料塊的列表。

多磁碟管理 raid用多個磁碟提高吞吐量、可靠性和可用性。

磁碟排程旋轉延遲+尋道時間

作業系統from清華大學向勇,陳渝 筆記(一)緒論

下篇和下下篇在這裡 二 作業系統的啟動 中斷 異常 系統呼叫 三 計算機體系結構,位址空間 連續記憶體分配 四 非連續記憶體分配 分段,分頁 五 覆蓋和交換,虛擬記憶體 index 1 2 什麼是作業系統 1 3 為什麼學習os 1 4 怎麼學習作業系統 1 5 作業系統例項 1 6作業系統歷史 1...

清華大學作業系統(二)

定義系統呼叫 於應用程式 應用程式主動向作業系統發出服務請求 異常 於不良的應用程式 非法指令或者壞的處理狀態 中斷 於外設 來自不同的硬體裝置的計時器或者是網路中斷 為什麼使用系統呼叫 處理時間 響應硬體 1 將內部 外部事件設定為中斷標記 2 中斷事件的id 軟體 作業系統 異常 異常標號 殺死...

作業系統筆記 清華大學陳渝

分頁page 記憶體塊大小固定 幀 頁表 page frame 解決頁表過大 最不常用演算法 least frequently used,lfu 將訪問次數最少的資料換出 belady現象,分配更多物理記憶體,缺頁反而更多的現象,如fifo 全域性頁面置換演算法 抖動 thrashing 記憶體嚴重...