丘靜玉 印 鑒
摘要:本文以進程管理為例討論了游戲教學法在“操作系統”課程教學中的應用,并指出運用該教學方法的意義和注意事項。
關鍵詞:操作系統;游戲;進程管理
中圖分類號:G642 文獻標識碼:B
“操作系統”課程是計算機等相關專業的核心課程,理論性強、概念抽象等是該課程教學中的難點之一。學生普遍的反映之一就是該門課程內容枯燥乏味,學習興趣索然。筆者在多年的教學實踐中不斷地探索激發學生興趣、改進教學效果的方法。其中,游戲教學法就是一個行之有效的“寓教于樂”的辦法。
1進程管理中的游戲教學
進程模型和并發機制是進程管理教學中的兩個重要內容,本節給出筆者針對這兩個內容分別設計的兩個集體游戲。
(1) 進程模型
進程是多道程序系統中用來描述執行實體的概念,進程在其生命周期里會處于不同的狀態,進程模型正是用來描述進程的不同狀態以及狀態之間的轉換關系的抽象模型。進程模型中有兩個關鍵問題:一是應該定義哪些狀態,二是不同狀態間的轉換關系和條件。為了讓學生更好地理解經典進程模型,筆者設計了一個集體游戲如下:
游戲角色:由A、B和C三個同學分別扮演分時系統中正在執行的進程,其中進程B運行過程中需要等待I/O操作。另由一個同學D扮演操作系統(兼CPU的分派者)。此外再請一個同學在旁邊計時,每個時間片結束的時候給一個信號提示。
游戲道具:一個CPU(可以拿任何東西代替,如一個大蘋果)。
游戲規則:進程A、B和C在沒有CPU在手的時候均不能進行任何動作(為直觀起見,等待I/O以半蹲表示),得到CPU后可自由活動(內容可指定或請學生自行決定,如在黑板上畫畫、唱歌等等),一個時間片結束、運行結束或等待I/O操作的時候需要將CPU交回給D。D循環地按照A、B、C的順序分派CPU,前提是該進程沒有結束且沒有在等待其他事件。
請其他學生觀看游戲的時候思考2個問題:每個同學有哪些不同的行為表現?他們是如何在這些不同的行為中轉換的?
游戲后,與學生一起分析這2個問題,很自然地,學生會首先想到兩種不同行為,即是“有CPU”和“沒有CPU”,且進程在它的生命周期中就在這兩種行為之間相互轉換,從而馬上可以得到最簡單的兩狀態模型(如圖1(a)),同時可知D的工作就是將CPU分派給一個處于“未運行”狀態的進程。這時,再請學生思考:A時間片用完而B又在等待I/O時處于“未運行”的進程有B和C,這時D該將CPU分派給B還是C?很容易可以得到該問題的答案,從而提示學生其實這時候B和C的狀態還是有區別的,因而水到渠成地引出了經典的三狀態模型(如圖1(b))。

(2) 信號量并發機制
信號量是重要的進程并發機制之一,為了讓學生較好地理解并能應用信號量,最好的辦法是讓學生理解信號量的物理意義,“點名”游戲(圖2)正是為此而設計的:
游戲角色:“寫者”負責設計問題,一次可以在紙上寫一個問題并指定該問題的回答者(如“你認為誰是本班最可愛的人? 張三”);“讀者”負責宣讀問題,一次可以讀出在紙上的一個問題以及指定的答題者(即被點名者);被點名者則務必回答問題。所有同學都是潛在的游戲參與者。

游戲道具:一支筆和一張用來在上面寫問題的紙。兩個信號量計數器(寫在黑板上即可):一個是讀信號量,初值為2;另一個是寫信號量,初值為1。
游戲規則:讀者/寫者按以下步驟活動:
(1) 對相應的讀/寫信號量進行P操作,即計數器減1,如果減1后相應的計數器不為負數(≥0)則轉(2),否則等待。
(2) 進行讀/寫。
(3) 對相應的讀/寫信號量進行V操作,即計數器加1,如果加1后相應的計數器為非正數(≤0)則轉(4),否則轉(5)。
(4) 通知一個等待的同學轉(2)。
(5) 結束。
請所有同學注意觀察游戲中信號量計數器值的變化與讀者/寫者(在進行的或在等待的)數量的關系,從而可以很自然地引導學生認識到信號量的物理意義:信號量的計數器的值代表了某類資源的可用數(若該資源一次只允許一個進程使用,則相應信號量初值應設為1);P操作相當于是申請一個單位的資源;V操作者是相當于釋放一個單位的資源;而計數器變成負值-N時,則表示有N個進程在等待該資源。在此基礎上,教師還可以舉進一步的例子讓學生體會從“資源”的角度去使用信號量解決更多更廣泛的進程同步和互斥的問題。
2游戲教學的注意事項
在游戲教學中,游戲是載體,教學是目的,為了取得最佳的效果,教師在使用游戲教學中應注意以下幾個方面的問題:
首先,游戲的設計要切題,不能為樂而樂,而應緊扣教學內容,將理論知識融入到游戲中去。這要求教師對課程內容非常熟悉。
其次,要充分激發學生的參與熱情,只有親身參與,學生的主觀能動性才能充分發揮。因此,游戲應有趣且貼近學生生活,并給參與者主觀能動和自我展示的空間,同時在游戲過程中教師也要多多鼓勵,營造良好的氣氛。
最后,教師不能只作旁觀者,應注意引導、啟發學生自己去發現問題、解決問題,同時也要注意引申和總結。事實上,這也是教學互長的一個重要手段。
實踐證明,在操作系統課程教學中適當使用游戲教學法,不但可以活躍課堂氣氛,激發學生學習興趣,更重要的是可以將理論知識形象化、具體化,幫助學生理解操作系統各方面理論的問題來源、提出辦法以及實現依據,使學生從“灌輸式”教學中的被動方變成發現問題、解決問題的主動方,充分發揮學生的潛能,大大提高課堂效率。
參考文獻:
[1] William Stallings. 操作系統——精髓與設計原理[M].5版. 北京:電子工業出版社,2006.
[2] 孟靜. 操作系統教程題解與實驗指導[M]. 北京:高等教育出版社,2002.
[3] 宋子慧. 大學專業課程教學中運用游戲教學的嘗試[J]. 文教資料, 2007(11):45-47.