版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
基于實例的進程同步教學模型的研究與構(gòu)建獲獎科研報告摘要:本文針對操作系統(tǒng)教學中的重點和難點——進程同步的學習,提出一個完整的進程同步教學模型。首先通過生活中的例子理解概念;其次通過游戲理解進程同步機制;最后通過教學模型實現(xiàn)進程同步的應用。通過在實際中的應用,該解決進程同步問題的思路和模型證明是有效的。
關鍵詞:進程同步共享資源相互合作教學模型P、V操作
操作系統(tǒng)是計算機系統(tǒng)中的核心軟件之一,現(xiàn)代計算機離不開操作系統(tǒng)。操作系統(tǒng)課程是計算機應用人員深入了解和使用計算機的必備知識,是進行系統(tǒng)軟件開發(fā)的理論基礎,也是計算機科學與技術專業(yè)的一門理論性較強的主干課程,很多學校都將該門課程作為重點課程建設。因此,提高該門課程的教學質(zhì)量對于培養(yǎng)合格的計算機專業(yè)人員是至關重要的,如何學好操作系統(tǒng)是每個教師學生所關心的。
長期以來,許多院校的師生都反映操作系統(tǒng)的課程看起來比較容易,但在學習過程中感覺枯燥、難講、難學,尤其是進程同步方面的知識,是整個操作系統(tǒng)教學中的重點和難點,往往學完整個操作系統(tǒng)課程還是不理解、不會解決進程同步問題。很多教師在這方面都進行了探索。牛欣源[1]為進程同步問題構(gòu)建了一個較通用的設計實現(xiàn)模型,主要分為三個方面:(1)分析獨占資源的資源管理,利用信號量及其P、V操作實現(xiàn)資源管理;(2)利用資源管理基本方式,構(gòu)建能夠描述同步、互斥問題的模型;(3)應用該模型,解決經(jīng)典同步案例。王文磊等[2]討論了經(jīng)典進程同步問題的研究與實現(xiàn),并實現(xiàn)了多線程下的進程同步。筆者根據(jù)自身及整個教學團隊多年的教學、教改經(jīng)驗,提出了一整套利用信號量機制解決進程同步問題的思路、模型,為教師提供了便利,減輕了初學者的負擔。
一、通過生活實例理解進程同步的概念
在解決進程同步問題之前,首先要明確一個概念:進程同步。湯小丹[3]等在《計算機操作系統(tǒng)(第三版)》關于進程同步的描述:進程同步的主要任務是對多個相關進程在執(zhí)行次序上進行協(xié)調(diào),以使并發(fā)執(zhí)行的諸進程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。從以上定義可以看出,進程同步解決的是進程間的執(zhí)行次序問題,目的是使各進程能有效地共享資源和相互合作。衍伸看,進程同步問題中存在兩類問題:同步和互斥。同步是由于相互合作而產(chǎn)生的,互斥是因為共享資源而產(chǎn)生的。解決了同步和互斥,就解決了進程同步問題。
但是,由于操作系統(tǒng)本身的抽象性,學生理解同步和互斥并不是一件容易的事情,尤其是同步。將抽象變?yōu)榫唧w,理解起來就容易得多。在實際教學中,我們會將現(xiàn)實生活中與學生關系密切的事件作為例子,幫助大家理解概念。對于同步,由于體現(xiàn)的是相互合作進程之間的關系,可以運動會中的接力比賽為例,第一棒的學生發(fā)令槍一響,按照各自的速度向前奔跑,而第二棒的學生也想早點跑,但沒有接到棒之前,只能等待,只要接到棒,就可以按照自己的速度想跑多快就跑多快。在這個過程中既體現(xiàn)了相互合作學生(進程)之間的次序問題,又體現(xiàn)了進程的異步性。同步的提出就是為了解決進程執(zhí)行過程中的異步性。第二棒的學生不管跑多快,他受到第一個學生的制約,即直接制約關系。同步進程的執(zhí)行是有固定次序的,必須區(qū)分先后。不管什么時間執(zhí)行,都必須按照既定的次序。
對于互斥,是由于共享資源而產(chǎn)生的,相對說好理解。但為了后面進程同步的應用,也可以舉個實例。例如,學生宿舍共用水龍頭的問題。水龍頭屬于臨界資源,一段時間只允許一個同學(進程)訪問。但是,對水龍頭的使用是沒有固定次序的,只要保證一段時間內(nèi)只有一個同學(進程)使用就可以。在某個同學使用的過程中,其他同學可以SLEEP(或BLOCK)(同步進制中的忙則等待),不需要不斷地看別人用完了沒有,等別人用完可以將他WAKEUP。而且,當一個人用完后要讓給別人,不能鎖起來(同步機制中的空閑讓進)。使用水龍頭的學生盡量快,不要等到上課了還有學生沒洗(同步進制中的有限等待)。如果一個同學在洗的過程中被人叫走,那么水龍頭要讓給別人。(同步機制中的讓權(quán)等待)。這個例子因為非常貼近生活,學生可以在生活中注意觀察、體會,以加深對互斥和進程同步的理解。
通過上面的與同學關系密切的生活片段,可以讓學生更深刻地理解進程同步,同時理解相關的概念。最后總結(jié):互斥是一種特殊的同步,雖沒有固定的執(zhí)行次序,但一旦某個進程使用臨界資源,其他進程必須等待。同步是有固定次序的。
二、通過游戲理解進程同步機制
這里仍然以經(jīng)典的進程同步機制—信號量機制講起。
信號量本身不難理解,我們可以將它與生活中的紅綠燈(信號燈)聯(lián)系起來,紅燈停,綠燈行。但是,在應用信號量的過程中,許多學生還是難以理解進程同步中的停和行是怎么回事,是如何控制的??菰锏闹v解不如做游戲掌握得快。為此,我們設計了一個課堂游戲幫助大家理解信號量的應用,以體驗進程執(zhí)行中的“?!焙汀靶小?。
游戲設置:(1)放蘋果和取蘋果的同學各一組,每組各三人(相當于兩組進程);(2)兩個空盒子,每個只能放一個蘋果(相當于臨界資源,可以認為是包含多個緩沖區(qū)的緩沖池);(3)一個S,用于取放蘋果的同學互斥訪問盒子,兩個S1,用于控制放蘋果的,兩個S2,用于控制取蘋果的;(4)初始狀態(tài):兩個S1放在放蘋果的一方的桌子上,兩個S2放在盒子里,S放在另一張桌子上。
規(guī)則:(1)放蘋果的學生必須先拿到一張S1后再去拿S,兩張都拿到才能放蘋果,其中任何一張拿不到都需要等(阻塞);(2)取蘋果的學生必須先拿到一張S2再去拿S,兩張都拿到才能取蘋果,其中任何一張拿不到都需要等(阻塞);(3)放蘋果的學生每次放完蘋果將S1放到相應的盒子上,并將S放回原處,同時將該盒子上原有的S2放到取蘋果的同學一端;(4)取蘋果的學生每次取完蘋果將S2放到相應的盒子上,并將S放回原處,同時將該盒子上原有的S1放到放蘋果的同學一端;(5)在取放蘋果的過程中,每個學生按照自己的速度向前行(體現(xiàn)并發(fā)進程的異步性)。在這個游戲中,必須先放蘋果才能取蘋果(可以取蘋果的S2初始放在盒子里),體現(xiàn)了進程之間的合作(同步);對盒子的訪問必須先拿到S,一段時間只有一個學生能拿到,體現(xiàn)了對臨界資源的互斥訪問。另外,在游戲中還體現(xiàn)出當同步信號量和互斥信號量同時出現(xiàn)時,要先同步(先拿S1),后互斥(再拿S),以免死鎖。
通過上述游戲,學生很容易理解信號量的使用,并進一步理解了進程的同步和互斥。該游戲可以多玩幾次,每次完成后作為獎勵將蘋果送給參與的學生。
三、通過進程同步模型解決進程同步的應用
通過前面的講解,同學們對進程同步的相關概念已經(jīng)有了深入的了解,但是實際應用起來還是覺著無從下手。為此我們在實踐的基礎上建立了一個利用信號量機制解決進程同步問題的模型,通過這個模型,學生可以比較容易地實現(xiàn)進程同步的應用,對初學者有幫助。具體模型包括:
(一)描述進程的執(zhí)行過程。
這一步比較簡單,可以用自然語言描述,也可以用偽代碼描述。
(二)分析進程間的相關性。
進程同步所關注的是相關進程間的執(zhí)行次序問題,進程間沒有關系的動作,或者說屬于進程自己的行為,不需要加以協(xié)調(diào)。同時,分析進程間哪些動作具有相關性,也是后面分析進程間存在哪些制約關系及將P、V操作放到合適位置的基礎。
(三)分析相關進程存在的關系,定義信號量。
這一步需要分析相關進程之間存在的關系,根據(jù)關系定義信號量并給出信號量的初值。
1.分析進程間的關系。相關進程之間存在著兩種關系:因相互合作而產(chǎn)生的直接制約關系和因共享資源而產(chǎn)生的間接制約關系。直接制約即同步,間接制約即互斥。那么,在具體的問題中,我們就從這兩種關系入手,看看問題中到底存在著相互合作還是共享資源,或者二者兼有。判斷相關進程之間是否存在著共享資源相對比較簡單,也比較明顯。只要這類資源是進程競爭的對象,就是共享資源,例如同宿舍同學對水龍頭的競爭。
對于因相互合作而產(chǎn)生的直接制約關系,即同步,各進程之間一定存在著固定的執(zhí)行次序,可分為兩種情況。一種為簡單的同步,即進程中的相關動作之間只存在簡單的先后次序關系,可以通過前驅(qū)圖來描述,誰在前驅(qū)位置,誰在后繼位置一目了然。例如運動會中的接力賽。第二種為較復雜的同步,各進程間相關動作彼此影響,互相制約。這一過程通常是循環(huán)的過程。例如取放蘋果的過程,取蘋果受放蘋果的制約,放蘋果受取蘋果的制約。
2.定義信號量。根據(jù)上述分析,對于因共享資源而產(chǎn)生的互斥,有幾類資源就設置幾個相應的信號量;對于因相互合作而產(chǎn)生的同步,對應在前驅(qū)圖中,存在幾對前驅(qū)關系,就設置幾個信號量;對于比較復雜的前驅(qū)關系,除了上面設置的信號量之外,還要考慮處于前驅(qū)位置的動作的執(zhí)行條件,即設置相應的信號量控制前驅(qū)位置的執(zhí)行。需要注意的是,設置信號量時要明確指出信號量的物理含義。
3.定義信號量的初值。初值即信號量在問題中的初始狀態(tài)的值,這里問題的初始狀態(tài)是關鍵。信號量的初值可分為三類:1,0,n。1代表臨界資源,0表示簡單的前后次序,n表示需要n個這類的資源。如果是臨界資源,初值為1,但如果問題中有多個同樣的臨界資源,初值即為相應的個數(shù),例如三個打印機,信號量的初值即為3。如果問題中是描述簡單的前驅(qū)關系(相互合作)的,信號量初值固定為0;對于復雜的前驅(qū)關系,控制前驅(qū)動作執(zhí)行的信號量初值通常為資源的數(shù)量。
(四)將P、V操作放在合適的位置。
這是信號量的應用中較難的一個步驟,尤其是P操作的位置,如果不當,或者不能實現(xiàn)相互合作進程之間的同步或?qū)εR界資源的互斥訪問,更嚴重的會造成死鎖。
需要注意的是,P、V操作必須成對出現(xiàn),有一個P操作就有一個V操作。當進程中涉及多個P操作的時候,要注意執(zhí)行順序。若同時出現(xiàn)關于同步的P操作和關于互斥的P操作,則同步P操作放在互斥P操作之前前面;執(zhí)行V操作雖然不會造成死鎖,在進程中的兩個V操作的位置一般不需特別注意,但V操作的順序可能會延遲進程的推進,因此在使用完互斥信號量后要及時執(zhí)行相應的V操作。關于同步的P、V操作要放在不同的進程中,關于互斥的P、V操作要放在同一進程中。
對于互斥,只要在每個進程中訪問臨界資源之前加上相應的P操作即可,訪問完加上相應的V操作;對于同步,由于可以用前驅(qū)圖表示,那么在前驅(qū)圖中后繼位置的語句之前加上相應的P操作,而在前驅(qū)位置的語句之后加上V操作。
簡單來說,進程中想控制哪條(或哪幾條)語句就在之前加上P操作。這里的控制包括互斥進程對共享資源的訪問控制及合作進程對執(zhí)行的先后次序的控制。當一個進程中某個動作要執(zhí)行的時候,只要需要判斷能不能執(zhí)行,就在之前加上P操作,由P操作幫助進程判斷。
四、總結(jié)與展望
本文主要介紹了操作系統(tǒng)中課程中的一個重點和難點—進程同步的學習思路和解決問題的模型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級數(shù)學上冊 12.2 三角形全等的判定 第2課時 用“SAS”判定三角形全等聽評課記錄 新人教版
- 小學數(shù)學蘇教版六年級下冊《分數(shù)和百分數(shù)的實際應用(總復習)》公開課聽評課記錄
- 新北師大版數(shù)學一年級下冊《買鉛筆》聽評課記錄
- 2025年煤制合成氨合作協(xié)議書
- 五年級上冊數(shù)學口算題
- 四年級教師教學計劃
- 一年級蘇教版數(shù)學下冊《認識圖形》聽評課記錄
- 社區(qū)團購戰(zhàn)略合作協(xié)議書范本
- 人貨電梯租賃合同范本
- 2025年度事故車輛保險責任免除協(xié)議書
- 2024年xx縣第三小學安全工作管理制度匯編
- 2024年榆林職業(yè)技術學院高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- 項目合作備忘錄范文
- 婦產(chǎn)科醫(yī)生個人年終述職報告課件
- 《費曼學習法》讀后感
- 趣味成語課程設計
- 2025年人教版高考生物一輪復習:綜合PCR的基因工程問題
- 鋼筋焊接工藝性試驗方案
- 2024年福建省新高考生物試卷真題(含答案解析)
- GB/T 44273-2024水力發(fā)電工程運行管理規(guī)范
- 2024年南京市中考歷史試題及答案
評論
0/150
提交評論