基于實(shí)例的進(jìn)程同步教學(xué)模型的研究與構(gòu)建獲獎(jiǎng)科研報(bào)告_第1頁(yè)
基于實(shí)例的進(jìn)程同步教學(xué)模型的研究與構(gòu)建獲獎(jiǎng)科研報(bào)告_第2頁(yè)
基于實(shí)例的進(jìn)程同步教學(xué)模型的研究與構(gòu)建獲獎(jiǎng)科研報(bào)告_第3頁(yè)
基于實(shí)例的進(jìn)程同步教學(xué)模型的研究與構(gòu)建獲獎(jiǎng)科研報(bào)告_第4頁(yè)
基于實(shí)例的進(jìn)程同步教學(xué)模型的研究與構(gòu)建獲獎(jiǎng)科研報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于實(shí)例的進(jìn)程同步教學(xué)模型的研究與構(gòu)建獲獎(jiǎng)科研報(bào)告摘要:本文針對(duì)操作系統(tǒng)教學(xué)中的重點(diǎn)和難點(diǎn)——進(jìn)程同步的學(xué)習(xí),提出一個(gè)完整的進(jìn)程同步教學(xué)模型。首先通過(guò)生活中的例子理解概念;其次通過(guò)游戲理解進(jìn)程同步機(jī)制;最后通過(guò)教學(xué)模型實(shí)現(xiàn)進(jìn)程同步的應(yīng)用。通過(guò)在實(shí)際中的應(yīng)用,該解決進(jìn)程同步問(wèn)題的思路和模型證明是有效的。

關(guān)鍵詞:進(jìn)程同步共享資源相互合作教學(xué)模型P、V操作

操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的核心軟件之一,現(xiàn)代計(jì)算機(jī)離不開操作系統(tǒng)。操作系統(tǒng)課程是計(jì)算機(jī)應(yīng)用人員深入了解和使用計(jì)算機(jī)的必備知識(shí),是進(jìn)行系統(tǒng)軟件開發(fā)的理論基礎(chǔ),也是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門理論性較強(qiáng)的主干課程,很多學(xué)校都將該門課程作為重點(diǎn)課程建設(shè)。因此,提高該門課程的教學(xué)質(zhì)量對(duì)于培養(yǎng)合格的計(jì)算機(jī)專業(yè)人員是至關(guān)重要的,如何學(xué)好操作系統(tǒng)是每個(gè)教師學(xué)生所關(guān)心的。

長(zhǎng)期以來(lái),許多院校的師生都反映操作系統(tǒng)的課程看起來(lái)比較容易,但在學(xué)習(xí)過(guò)程中感覺(jué)枯燥、難講、難學(xué),尤其是進(jìn)程同步方面的知識(shí),是整個(gè)操作系統(tǒng)教學(xué)中的重點(diǎn)和難點(diǎn),往往學(xué)完整個(gè)操作系統(tǒng)課程還是不理解、不會(huì)解決進(jìn)程同步問(wèn)題。很多教師在這方面都進(jìn)行了探索。牛欣源[1]為進(jìn)程同步問(wèn)題構(gòu)建了一個(gè)較通用的設(shè)計(jì)實(shí)現(xiàn)模型,主要分為三個(gè)方面:(1)分析獨(dú)占資源的資源管理,利用信號(hào)量及其P、V操作實(shí)現(xiàn)資源管理;(2)利用資源管理基本方式,構(gòu)建能夠描述同步、互斥問(wèn)題的模型;(3)應(yīng)用該模型,解決經(jīng)典同步案例。王文磊等[2]討論了經(jīng)典進(jìn)程同步問(wèn)題的研究與實(shí)現(xiàn),并實(shí)現(xiàn)了多線程下的進(jìn)程同步。筆者根據(jù)自身及整個(gè)教學(xué)團(tuán)隊(duì)多年的教學(xué)、教改經(jīng)驗(yàn),提出了一整套利用信號(hào)量機(jī)制解決進(jìn)程同步問(wèn)題的思路、模型,為教師提供了便利,減輕了初學(xué)者的負(fù)擔(dān)。

一、通過(guò)生活實(shí)例理解進(jìn)程同步的概念

在解決進(jìn)程同步問(wèn)題之前,首先要明確一個(gè)概念:進(jìn)程同步。湯小丹[3]等在《計(jì)算機(jī)操作系統(tǒng)(第三版)》關(guān)于進(jìn)程同步的描述:進(jìn)程同步的主要任務(wù)是對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),以使并發(fā)執(zhí)行的諸進(jìn)程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。從以上定義可以看出,進(jìn)程同步解決的是進(jìn)程間的執(zhí)行次序問(wèn)題,目的是使各進(jìn)程能有效地共享資源和相互合作。衍伸看,進(jìn)程同步問(wèn)題中存在兩類問(wèn)題:同步和互斥。同步是由于相互合作而產(chǎn)生的,互斥是因?yàn)楣蚕碣Y源而產(chǎn)生的。解決了同步和互斥,就解決了進(jìn)程同步問(wèn)題。

但是,由于操作系統(tǒng)本身的抽象性,學(xué)生理解同步和互斥并不是一件容易的事情,尤其是同步。將抽象變?yōu)榫唧w,理解起來(lái)就容易得多。在實(shí)際教學(xué)中,我們會(huì)將現(xiàn)實(shí)生活中與學(xué)生關(guān)系密切的事件作為例子,幫助大家理解概念。對(duì)于同步,由于體現(xiàn)的是相互合作進(jìn)程之間的關(guān)系,可以運(yùn)動(dòng)會(huì)中的接力比賽為例,第一棒的學(xué)生發(fā)令槍一響,按照各自的速度向前奔跑,而第二棒的學(xué)生也想早點(diǎn)跑,但沒(méi)有接到棒之前,只能等待,只要接到棒,就可以按照自己的速度想跑多快就跑多快。在這個(gè)過(guò)程中既體現(xiàn)了相互合作學(xué)生(進(jìn)程)之間的次序問(wèn)題,又體現(xiàn)了進(jìn)程的異步性。同步的提出就是為了解決進(jìn)程執(zhí)行過(guò)程中的異步性。第二棒的學(xué)生不管跑多快,他受到第一個(gè)學(xué)生的制約,即直接制約關(guān)系。同步進(jìn)程的執(zhí)行是有固定次序的,必須區(qū)分先后。不管什么時(shí)間執(zhí)行,都必須按照既定的次序。

對(duì)于互斥,是由于共享資源而產(chǎn)生的,相對(duì)說(shuō)好理解。但為了后面進(jìn)程同步的應(yīng)用,也可以舉個(gè)實(shí)例。例如,學(xué)生宿舍共用水龍頭的問(wèn)題。水龍頭屬于臨界資源,一段時(shí)間只允許一個(gè)同學(xué)(進(jìn)程)訪問(wèn)。但是,對(duì)水龍頭的使用是沒(méi)有固定次序的,只要保證一段時(shí)間內(nèi)只有一個(gè)同學(xué)(進(jìn)程)使用就可以。在某個(gè)同學(xué)使用的過(guò)程中,其他同學(xué)可以SLEEP(或BLOCK)(同步進(jìn)制中的忙則等待),不需要不斷地看別人用完了沒(méi)有,等別人用完可以將他WAKEUP。而且,當(dāng)一個(gè)人用完后要讓給別人,不能鎖起來(lái)(同步機(jī)制中的空閑讓進(jìn))。使用水龍頭的學(xué)生盡量快,不要等到上課了還有學(xué)生沒(méi)洗(同步進(jìn)制中的有限等待)。如果一個(gè)同學(xué)在洗的過(guò)程中被人叫走,那么水龍頭要讓給別人。(同步機(jī)制中的讓權(quán)等待)。這個(gè)例子因?yàn)榉浅YN近生活,學(xué)生可以在生活中注意觀察、體會(huì),以加深對(duì)互斥和進(jìn)程同步的理解。

通過(guò)上面的與同學(xué)關(guān)系密切的生活片段,可以讓學(xué)生更深刻地理解進(jìn)程同步,同時(shí)理解相關(guān)的概念。最后總結(jié):互斥是一種特殊的同步,雖沒(méi)有固定的執(zhí)行次序,但一旦某個(gè)進(jìn)程使用臨界資源,其他進(jìn)程必須等待。同步是有固定次序的。

二、通過(guò)游戲理解進(jìn)程同步機(jī)制

這里仍然以經(jīng)典的進(jìn)程同步機(jī)制—信號(hào)量機(jī)制講起。

信號(hào)量本身不難理解,我們可以將它與生活中的紅綠燈(信號(hào)燈)聯(lián)系起來(lái),紅燈停,綠燈行。但是,在應(yīng)用信號(hào)量的過(guò)程中,許多學(xué)生還是難以理解進(jìn)程同步中的停和行是怎么回事,是如何控制的。枯燥的講解不如做游戲掌握得快。為此,我們?cè)O(shè)計(jì)了一個(gè)課堂游戲幫助大家理解信號(hào)量的應(yīng)用,以體驗(yàn)進(jìn)程執(zhí)行中的“?!焙汀靶小薄?/p>

游戲設(shè)置:(1)放蘋果和取蘋果的同學(xué)各一組,每組各三人(相當(dāng)于兩組進(jìn)程);(2)兩個(gè)空盒子,每個(gè)只能放一個(gè)蘋果(相當(dāng)于臨界資源,可以認(rèn)為是包含多個(gè)緩沖區(qū)的緩沖池);(3)一個(gè)S,用于取放蘋果的同學(xué)互斥訪問(wèn)盒子,兩個(gè)S1,用于控制放蘋果的,兩個(gè)S2,用于控制取蘋果的;(4)初始狀態(tài):兩個(gè)S1放在放蘋果的一方的桌子上,兩個(gè)S2放在盒子里,S放在另一張桌子上。

規(guī)則:(1)放蘋果的學(xué)生必須先拿到一張S1后再去拿S,兩張都拿到才能放蘋果,其中任何一張拿不到都需要等(阻塞);(2)取蘋果的學(xué)生必須先拿到一張S2再去拿S,兩張都拿到才能取蘋果,其中任何一張拿不到都需要等(阻塞);(3)放蘋果的學(xué)生每次放完蘋果將S1放到相應(yīng)的盒子上,并將S放回原處,同時(shí)將該盒子上原有的S2放到取蘋果的同學(xué)一端;(4)取蘋果的學(xué)生每次取完蘋果將S2放到相應(yīng)的盒子上,并將S放回原處,同時(shí)將該盒子上原有的S1放到放蘋果的同學(xué)一端;(5)在取放蘋果的過(guò)程中,每個(gè)學(xué)生按照自己的速度向前行(體現(xiàn)并發(fā)進(jìn)程的異步性)。在這個(gè)游戲中,必須先放蘋果才能取蘋果(可以取蘋果的S2初始放在盒子里),體現(xiàn)了進(jìn)程之間的合作(同步);對(duì)盒子的訪問(wèn)必須先拿到S,一段時(shí)間只有一個(gè)學(xué)生能拿到,體現(xiàn)了對(duì)臨界資源的互斥訪問(wèn)。另外,在游戲中還體現(xiàn)出當(dāng)同步信號(hào)量和互斥信號(hào)量同時(shí)出現(xiàn)時(shí),要先同步(先拿S1),后互斥(再拿S),以免死鎖。

通過(guò)上述游戲,學(xué)生很容易理解信號(hào)量的使用,并進(jìn)一步理解了進(jìn)程的同步和互斥。該游戲可以多玩幾次,每次完成后作為獎(jiǎng)勵(lì)將蘋果送給參與的學(xué)生。

三、通過(guò)進(jìn)程同步模型解決進(jìn)程同步的應(yīng)用

通過(guò)前面的講解,同學(xué)們對(duì)進(jìn)程同步的相關(guān)概念已經(jīng)有了深入的了解,但是實(shí)際應(yīng)用起來(lái)還是覺(jué)著無(wú)從下手。為此我們?cè)趯?shí)踐的基礎(chǔ)上建立了一個(gè)利用信號(hào)量機(jī)制解決進(jìn)程同步問(wèn)題的模型,通過(guò)這個(gè)模型,學(xué)生可以比較容易地實(shí)現(xiàn)進(jìn)程同步的應(yīng)用,對(duì)初學(xué)者有幫助。具體模型包括:

(一)描述進(jìn)程的執(zhí)行過(guò)程。

這一步比較簡(jiǎn)單,可以用自然語(yǔ)言描述,也可以用偽代碼描述。

(二)分析進(jìn)程間的相關(guān)性。

進(jìn)程同步所關(guān)注的是相關(guān)進(jìn)程間的執(zhí)行次序問(wèn)題,進(jìn)程間沒(méi)有關(guān)系的動(dòng)作,或者說(shuō)屬于進(jìn)程自己的行為,不需要加以協(xié)調(diào)。同時(shí),分析進(jìn)程間哪些動(dòng)作具有相關(guān)性,也是后面分析進(jìn)程間存在哪些制約關(guān)系及將P、V操作放到合適位置的基礎(chǔ)。

(三)分析相關(guān)進(jìn)程存在的關(guān)系,定義信號(hào)量。

這一步需要分析相關(guān)進(jìn)程之間存在的關(guān)系,根據(jù)關(guān)系定義信號(hào)量并給出信號(hào)量的初值。

1.分析進(jìn)程間的關(guān)系。相關(guān)進(jìn)程之間存在著兩種關(guān)系:因相互合作而產(chǎn)生的直接制約關(guān)系和因共享資源而產(chǎn)生的間接制約關(guān)系。直接制約即同步,間接制約即互斥。那么,在具體的問(wèn)題中,我們就從這兩種關(guān)系入手,看看問(wèn)題中到底存在著相互合作還是共享資源,或者二者兼有。判斷相關(guān)進(jìn)程之間是否存在著共享資源相對(duì)比較簡(jiǎn)單,也比較明顯。只要這類資源是進(jìn)程競(jìng)爭(zhēng)的對(duì)象,就是共享資源,例如同宿舍同學(xué)對(duì)水龍頭的競(jìng)爭(zhēng)。

對(duì)于因相互合作而產(chǎn)生的直接制約關(guān)系,即同步,各進(jìn)程之間一定存在著固定的執(zhí)行次序,可分為兩種情況。一種為簡(jiǎn)單的同步,即進(jìn)程中的相關(guān)動(dòng)作之間只存在簡(jiǎn)單的先后次序關(guān)系,可以通過(guò)前驅(qū)圖來(lái)描述,誰(shuí)在前驅(qū)位置,誰(shuí)在后繼位置一目了然。例如運(yùn)動(dòng)會(huì)中的接力賽。第二種為較復(fù)雜的同步,各進(jìn)程間相關(guān)動(dòng)作彼此影響,互相制約。這一過(guò)程通常是循環(huán)的過(guò)程。例如取放蘋果的過(guò)程,取蘋果受放蘋果的制約,放蘋果受取蘋果的制約。

2.定義信號(hào)量。根據(jù)上述分析,對(duì)于因共享資源而產(chǎn)生的互斥,有幾類資源就設(shè)置幾個(gè)相應(yīng)的信號(hào)量;對(duì)于因相互合作而產(chǎn)生的同步,對(duì)應(yīng)在前驅(qū)圖中,存在幾對(duì)前驅(qū)關(guān)系,就設(shè)置幾個(gè)信號(hào)量;對(duì)于比較復(fù)雜的前驅(qū)關(guān)系,除了上面設(shè)置的信號(hào)量之外,還要考慮處于前驅(qū)位置的動(dòng)作的執(zhí)行條件,即設(shè)置相應(yīng)的信號(hào)量控制前驅(qū)位置的執(zhí)行。需要注意的是,設(shè)置信號(hào)量時(shí)要明確指出信號(hào)量的物理含義。

3.定義信號(hào)量的初值。初值即信號(hào)量在問(wèn)題中的初始狀態(tài)的值,這里問(wèn)題的初始狀態(tài)是關(guān)鍵。信號(hào)量的初值可分為三類:1,0,n。1代表臨界資源,0表示簡(jiǎn)單的前后次序,n表示需要n個(gè)這類的資源。如果是臨界資源,初值為1,但如果問(wèn)題中有多個(gè)同樣的臨界資源,初值即為相應(yīng)的個(gè)數(shù),例如三個(gè)打印機(jī),信號(hào)量的初值即為3。如果問(wèn)題中是描述簡(jiǎn)單的前驅(qū)關(guān)系(相互合作)的,信號(hào)量初值固定為0;對(duì)于復(fù)雜的前驅(qū)關(guān)系,控制前驅(qū)動(dòng)作執(zhí)行的信號(hào)量初值通常為資源的數(shù)量。

(四)將P、V操作放在合適的位置。

這是信號(hào)量的應(yīng)用中較難的一個(gè)步驟,尤其是P操作的位置,如果不當(dāng),或者不能實(shí)現(xiàn)相互合作進(jìn)程之間的同步或?qū)εR界資源的互斥訪問(wèn),更嚴(yán)重的會(huì)造成死鎖。

需要注意的是,P、V操作必須成對(duì)出現(xiàn),有一個(gè)P操作就有一個(gè)V操作。當(dāng)進(jìn)程中涉及多個(gè)P操作的時(shí)候,要注意執(zhí)行順序。若同時(shí)出現(xiàn)關(guān)于同步的P操作和關(guān)于互斥的P操作,則同步P操作放在互斥P操作之前前面;執(zhí)行V操作雖然不會(huì)造成死鎖,在進(jìn)程中的兩個(gè)V操作的位置一般不需特別注意,但V操作的順序可能會(huì)延遲進(jìn)程的推進(jìn),因此在使用完互斥信號(hào)量后要及時(shí)執(zhí)行相應(yīng)的V操作。關(guān)于同步的P、V操作要放在不同的進(jìn)程中,關(guān)于互斥的P、V操作要放在同一進(jìn)程中。

對(duì)于互斥,只要在每個(gè)進(jìn)程中訪問(wèn)臨界資源之前加上相應(yīng)的P操作即可,訪問(wèn)完加上相應(yīng)的V操作;對(duì)于同步,由于可以用前驅(qū)圖表示,那么在前驅(qū)圖中后繼位置的語(yǔ)句之前加上相應(yīng)的P操作,而在前驅(qū)位置的語(yǔ)句之后加上V操作。

簡(jiǎn)單來(lái)說(shuō),進(jìn)程中想控制哪條(或哪幾條)語(yǔ)句就在之前加上P操作。這里的控制包括互斥進(jìn)程對(duì)共享資源的訪問(wèn)控制及合作進(jìn)程對(duì)執(zhí)行的先后次序的控制。當(dāng)一個(gè)進(jìn)程中某個(gè)動(dòng)作要執(zhí)行的時(shí)候,只要需要判斷能不能執(zhí)行,就在之前加上P操作,由P操作幫助進(jìn)程判斷。

四、總結(jié)與展望

本文主要介紹了操作系統(tǒng)中課程中的一個(gè)重點(diǎn)和難點(diǎn)—進(jìn)程同步的學(xué)習(xí)思路和解決問(wèn)題的模型

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論