申鴻燁++張寧


摘要: 操作系統課程是計算機應用專業的必修課程,由于比較抽象,傳統的網絡教學效果一直不是很好。本文提出了面授與遠程教育相結合的解決方案,在網絡微課程的知識點中引入案例教學方法,并以進程死鎖為例,從過獨木橋的事例逐步過渡到進程間占有資源和申請資源的方法。通過循序漸進、貼切恰當的教學案例,有效提高了學生的學習興趣,降低了學生對知識點的接受難度,達到理想的教學效果,得到了多平臺環境下遠程終身教育課件建設的目的。
關鍵詞: 案例教學; 案例引入; 網絡微課程
中圖分類號:G642
文獻標志碼:A
文章編號:2095-2163(2017)04-0102-03
0引言
操作系統課程是計算機應用專業的必修課程,在專業課程中占有重要的地位。操作系統是為裸機配置的系統軟件,是用戶和用戶程序與計算機之間的接口,是用戶程序和其它系統程序的運行平臺和環境。操作系統可以有效地控制和管理計算機系統中的各種硬件和軟件資源,合理地組織計算機系統的工作流程,最大限度地方便用戶使用機器,發揮資源的潛在效能與執行作用。在操作系統課程中,學生將會掌握進程管理、處理機調度、存儲管理、文件管理、設備管理等內容,掌握操作系統控制和管理計算機的方法,是一門理論性與實踐性并行等重的綜合性課程。該課程的先修課程是程序設計語言、計算機組成原理、數據結構等,該課程直接影響到學生對計算機運行體系的認知,因此具有重要意義。目前,在我校的開放教育教學環境下,學生多數是成人在崗學生,和全日制院校相比,平時工作繁忙,學習的連貫性不強,而操作系統課程由于涉及的課程、知識面都很廣,學習難度相對較大。
遠程教育學生的學習模式存在以下問題:業余時間參與學習,僅僅依靠面授模式,知識點較多,很多概念偏于抽象,影響學生學習興趣,教育效果也難于趨近理想設定。
另外,由于教學計劃中安排的課程學時有限,相對全日制院校,成人學生只有晚間或者休息日的時間來學習,理論課程比較多。在這種情況下,研究高校采用面授和實訓相結合的教學模式,即安排面授課程,同時也設立網絡教學課程。其中,面授課程可以保證學生與教師真實交流,從而充分理解傳授課程內容,而網絡課程則通過學習平臺加載課件微課程等學習資源,學生與學生、教師與學生之間可以有效引入異地交流,真正實現任何時間、任何地點,隨時隨地參與學習的研究目的。
基于此,本文即針對計算機專業操作系統課程的案例教學模式進行了研究,期望通過該種教學模式的設計探討,可以積極調動學生學習積極性,培養學生的學習興趣,進而提升、并改善學生的自學能力。
1案例教學模式
案例教學模式是由哈佛大學最先提出,旨在針對某一學習目標,抽象提取某真實案例,并進行典型化處理,供學生圍繞相關主題展開研究和討論,達到學生自主研究學習效果,拓展其學習需求,并且進一步提高解決問題和分析問題的能力。
在操作系統課程中,有些問題比較抽象,例如進程管理中的生產者消費者問題、哲學家問題、作業管理的先來先服務算法、磁盤調度的最短尋道時間優先算法等,為便于學生理解,可以將知識點設計為案例教學模式,輔助學生消化吸收,直至透徹應用理解。
2教學設計舉例
死鎖是進程死鎖的簡稱,是由Dijkstra于1965年研究銀行家算法時首次提出的,是計算機操作系統乃至并發程序設計中的難點講解問題之一。死鎖是進程管理中的重要概念,在計算機系統中有很多一次只能由一個進程使用的資源,包括:打印機、磁帶機、文件等。在多道程序設計時,多個進程常常需要共享這些資源,而且一個進程所需要的資源不止一個。這樣,就會出現若干進程競爭有限資源,又推進順序不當,從而構成無限期循環等待的局面。這種狀態就是死鎖。死鎖的危害在于:不僅要浪費大量的系統資源,甚至導致整個系統崩潰,帶來災難性后果。操作系統中的死鎖問題是學生學習的重點和難點,在理論和技術上都亟待給予高度重視。
2.1案例的引入
單純從字面學習死鎖,比較抽象不好理解,因此可以借助非線性編輯軟件Edius開發微課程課件實現相關的教學設計。相關案例可以從日常生活中的例子說起,例如,有條河上有一座橋,橋面較窄,只能容納一輛汽車通過,無法讓2輛汽車對向同時通過。如果有2輛汽車A和B分別由橋的兩端駛上該橋,則出現互相頂牛的現象,如圖1所示。
以A車為例,該車走過橋面左邊的橋面,相當于占據了橋的部分資源,如果要通過橋面需要等待B車讓出其右側橋面,否則A車無法前進;同理,對于B車,若走過橋面右邊的橋面,也相當于占據了橋的另一部分資源,如果要想過橋面還須等待A車讓出其左邊橋面,否則B車也無法前進。如果A、B兩車都不退讓,必將造成2車互相等待對方讓出橋面,但是誰也不率先讓路的情形,如此無休止地等待,無限循環,這種現象叫做“死鎖”。
在網絡微課程中,首先設計給出上述現實生活中的案例,隨后進一步拓展,將汽車比喻為進程,橋面比喻為資源,則上述問題隨即演變為:進程A占有某資源甲(左側橋面),等待進程B釋放其占有的資源乙(右側橋面);進程B占有資源乙,等待進程A占有的資源甲,而且資源甲、乙,只允許一個進程占用,即:不允許2個進程同時占用。
在此基礎上,繼而推廣到計算機系統中,軟件、硬件資源都可能發生死鎖。例如:系統中只有一臺CD-ROM驅動器和一臺打印機,某一個進程占有了CD - ROM驅動器,再申請打印機;另一個進程占有了打印機,申請CD-ROM。如此,2個進程都被阻塞,如果沒有外力作用,均將無法使用自身力量破解這種死鎖關系,后果就是2個進程都無法繼續執行。再不采取其它措施,這種循環等待狀況將無限期持續下去,也就是所說的死鎖,圖例示意則如圖2所示。
在詳細論述了死鎖案例之后,進而在微課程中及時歸納出死鎖的定義,即所謂死鎖,是指在一個進程集合中的每個進程都在等待僅由該集合中的另一個進程才能引發的事件而無限期地僵持下去的局面。然后,適時提出死鎖定義:在多數情況下,進程是在等待該集合中另一個進程釋放其所占有的資源。也就是說,每個進程都期待獲得另一個進程正占用的資源。由于集合中的所有進程都不能運行,因而誰也不會釋放資源,導致最終陷入死鎖。endprint
2.2案例的拓展
[HT5”SS][ST5”BZ][WT5”BZ]
隨后,可以引申到多個進程死鎖的問題,同樣以交通問題為例, 即如圖3所示, 在一個多岔路口,每個方向的車輛都占據了一部分道路(相當于資源),都等待其它方向車輛讓開自己想去的方向,互不相讓,結果導致全部卡在路口不得動彈,仍然將汽車比喻為進程,橋面比喻為資源,就可以展示獲得由2個進程的死鎖推廣拓展到多個進程死鎖。
綜上分析后,可以歸納出死鎖的癥結所在,即計算機系統產生死鎖的根本原因就是資源有限但卻操作不當,無法滿足并發進程對資源的需求,由此推演可得:一方面,可能是由于系統提供的資源太少,也可能是由于進程推進順序未能臻至合理,造成互相都占據了一部分資源,又等待其它進程釋放本體所需資源,這種資源訪問順序的不合理也可能造成死鎖。
在微課程課件的結論設計中,總結了產生死鎖的4個必要條件,并提出,破解任一條件即可避免死鎖,具體如下:
1)互斥條件:一個資源每次只能被一個進程使用。
2)請求與保持條件:一個進程在請求資源被阻塞時,對自身已經獲得的資源仍然未予釋放。
[JY](下轉第107頁)[FL)]
3)不剝奪條件:進程已獲得的資源,在末使用完之前,不能被強行剝奪掉。
4)循環等待條件:若干進程之間形成一種頭尾相接的循環等待資源關系。
如果要避免死鎖,只要消除上述任何一個條件即可杜絕死鎖的發生。
最后,微課程還給出了課后思考題,使得學生在學習之余再次梳理、并深入思考死鎖的起因和解決方案。
3結束語
本文擬針對基于網絡教學的案例教學的具體實例“死鎖”展開探討研究。遠程教育不同于常規的面授教育,該種教育具有任何時間、任何地點隨時隨地參與學習的優點,但卻也面臨著無法如面授課程一樣隨時提問答疑解惑的弊端限制,通過循序漸進、重點貼切的案例教學,設計研發了這種面授+遠程教育的學習模式,有效提升了學生的學習興趣,降低了學生對知識點的接納難度,最終取得了理想的教學效果,從而達到了多平臺環境下遠程終身教育課件建設的預期目的。
參考文獻:
[1] 孟慶昌. 操作系統[M]. 北京:中央廣播電視大學出版社,2008.
[2] (美)斯托林斯. 操作系統:精髓與設計原理[M]. 北京:機械工業出版社,2010.
[3] 張堯學,宋虹,張高. 計算機操作系統教程[M]. 4版. 北京:清華大學出版社,2013.
[4] TANENBAUM A S. 操作系統設計與實現[M]. 北京:電子工業出版社,2015.
[5] 王紅. 操作系統原理及應用學習指導、習題解析與實訓[M]. 北京:水利水電出版社,2009.
[6] 陸松年,訾小超,潘理,等. 操作系統習題與應用解析[M]. 北京:清華大學出版社,2012.endprint