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