亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向操作系統(tǒng)課程的“啟發(fā)—探究式”教學(xué)方法初探

        2011-01-01 00:00:00劉曉
        計(jì)算機(jī)教育 2011年2期


          摘要:操作系統(tǒng)課程具有概念知識點(diǎn)較多、涉及內(nèi)容較廣、算法繁多復(fù)雜等特點(diǎn),學(xué)生不易理解和掌握。針對上述問題,文章提出將“啟發(fā)—探究式”教學(xué)方法應(yīng)用于操作系統(tǒng)的教學(xué)中,并以“生產(chǎn)者—消費(fèi)者”問題為例,闡述了“啟發(fā)—探究式”教學(xué)方法在實(shí)際教學(xué)過程中的應(yīng)用。實(shí)踐證明,該方法在操作系統(tǒng)的教學(xué)過程中取得了良好的效果。
          關(guān)鍵詞:啟發(fā)式教學(xué);探究式教學(xué);操作系統(tǒng);生產(chǎn)者—消費(fèi)者問題
          
          教學(xué)方法是教師和學(xué)生為實(shí)現(xiàn)教學(xué)目的、完成教學(xué)任務(wù)所采取的相互作用的手段和一整套方式。它既包括教師教的方法,也包括學(xué)生學(xué)的方法,是教授方法與學(xué)習(xí)方法的統(tǒng)一。然而,實(shí)際教學(xué)過程中往往由于課時(shí)、教學(xué)設(shè)施等條件的限制減少了學(xué)生的參與,從而忽略了教學(xué)成功的基本標(biāo)準(zhǔn)是學(xué)生的學(xué)習(xí)動(dòng)機(jī)以及學(xué)生對學(xué)習(xí)的參與程度這一事實(shí)。因此,結(jié)合具體的教學(xué)內(nèi)容,設(shè)計(jì)出合理的教學(xué)方法,在傳道授業(yè)解惑的同時(shí)充分調(diào)動(dòng)學(xué)生的積極性,真正實(shí)現(xiàn)教法與學(xué)法的辯證統(tǒng)一,應(yīng)是教育工作者不斷追求的目標(biāo)。
          胡一之[1]針對操作系統(tǒng)課程難教難學(xué)的現(xiàn)狀,探討了如何調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,提高操作系統(tǒng)教學(xué)質(zhì)量的方法;金海東[2]等以操作系統(tǒng)中進(jìn)程同步與互斥問題為實(shí)例,探討了如何從學(xué)習(xí)者的角度設(shè)計(jì)循序漸進(jìn)的教學(xué)內(nèi)容;張坤[3]總結(jié)了在操作系統(tǒng)教學(xué)過程中可以運(yùn)用雙語教學(xué)、分層次教學(xué)以及任務(wù)式驅(qū)動(dòng)等教學(xué)方法。以上文獻(xiàn)均是對操作系統(tǒng)教學(xué)方法進(jìn)行的有益實(shí)踐。
          筆者結(jié)合多年的教學(xué)、科研經(jīng)驗(yàn),對操作系統(tǒng)課程的教學(xué)方法進(jìn)行了深入的思考和積極的探索。操作系統(tǒng)課程具有概念知識點(diǎn)較多、涉及內(nèi)容廣泛、算法繁多復(fù)雜等特點(diǎn),它對學(xué)生的理解能力和邏輯思維能力提出了更高的要求,而傳統(tǒng)的以教師講解為主的教學(xué)模式并不能取得良好的教學(xué)效果?!皢l(fā)—探究式”教學(xué)方法與傳統(tǒng)的灌輸式教學(xué)不同,它更強(qiáng)調(diào)學(xué)生在教師的引領(lǐng)和啟示下,主動(dòng)參與到發(fā)現(xiàn)問題、尋求答案的過程中,從而可以讓學(xué)生真正理解所學(xué)內(nèi)容,提高了他們獨(dú)立思考、解決問題的能力。
          因此,針對操作系統(tǒng)課程的特點(diǎn),本文提出將“啟發(fā)—探究式”教學(xué)方法應(yīng)用于操作系統(tǒng)的教學(xué)中,并以“生產(chǎn)者—消費(fèi)者”問題為例,闡述“啟發(fā)—探究式”教學(xué)方法在實(shí)際教學(xué)過程中的應(yīng)用。
          1問題描述與分析
          “生產(chǎn)者—消費(fèi)者”問題可簡單描述為:有一群生產(chǎn)者進(jìn)程在生產(chǎn)產(chǎn)品,并將這些產(chǎn)品提供給消費(fèi)者進(jìn)程去消費(fèi)。為使生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程能并發(fā)執(zhí)行,在兩者之間設(shè)置一個(gè)具有N個(gè)緩沖區(qū)的緩沖池。生產(chǎn)者進(jìn)程可以將其所生產(chǎn)的產(chǎn)品放入一個(gè)緩沖區(qū)中,消費(fèi)者進(jìn)程可以從一個(gè)緩沖區(qū)中取得產(chǎn)品去消費(fèi)。盡管所有的生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程都是以異步方式進(jìn)行的,但他們之間必須保持同步,既不允許消費(fèi)者進(jìn)程到一個(gè)空的緩沖區(qū)中去取產(chǎn)品,也不允許生產(chǎn)者進(jìn)程向一個(gè)已裝滿產(chǎn)品且尚未被取走的緩沖區(qū)中投放產(chǎn)品[4]。
          在西安電子科技大學(xué)出版的《計(jì)算機(jī)操作系統(tǒng)》[4]教材中,“生產(chǎn)者—消費(fèi)者”問題被安排在臨界資源和臨界區(qū)、信號量機(jī)制與應(yīng)用之后的章節(jié),雖然有了前面知識的鋪墊,但是對于學(xué)生理解和掌握“生產(chǎn)者—消費(fèi)者”問題還是有一定難度。筆者借鑒了概念設(shè)計(jì)中功能分解[5-7]的思想嘗試將復(fù)雜的“生產(chǎn)者—消費(fèi)者”問題分解為幾個(gè)子問題,在教學(xué)過程中通過引導(dǎo)學(xué)生對子問題的求解,加深對復(fù)雜問題的理解,最終循序漸進(jìn)地解決“生產(chǎn)者—消費(fèi)者”問題。
          因?yàn)椤吧a(chǎn)者—消費(fèi)者”問題中有兩個(gè)主要的變化因素,一是生產(chǎn)者、消費(fèi)者的數(shù)量,二是緩沖區(qū)的數(shù)量。通過改變以上兩個(gè)變量,可以得到4個(gè)問題,即單緩沖區(qū)的“單生產(chǎn)者—消費(fèi)者”問題(簡稱單人單緩問題)、多緩沖區(qū)的“單生產(chǎn)者—消費(fèi)者”問題(簡稱單人多緩問題)、單緩沖區(qū)的“多生產(chǎn)者—消費(fèi)者”問題(簡稱多人單緩問題)以及多緩沖區(qū)的“多生產(chǎn)者—消費(fèi)者”問題(即“生產(chǎn)者—消費(fèi)者”問題)。解決前3個(gè)問題可以為最終解決“生產(chǎn)者—消費(fèi)者”問題做鋪墊,因此下面先從單人單緩問題入手,試圖通過教師的啟發(fā)和學(xué)生的自主探究最終解決“生產(chǎn)者—消費(fèi)者”問題。
          2單人單緩問題
          已知條件:活動(dòng)進(jìn)程僅有一個(gè)生產(chǎn)者Producer和一個(gè)消費(fèi)者Consumer,共享一個(gè)緩沖區(qū)。
          【啟發(fā)2-1】在學(xué)習(xí)完進(jìn)程互斥問題之后,如果直接應(yīng)用互斥模型解決單人單緩問題,是否可行?
          【探究】如果用互斥模型,可以讓學(xué)生獨(dú)立寫出相應(yīng)的算法:(初始化s=1)
          通過共同分析可知,以上算法雖然保證了進(jìn)程間互斥訪問緩沖區(qū),但是它允許Consumer在Producer未生產(chǎn)任何產(chǎn)品之前讀取緩沖,這并不符合常理。因此,可以得出以下結(jié)論:
          1) 單人單緩問題不適宜用互斥模型解決,因?yàn)镻roducer和Consumer并不屬于同等地位,它們的調(diào)度優(yōu)先級是不同的。
          2)Producer和Consumer之間不僅有對緩沖區(qū)的互斥操作,還應(yīng)有協(xié)調(diào)合作。只有在Producer向緩沖區(qū)放入產(chǎn)品后,Consumer才能夠從緩沖區(qū)中取出產(chǎn)品消費(fèi);另一方面,只有當(dāng)Consumer從緩沖區(qū)取出產(chǎn)品后,Producer才能夠繼續(xù)向緩沖區(qū)中放入新產(chǎn)品。因此,可以對學(xué)生引出進(jìn)程同步的含義,即某些并發(fā)的進(jìn)程,在某些關(guān)鍵點(diǎn)上互通信息,相互協(xié)調(diào),共同完成任務(wù)。有些教材將進(jìn)程互斥歸結(jié)為進(jìn)程同步問題,筆者持不同觀點(diǎn)。筆者認(rèn)為進(jìn)程同步與進(jìn)程互斥是有本質(zhì)區(qū)別的,應(yīng)該加以區(qū)分。
          【啟發(fā)2-2】互斥模型不能用來解決單人單緩問題,那應(yīng)該怎么做?
          【探究】由以上分析可知,僅僅使用一個(gè)信號量來控制緩沖區(qū)已不能完全解決單人單緩問題,還需要再增加信號量用來協(xié)調(diào)Producer和Consumer之間的同步。那么,設(shè)置信號量empty給Producer提供空緩沖區(qū)同步信號,設(shè)置信號量full給Consumer提供滿緩沖區(qū)同步信號。當(dāng)Producer往緩沖區(qū)放產(chǎn)品前就要申請一個(gè)空緩沖區(qū),放入產(chǎn)品之后就要釋放一個(gè)滿緩沖區(qū)信號。Consumer則在取走產(chǎn)品前申請滿緩沖區(qū),取產(chǎn)品后釋放一個(gè)空緩沖區(qū)信號。那么,可以引導(dǎo)學(xué)生對上述算法進(jìn)行修改,從而得到如下算法(因?yàn)樽畛蹙彌_區(qū)為空,所以初始化empty=1,full=0):
           以上算法不僅保證了Producer和Consumer之間不能同時(shí)訪問緩沖區(qū),而且保證了Producer和Consumer之間的同步。
          3多人單緩問題
          已知條件:活動(dòng)進(jìn)程有多個(gè)生產(chǎn)者Producer和多個(gè)消費(fèi)者Consumer,共享一個(gè)緩沖區(qū)。
          【啟發(fā)3-1】多人單緩問題與上述的單人單緩問題相比,有何變化?
          【探究】多人單緩問題的生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程由原來的一個(gè)變成了多個(gè),那么訪問緩沖區(qū)的策略就要做相應(yīng)改變。此時(shí),不僅Producer和Consumer之間要互斥地訪問緩沖區(qū),不同的Producer進(jìn)程之間、不同的Consumer進(jìn)程之間也要互斥地訪問緩沖區(qū),而Producer和Consumer之間的同步關(guān)系保持不變。
          【啟發(fā)3-2】對于上述變化,應(yīng)如何反映在算法中?
          【探究】通過分析,學(xué)生們發(fā)現(xiàn)因?yàn)橹挥幸粋€(gè)緩沖區(qū),信號量empty和full的最大值均為1。因此,上述單人單緩問題的算法保證了不同的Producer進(jìn)程之間、不同的Consumer進(jìn)程之間以及Producer和Consumer之間均不能同時(shí)訪問緩沖區(qū),在解決同步問題的同時(shí)也包含了對互斥的處理。因此,多人單緩問題的算法同單人單緩問題的實(shí)現(xiàn)是一樣的。
          
          4單人多緩問題
          已知條件:活動(dòng)進(jìn)程只有一個(gè)生產(chǎn)者Producer和一消費(fèi)者Consumer,共享n個(gè)緩沖區(qū)。
          【啟發(fā)4-1】單人多緩問題與上述的單人單緩問題相比,有何變化?
          【探究】與上述的單人單緩問題相比,單人多緩問題在緩沖區(qū)數(shù)量上由原來的一個(gè)變成了多個(gè),那么對緩沖區(qū)的存取就要相應(yīng)的改變策略。此時(shí),允許Producer在空緩沖區(qū)放入產(chǎn)品的同時(shí),Consumer在滿緩沖區(qū)取出產(chǎn)品。
          【啟發(fā)4-2】對于上述變化,應(yīng)如何反映在算法中?
          【探究】此時(shí),需要分別設(shè)置變量來控制Producer在緩沖區(qū)中放入產(chǎn)品的位置和Consumer取出產(chǎn)品的位置。
          如果用隊(duì)列實(shí)現(xiàn)緩沖區(qū)存取管理,那么可以設(shè)置變量in和out分別記錄存、取位置變化,初值均為0。empty初值為n,full初值為0。則可以用以下語句中的(1)代替單人單緩算法中的語句(1),用語句(2)代替單人單緩算法中的語句(2),從而解決單人多緩問題。
          【啟發(fā)4-3】in和out均是指向緩沖區(qū)的指針,那么能否省略in或out,節(jié)省一個(gè)變量?
          【探究】學(xué)生們對設(shè)置兩個(gè)變量記錄存、取位置的變化有些不解,還有學(xué)生推導(dǎo)出了公式說明可以節(jié)省變量out。
          公式的結(jié)果可能是正確的,但是同學(xué)們卻忽略了信號量的由來和意義。因此,試圖讓學(xué)生們思考如果可以通過公式省略變量,那么為什么沒有這么做,以及信號量的意義是什么。
          很快,學(xué)生們就發(fā)現(xiàn)了問題的答案。信號量機(jī)制是進(jìn)程同步的工具,Dijkstra最初定義整型信號量S時(shí)就規(guī)定,除初始化外,僅能通過兩個(gè)標(biāo)準(zhǔn)原子操作wait(S)和signal(S)來訪問。也就是說,信號量是不能參與運(yùn)算的,這是和變量的一個(gè)區(qū)別。
          【啟發(fā)4-4】如果用堆棧實(shí)現(xiàn)緩沖區(qū)存取管理,應(yīng)該怎樣實(shí)現(xiàn)?
          【探究】隊(duì)列的實(shí)現(xiàn)講解完,就可以讓學(xué)生思考如何用堆棧來實(shí)現(xiàn)同樣的目的,看看他們是否真正理解了單人多緩問題的解決方法。
          5 “生產(chǎn)者—消費(fèi)者”問題
          通過解決上述3個(gè)問題,可以順利進(jìn)入到對多緩沖區(qū)的“多生產(chǎn)者—消費(fèi)者”問題的解答,而多緩沖區(qū)的“多生產(chǎn)者—消費(fèi)者”問題即為經(jīng)典的“生產(chǎn)者—消費(fèi)者”問題。這里,依然采用“啟發(fā)—探究式”教學(xué)方法對這一問題給出解決思路。
          【啟發(fā)5-1】對于“生產(chǎn)者—消費(fèi)者”問題,如果直接使用單人多緩問題的算法,會(huì)出現(xiàn)什么問題?
          【探究】假設(shè)有兩個(gè)不同的生產(chǎn)者進(jìn)程 和 , 生產(chǎn)一個(gè)產(chǎn)品放入Buffer中,在 之前時(shí)間片到。然后, 又生產(chǎn)一個(gè)產(chǎn)品,則會(huì)放入Buffer中同一位置,從而產(chǎn)生錯(cuò)誤。
          因此,“生產(chǎn)者—消費(fèi)者”問題要保證Producer之間互斥地訪問緩沖區(qū)。同理,Consumer之間也要互斥地訪問緩沖區(qū)。
          【啟發(fā)5-2】那么,Producer和Consumer之間是否要互斥地訪問緩沖區(qū)呢?
          【探究】根據(jù)單人多緩問題的分析可知,Producer和Consumer之間不需要完全地互斥。因此,可以根據(jù)Producer和Consumer之間是否互斥地訪問緩沖區(qū)將問題分為兩種情況:
          1) 允許一個(gè)Producer在空緩沖區(qū)放入產(chǎn)品的同時(shí),另一個(gè)Consumer在滿緩沖區(qū)取產(chǎn)品。但Producer之間以及Consumer之間要互斥訪問緩沖區(qū)。
          2)Producer和Consumer之間互斥訪問緩沖區(qū),且Producer之間以及Consumer之間均互斥訪問緩沖區(qū)。
          關(guān)于情況1),筆者已在文獻(xiàn)[8]中進(jìn)行了詳細(xì)的闡述,在此不再贅述。
          在情況2)中要保證Producer和Consumer之間、Producer之間以及Consumer之間均互斥訪問緩沖區(qū)。那么,可以利用互斥信號量mutex實(shí)現(xiàn)諸進(jìn)程對緩沖區(qū)的互斥使用。這個(gè)問題的實(shí)現(xiàn)即是一般操作系統(tǒng)教材中給出的“生產(chǎn)者—消費(fèi)者”問題的算法。
          【啟發(fā)5-3】在生產(chǎn)者算法中,能否調(diào)換wait(empty)和wait(mutex)的位置?能否調(diào)換signal(mutex)和signal(empty)的位置?在消費(fèi)者算法中,能否調(diào)換wait(full)和wait(mutex)的位置?能否調(diào)換signal (mutex)和signal(full)的位置?
          【探究】上述問題均是在實(shí)際教學(xué)過程中總結(jié)出來的,通過讓學(xué)生獨(dú)立解決以上問題,可以加深學(xué)生對wait操作和signal操作的理解,以及與互斥信號量同時(shí)使用時(shí)需要注意的順序問題。
          最終,通過“啟發(fā)—探究式”教學(xué)方法可以讓學(xué)生充分理解信號量在解決進(jìn)程同步和互斥問題時(shí)的應(yīng)用機(jī)制,可以引導(dǎo)學(xué)生總結(jié)出以下結(jié)論:
          1) “生產(chǎn)者—消費(fèi)者”算法中用于實(shí)現(xiàn)互斥的wait (mutex)和signal(mutex)需要成對地出現(xiàn)。對資源信號量empty和full的wait和signal操作也需要成對地出現(xiàn),但它們分別處于不同的程序中。
          2)wait操作順序不能顛倒。應(yīng)先執(zhí)行對資源信號量的wait操作,然后再執(zhí)行對互斥信號量的wait操作,否則可能引起進(jìn)程死鎖。
          3)signal操作順序可以顛倒,不會(huì)引起阻塞,但是會(huì)影響效率。
          6結(jié)語
          本文針對操作系統(tǒng)課程的特點(diǎn),提出了適用于操作系統(tǒng)課程的“啟發(fā)—探究式”教學(xué)方法,并以“生產(chǎn)者—消費(fèi)者”問題為例,闡述了該方法在教學(xué)過程中的應(yīng)用。經(jīng)驗(yàn)證,這種“啟發(fā)—探究式”教學(xué)方法能夠充分調(diào)動(dòng)學(xué)生的積極性,進(jìn)一步加深學(xué)生對進(jìn)程同步問題中相關(guān)知識點(diǎn)的理解,取得了良好的教學(xué)效果。同時(shí),這種教學(xué)方法對操作系統(tǒng)中其他問題的講解乃至計(jì)算機(jī)領(lǐng)域其他課程的教學(xué)均具有一定的借鑒作用。
          注:致謝:感謝合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院胡學(xué)鋼教授認(rèn)真的指導(dǎo)以及VCC研究室唐益明博士、余燁博士、杜琳碩士、沈冠町碩士的積極討論。
          
          參考文獻(xiàn):
          [1] 胡一之. 調(diào)動(dòng)學(xué)生

        精品在免费线中文字幕久久| 人妻精品久久久久中文字幕69| 国产高潮视频在线观看| 亚洲日韩乱码中文无码蜜桃臀| 91久久国产自产拍夜夜嗨| 熟妇人妻丰满少妇一区 | 一本大道久久a久久综合| 蜜桃在线观看免费高清| 人成综合视频在线播放| 久久青青草原亚洲av无码麻豆| 人妻在卧室被老板疯狂进入国产| 东京热无码人妻中文字幕| 日本a爱视频二区三区| 国产欧美一区二区精品久久久| 人妻妺妺窝人体色www聚色窝| 亚洲欧洲一区二区三区波多野| 免费蜜桃视频在线观看| 欧美老妇交乱视频在线观看 | 国产精品亚洲av无人区一区香蕉| 精品淑女少妇av久久免费| 国产精品一区二区av片| 亚洲成在人网站天堂日本| 亚洲 欧美 综合 在线 精品| 国产内射999视频一区| 日本高清一区二区不卡视频| 一区二区三区高清视频在线| 精品国产偷窥一区二区| 玩两个丰满老熟女| 亚洲美女国产精品久久久久久久久| 国产精品国产三级国产剧情| 久久久久久亚洲av成人无码国产 | 很黄很色很污18禁免费| 人妻无码久久一区二区三区免费| 鲁丝一区鲁丝二区鲁丝三区| 日本不卡一区二区三区久久精品| 色欲aⅴ亚洲情无码av| 国产精品一区二区电影| 亚洲精品一区二区三区蜜臀| 国产精品亚洲第一区二区三区| 国产成人av性色在线影院色戒| 亚洲av成人在线网站|