本章考核知識點 :1、進程的順序性與并發性 2、與時間有關的錯誤 3、相關臨界區 4、進程的互斥 5、進程的同步 6、進程通信 7、線程的概念
本章自學要求 :理解“進程”是操作系統中的基本執行單位,在多道程序設計的系統中往往同時有許多進程存在,它們要輪流占用處理器。這些交叉執行的并發進程相互之間可能是無關,也可能是相關的。當并發進程競爭共享資源時會出現與時間有關的錯誤,因此,應采用進程同步與互斥手段使其合理使用共享資源,以保證系統安全。當進程間必須通過信息交換進行協作時,可用進程通信的方式達到目的。
重點 是:分析與時間有關的錯誤;用PV操作實現進程的同步與互斥;用信箱實現進程通信。
一、進程的順序性與并發性( 領會 )
有人說,在程序中不是有跳轉語句和重復語句,怎么就是順序執行?注意,這里是指進程在處理器中的執行,因為處理器每次只能執行一個操作,因此每條指令必須按順序進入CPU執行,假使有一條指令是跳轉的,那么執行本指令后,會取出跳轉目的地址的指令進入CPU運行,這個順序是程序規定的。所以對CPU而言,進程總是按順序執行。
進程是一個程序在一個數據集合上的一次執行,同一個程序和同一個數據集的運行結果必然是相同的。這就是可再現性。
同時執行并不是真的同時,因為任一時刻CPU中只能有一個進程運行。
1、進程的 順序性 :任何進程在順序的處理器上的執行是嚴格按照順序進行的,這就是進程的順序性。當一個進程獨占處理器順序執行時,具有兩個特性: 一、封閉性 二、可再現性 .
2、進程的 同時執行 :在多道程序設計系統中,一個進程的工作沒有全部完成之前,另一個進程就可以開始工作,它們的執行在時間上重迭的,我們把它們稱為是“可同時執行的”。
3、進程的 并發性 :若系統中存在一組可同時執行的進程,則說該組進程具有并發性,并把可同時執行的進程稱為“并發進程” .
4、并發進程間的關系:并發進程相互之間可能是 無關的 ,也可能是 交往的 .如果一個進程的執行不影響其他進程的執行,且與其他進程的進展情況無關,即它們是各自獨立的,則這些并發進程相互之間是無關的。如果一個進程的執行依賴其他進程的執行,則這些并發進程之間是有交往的。
二、與時間有關的錯誤( 簡單應用 )
1、并發進程的執行速度取決于自身和進程調度策略。一個進程運行時會被中斷,且斷點是不固定的,一個進程被中斷后,哪個進程可以運行,被中斷的進程什么時候占用處理器,是與進程調度策略有關的。因此進程的執行速度不能由自己決定。
2、并發進程交替使用共享資源時會出現與時間有關的錯誤。 由于共享資源的原因,加上進程并發執行的隨機性,一個進程對另一個進程的影響是不可預測的。造成不正確的因素與進程占用處理器的時間、執行的速度以及外界的影響有關。因此被稱為與時間有關的錯誤。
3、分析并發進程中與時間有關的錯誤,請理解教材上的例子。
三。相關臨界區( 領會 )
1、 臨界區 的定義:并發進程中與共享變量有關的程序段稱為“臨界區”
2、什么是 相關臨界區 : 相關臨界區是指 并發進程 中涉及到 相同變量 的那些 程序段 .
3、對相關臨界區的管理要求。
1) 一次最多讓一個 進程在臨界區執行,當有進程在臨界區時其他想進入臨界區執行的進程必須等待。
2)任何一個進入臨界區執行的進程必須在 有限的時間內退出 臨界區,即任何一個進程都不應該無限地逗留在自己的臨界區。
3)不能強迫一個進程無限地等待進入它的臨界區,即有進程退出時應 讓一個等待進入臨界區的進程進入 它的臨界區。
相關推薦:2010年自考工學類“操作系統原理”復習資料匯總