核心功能:物理記憶體管理 | 虛擬記憶體管理 | 檔案系統管理 | 中斷處理和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 記憶體嚴重...