程序的描述與控制 思維導圖 doc
阿新 • • 發佈:2018-11-10
前驅圖DAG:描述程序執行的順序
順序執行特徵:順序性,封閉性,可再現性
併發執行特徵:間斷性,失去封閉性,不可再現性
程序的定義和特徵
程序是程序實體(PCB)的執行過程,是系統進行資源分配和排程的一個獨立單位
特徵:動態性,併發性;獨立性;非同步性
程序的基本狀態以及轉換
引入掛起操作程序狀態的轉換
程序管理中的資料結構
資源/程序資訊表:計算機系統中對每個資源和程序設定資料結構表徵其實體
PCB的作用
程序控制表中的資訊
程序控制塊的組織方式
作業系統核心
讓驅動程式,執行頻率高的模組常駐記憶體
功能
程序的建立
程序層次結構以及層次圖——用來描述程序家族關係的有向樹
引起建立程序的事件
建立過程
申請PCB -> 分配資源 ->初始化PCB -> 插入就緒佇列
程序的終止
引起終止的事件
終止過程
讀取PCB狀態 -> 中止該程序以及子程序執行 -> 將程序(以及子程序)所有資源歸還系統 -> 將程序PCB從佇列中移除
程序的阻塞與喚醒
引起阻塞或喚醒的事件
阻塞過程
阻塞原語block:將程序狀態改為阻塞,並將PCB插入阻塞佇列
喚醒過程
喚醒原語wakeup:將PCB從阻塞佇列中移出,插入到就緒佇列
程序的掛起與啟用
掛起
掛起原語suspend:檢查程序狀態,從 活動就緒/阻塞 -> 靜止就緒/阻塞。若處於執行狀態則轉向條都程式重新排程
啟用
啟用原語active:將程序從外存調往記憶體,檢查程序狀態,從 靜止就緒/阻塞 -> 活動就緒/阻塞
基本概念
兩種制約關係
臨界資源
臨界區
同步機制應該遵循的規則
硬體同步機制
關中斷
Test-and-Set 指令實現互斥
Swap指令實現程序互斥
訊號量機制
整型訊號量
記錄型訊號量
AND型訊號量
訊號量集
訊號量的應用
實現程序互斥
實現前驅關係
管程機制
管程:程序對共享資源的申請必須通過的過程
條件變數
生產者-消費者問題
哲學家進餐問題
讀者-寫者問題
通訊型別
共享儲存器系統
管道通訊系統
管道通訊:寫程序向共享檔案輸入以字元流形式的大量資料,並有讀程序接收
訊息傳遞系統
客戶機-伺服器系統
訊息傳遞通訊的實現方式
直接訊息傳遞系統
信箱通訊
直接訊息傳遞系統例項
執行緒引入
程序兩個基本屬性
程式併發執行的時空開銷
執行緒:作為排程和分派的基本單位
與程序的比較
排程的基本單位:引入執行緒OS中,執行緒是排程和分派基本單位,且能獨立執行
併發性:同一程序中多個執行緒能夠併發
擁有資源:執行緒本身只有維持獨立執行的資源,但能共享程序擁有的資源
獨立性:獨立性比程序低
系統開銷:執行緒系統開銷較低
支援多處理機系統
執行緒的狀態與控制塊
執行緒3個基本狀態
執行緒控制塊TCB
多執行緒OS中程序屬性
執行緒的實現方式
核心支援執行緒KST
使用者級執行緒ULT
組合方式
執行緒的實現
核心支援執行緒的實現
使用者級執行緒的實現
核心控制執行緒LWP:通過系統呼叫獲得核心提供的服務,使用者級執行緒只需連線LWP