1. 程式人生 > >程序的描述與控制 思維導圖 doc

程序的描述與控制 思維導圖 doc

程序的描述與控制

程序的描述與控制............................................................................................................. 1

1.      前驅圖和程式執行...................................................................................................... 2

2.      程序的描述.................................................................................................................. 2

3.      程序控制...................................................................................................................... 3

4.      程序同步...................................................................................................................... 5

5.      經典程序同步問題...................................................................................................... 7

6.      程序通訊...................................................................................................................... 7

7.      執行緒的基本概念.......................................................................................................... 9

8.      執行緒的實現................................................................................................................ 10

 

 

  1. 前驅圖和程式執行

前驅圖DAG:描述程序執行的順序

順序執行特徵:順序性,封閉性,可再現性

併發執行特徵:間斷性,失去封閉性,不可再現性

  1. 程序的描述

程序的定義和特徵

程序是程序實體(PCB)的執行過程,是系統進行資源分配和排程的一個獨立單位

特徵:動態性,併發性;獨立性;非同步性

程序的基本狀態以及轉換

引入掛起操作程序狀態的轉換

程序管理中的資料結構

資源/程序資訊表:計算機系統中對每個資源和程序設定資料結構表徵其實體

PCB的作用

作為獨立執行基本單位的標誌

能實現間斷性執行方式:保留CPU現場資訊

提供程序管理所需要的資訊

提供程序排程所需要的資訊:程序的狀態資訊

實現與其他程序的同步與通訊

程序控制表中的資訊

程序識別符號(外部和內部)

外部識別符號:方便使用者對程序的訪問

內部識別符號:方便系統對程序的使用

處理機狀態

通用暫存器;指令計數器;程式狀態字PSW;使用者棧指標

程序排程資訊

程序狀態;程序優先順序;其他資訊

程序控制資訊

程式和資料地址;同步和通訊機制;資源列表;連結指標

程序控制塊的組織方式

線性

連結

索引

  1. 程序控制

作業系統核心

讓驅動程式,執行頻率高的模組常駐記憶體

功能

支撐功能:中斷處理,時鐘管理和原語操作

資源管理功能:程序,儲存器和裝置管理

程序的建立

程序層次結構以及層次圖——用來描述程序家族關係的有向樹

引起建立程序的事件

使用者登入

作業排程

提供服務

應用請求

建立過程

申請PCB -> 分配資源 ->初始化PCB -> 插入就緒佇列

程序的終止

引起終止的事件

正常結束

異常結束

外界干預

終止過程

讀取PCB狀態 -> 中止該程序以及子程序執行 -> 將程序(以及子程序)所有資源歸還系統 -> 將程序PCB從佇列中移除

程序的阻塞與喚醒

引起阻塞或喚醒的事件

向系統請求共享資源失敗

等待某種操作完成

新資料尚未到達

等待新任務到達

阻塞過程

阻塞原語block:將程序狀態改為阻塞,並將PCB插入阻塞佇列

喚醒過程

喚醒原語wakeup:將PCB從阻塞佇列中移出,插入到就緒佇列

程序的掛起與啟用

掛起

掛起原語suspend:檢查程序狀態,從 活動就緒/阻塞 -> 靜止就緒/阻塞。若處於執行狀態則轉向條都程式重新排程

啟用

啟用原語active:將程序從外存調往記憶體,檢查程序狀態,從 靜止就緒/阻塞 -> 活動就緒/阻塞

  1. 程序同步

基本概念

兩種制約關係

間接制約關係:對於系統中臨界資源由系統實施統一分配

直接相互制約關係:源於程序之間相互合作而共享資源

臨界資源

例如印表機,磁帶機等

臨界區

程序中訪問臨界資源的部分程式碼。同理有進入區,退出區

同步機制應該遵循的規則

空閒讓進

忙則等待

有限等待

讓權等待

硬體同步機制

關中斷

Test-and-Set 指令實現互斥

Swap指令實現程序互斥

訊號量機制

整型訊號量

定義為一個用於表示資源數目的整型量S,僅通過P,V進行操作

記錄型訊號量

新增一個程序連結串列指標,用於連結所有等待程序

AND型訊號量

在wait操作增加AND條件

訊號量集

訊號量的應用

實現程序互斥

實現前驅關係

管程機制

管程:程序對共享資源的申請必須通過的過程

組成

特性

與程序的差別

條件變數

  1. 經典程序同步問題

生產者-消費者問題

哲學家進餐問題

讀者-寫者問題

  1. 程序通訊

通訊型別

共享儲存器系統

共享資料結構:使用與傳遞相對少量的資料,效率低屬於低階通訊

共享儲存區:對共享區的讀寫由程序負責,屬於高階通訊

管道通訊系統

管道:連線讀,寫程序以實現通訊的共享檔案

管道通訊:寫程序向共享檔案輸入以字元流形式的大量資料,並有讀程序接收

管道機制需提供3方面協調能力:互斥,同步和麵向連線

訊息傳遞系統

直接通訊:利用os提供的傳送原語

間接通訊:通過共享中間實體(信箱)

客戶機-伺服器系統

套接字

遠端過程呼叫

遠端方法呼叫

訊息傳遞通訊的實現方式

直接訊息傳遞系統

信箱通訊

直接訊息傳遞系統例項

  1. 執行緒的基本概念

執行緒引入

程序兩個基本屬性

是可擁有資源的獨立單位

可獨立排程和分派的基本單位

程式併發執行的時空開銷

建立程序,撤銷程序和程序切換

執行緒:作為排程和分派的基本單位

與程序的比較

排程的基本單位:引入執行緒OS中,執行緒是排程和分派基本單位,且能獨立執行

併發性:同一程序中多個執行緒能夠併發

擁有資源:執行緒本身只有維持獨立執行的資源,但能共享程序擁有的資源

獨立性:獨立性比程序低

系統開銷:執行緒系統開銷較低

支援多處理機系統

執行緒的狀態與控制塊

執行緒3個基本狀態

執行,就緒和阻塞狀態

執行緒控制塊TCB

多執行緒OS中程序屬性

程序是一個可有資源的基本單位

多個執行緒可併發執行

程序已經不是可執行的實體

  1. 執行緒的實現

執行緒的實現方式

核心支援執行緒KST

使用者級執行緒ULT

使用者級執行緒與核心無關

組合方式

多對一,一對一和多對多模型

執行緒的實現

核心支援執行緒的實現

使用者級執行緒的實現

執行時系統:管控執行緒的函式的集合

核心控制執行緒LWP:通過系統呼叫獲得核心提供的服務,使用者級執行緒只需連線LWP

執行緒的建立與終止

“初始化執行緒”目的用於建立新執行緒,利用執行緒建立函式

完成任務或者出現異常時,呼叫相應函式(或系統呼叫)終止操作