資源描述:
《關于操作系統(tǒng)概論教學中進程同步與互斥問題實現(xiàn)的思考》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、萬方數(shù)據(jù)科技信息。職校論壇OSCIENCE&TECHNOLOGYINFORMATION2009年第5期關于操作系統(tǒng)概論教學中進程同步與互斥問題實現(xiàn)的思考敖勇平曾景峰(江西環(huán)境工程職業(yè)學院信息工程分院江西贛州341000)【摘要】進程的同多與互斥問題是《操作系統(tǒng)概論》教學中的一個重點,也是教學中的一個難點,本文以自己在教學中的一些體會,從進程的同步與互斥的相關概念入手,歸納出進程同步,與互斥的解題思路和解題步驟,結(jié)合具體實例進行闡述?!娟P鍵詞】信號量;進程同步;進程互斥;PV操作解決同步和互斥問題最常用的方法就
2、是信號量的方法,通過在程序算法中使用P、V操作達到同步和互斥的目的。在教學過程中。發(fā)現(xiàn)很多學生對上課所講的例子大部分都清楚它的算法,可是當遇到一個新的同步與互斥問題,很多學生覺得還是無從下手,感到困惑。這主要是因為他們對進程的本質(zhì)理解還不夠深入、對同步與互斥的概念還不夠清楚、對信號量、PV操作的含義還不夠明白,對進程同步與互斥的解題思路、解題步驟不了解造成的。下面將針對這些方面來逐個進行論述。1.進程的同步與互斥概念1.1進程的互斥進程的的互斥是指當有若干個進程都要使用某一共享資源時。任何時刻最多只允許一個進
3、程支使用該資源,其他要使用它的進程必須等待,直到該資源的占用者釋放了該資源。1.2進程的同步進程的同步是指在并發(fā)進程之間存在一種制約關系,一個進程的執(zhí)行依賴另一個進程的消息,當一個進程沒有得到另一個進程的消息時應等待,直到消息到達才被喚醒。2。利用信號量機制實現(xiàn)進程的同步與互斥2.1信號量的引入~荷蘭著名科學家E.W.Dijkstra于1965年利用火車控制系統(tǒng)中信號燈的概念,提出了用作進程同步工具的信號量(semaphore)機制,它最初由一個表示資源可用數(shù)目或狀態(tài)的整型量(信號量)和唯一能改變這個信號量值
4、的P、V原子操作組成.是一種簡單成效的進程互斥同步工具,已廣泛用于現(xiàn)代計算機系統(tǒng)中。2.2信號量的概念2.2.1信號量:是一種特殊變量,它用來表示系統(tǒng)中資源的使用情況。一般為整型信號量。2.2.2信號量的物理含義2.2.2.1當其值大于?0’時,表示系統(tǒng)中對應可用資源的數(shù)目;2.2.2:2當其值小于“O”時,其絕對值表示因該類資源而被阻塞的進程的數(shù)目:2.2.2.3當其值等于?0’時,表示系統(tǒng)中對應資源已經(jīng)都被占用,并且沒有阻塞的進程。2.3信號量的操作2.3.1PV操作的定義:2.3.1.1P操作P(S):
5、將信號量S減1,若結(jié)果小于0,則把調(diào)用的P(S)的進程置成等待狀態(tài)。2.3.1.2V操作v(s):將信號量S加1,若結(jié)果不大于0,貝玨釋放一個等待信號量S的進程。3.把握進程同步與互斥的解題步驟3~進程同步與互斥的解題思路對于一個進程的同步與互斥問題,對于初學者來說,已不單單是一個解題的結(jié)果,更重要的應該是在深刻地理解上面的逑程同步與互斥的相關概念的基礎上,學會進程同步與互斥問題解決的分析過程,理清解決此類問題的解題思路。進程的同步與互斥問題的解題思路。歸納起來,以下幾點:?~3.2進程同步與互斥的解題步驟對
6、于一個進程的同步與互斥問題,對于初學者來說,已不單單是一個解題的結(jié)果.更重要的應該是在深刻地理解上面的進程同步與互斥的相關概念的基礎上,學會進程同步與互斥問題解決的分析過程,理清解決此類問題的解題思路,掌握解決這一類問題的解題步驟。對于廣大學習者,可以參考下面的解題步驟,來解決進程同步與互斥問題,步驟如下:3.2.1確定進程數(shù)和進程問的關系首先要認真分析待解決的實際問題。提煉出實際問題進程的數(shù)量,然后根據(jù)各進程間是否使用的是臨界資源,還是處理的是進程間前后關系,確定哪些進程間是同步關系,哪些里程間是互斥關系。
7、3_2.2確定互斥和同步的規(guī)則分析具體問題,確定同步和互斥的基本方式,確定能夠進行正確操作的條件,在這些條件中隱含著同步和互斥的規(guī)則。3.2.3確定同步、互斥的操作流程按實際問題的已知條件和操作的步驟.寫出每個進程操作的流程。3.2.4確定同步和互斥的信號量根據(jù)同步和互斥操作流程確定信號量的個數(shù).確定信號量代表的含義,只有確切地知道信號量所代表的含義,設置這個信號量才有意義。3.2.5確定同步和互斥的信號量的初值互斥信號量的初值一般是臨界資源的個數(shù),同步信號量的初值則要根據(jù)進程的初始狀態(tài)確定.具體問題要具體分
8、析。具體設置相應的值。3.2.6確定同步和互斥的PV操作的位置根據(jù)同步和互斥規(guī)則和每個進程的操作流程就可以確定PV操作的位置。3.2.7用類Pacal語言或其它語言描述同步或互斥算法。根據(jù)上面六個步驟分析的結(jié)果.就可以類Paeal語言或其它語言實現(xiàn)同步與互斥的算法。需要說明的是無論是互斥問題還是同步問題.只要是需要進程進入阻塞狀態(tài),就必須想到在什么時候?qū)⑦M程喚醒。初學者開始時可以按上述步驟解決同步和