作業系統:
特徵:作業系統和外部打交道的方式:中斷、異常和系統呼叫
三者的區別:
作業系統記憶體管理的目標:
共享:訪問相同的記憶體單元
作業系統記憶體的管理方式:
連續記憶體分配和記憶體碎片:
連續記憶體分配:
碎片整理:當所需的記憶體不夠時,將剩餘的空間進行拼接以得到更大的記憶體空間,以便滿足程序的空間需求
非連續記憶體分配的實現方式:
快表:
頁表如果特別大後,會占用很大的儲存空間,解決方法:
計算機系統通常會出現記憶體空間不夠用的情況。解決方法:
覆蓋技術:在較小的記憶體中執行較大的程式
交換技術:增加正在執行或需要執行的程式的記憶體
原理:
實現方式:
基本特徵:
大使用者空間:提供給使用者的虛擬記憶體可大於實際的物理記憶體
頁面鎖定:是指在頁面置換過程中不能被換出的頁面,也就是必須常駐記憶體的邏輯頁面,通常包括作業系統的關鍵部分以及要求響應速度的**和資料,通過也表中鎖定的標誌位來標識
置換演算法評價的標準:頁面置換次數越少,演算法越好
置換演算法分類:
最優置換演算法(opt):置換在未來最長時間不訪問的頁面
先進先出演算法(fifo):選擇駐留時間最長的作為替換,無需動態的調整順序
最近最久未使用演算法(lru):選擇最長時間未使用的頁面作為置換
時鐘頁面置換演算法(clock):僅對頁面的訪問情況進行大致統計
最不常用演算法(lfu):置換訪問次數最小的頁面
blady現象:採用fifo演算法,可能出現分配的物理頁面增加,缺頁次數反而公升高;lru沒有belady現象
全域性置換演算法:區域性置換演算法沒有考慮程序訪存的差異
抖動:程序物理頁面少,不能包含工作集,造成大量缺頁,頻繁置換
負載控制:控制併發程序數
程序是執行中的程式,程序= 程式 + 資料 + 程序控制塊,程序是動態的,程式是靜態的。
程序控制塊:控制管理程序執行所需的資訊的集合
程序生命週期的劃分:
執行緒:是程序的一小部分,是程序中指令執行的最小單元,是cpu排程的基本單位
執行緒的三種實現方式:
同步的三種方法(屬於底層的硬體方法):禁用中斷、原子操作指令、軟體方法
訊號量與管程是作業系統中提供的兩種同步的方法(相當於對底層硬體方法的高層抽象,統一稱為「鎖」)
訊號量:訊號量是作業系統提供的一種協調共享資源訪問的方法,作業系統是管理者,地位高於程序,訊號量表示系統資源的數量。
訊號量是一種抽象的資料型別,由乙個整型變數和兩個原子操作組成
p操作:申請資源,整型變數減一;如果小於0進入等待狀態
v操作:釋放資源,整型變數加一;如果小於等於0,喚醒乙個等待程序
訊號量的使用:
管程:一種用於多執行緒互斥訪問共享資源的程式結構
管程由乙個鎖(控制管程**的互斥訪問),0個或者多個條件變數(管理共享資料的併發訪問)組成,如果是0個條件變數等同於臨界區。
條件變數是管程內部的等待機制:
程序的通訊機制:訊號、管道、訊息佇列、共享記憶體。
作業系統學習筆記
這裡專門摘錄作業系統相關筆試題和面試題!也當作自己的乙個複習!乙個很全的作業系統常考知識集合 1.分段式儲存和分頁式儲存,以及段頁式儲存的區別 分頁是一維儲存,分段是二維的 因為分頁給出虛擬位址後,作業系統會自動劃分頁號和偏移量 而分段給出位址後,需要知道段號和偏移量,段的長度是可變的!故是二維的 ...
作業系統學習 筆記
單道批處理評價 資源利用率差 互動性差 等 多道批處理 w為了提高系統的利用率 出現多道批處理 多道 是指 某時刻 多個應用程式再主存中,按照某些原則去處理,逐個執行程式。批處理 使用者提交一批作業,首先存放再外存,排成乙個佇列,然後排程程式按一定的演算法去排程從該佇列 中選取佇列中的乙個或若干個作...
作業系統學習筆記
為什麼需要多執行緒?乙個程序有不同的任務,譬如說乙個程式有不同的方法,有些任務需要等待其他資源的排程 io排程 此時的cpu會空閒等待,加入多執行緒之後,程序分為不同的執行緒去執行不同的任務,使得cpu的利用率大大提高。多執行緒和多程序的區別 多程序是執行不同的程式,多程序切換需要中斷 記錄斷點等資...