摘要:本文通過對操作系統實驗課教學內容及實驗環境的分析,提出多實驗平臺下學生通過自由選擇實驗環境更有利于對課程內容的學習的觀點。同時結合多模式化的實驗教學方式,為不同能力不同基礎的學生提供更有效的實驗指導模式,使操作系統實驗教學盡可能發揮其輔助教學的最大作用。
關鍵詞:操作系統;實驗教學;多模式化
中圖分類號:G64 文獻標識碼:B
文章編號:1672-5913(2007)02-0045-03
眾所周知,操作系統是計算機軟件領域中核心的工程性技術。特別是在現代計算機通信系統中,利用操作系統內核所提供的強大功能進行大型通信軟件的設計、開發和維護是極其重要的[1]。
高校的操作系統實驗課,是通過對操作系統功能的模擬和對源代碼的分析實踐,以使學生深入了解操作系統的功能[2],加深對操作系統所涉及的概念、原理的理解,體驗操作系統所涉及的抽象思維的具體實現,特別是隨著網絡操作系統的發展和嵌入式操作系統的廣泛商業應用,學生對實踐的渴望也越來越強烈。
因此,本文就操作系統實驗課實驗內容的設置及實驗環境和教學方法加以分析探討。
1實驗內容及實驗環境
目前國內外有關操作系統的本科教材基本是圍繞存儲器管理、處理機管理、設備管理、文件管理和用戶與操作系統的接口五大功能展開的,那么與理論相配套的實驗也必然是以這五部分為基點,設計相應的實驗內容。由于受到實驗室環境設備、課程安排和學生自身能力等因素的影響,為大學本科的操作系統課選擇合適的實驗內容一直被認為是共性的難題。結合本院實驗教學經驗,筆者對實驗內容設置加以分析。
1.1 實驗內容的設置
依據操作系統的五大功能和實驗平臺,設置了進程控制、進程調度與死鎖、虛擬存儲器管理、設備管理和文件系統5個基本實驗。實驗環境依照現在操作系統的發展趨勢和實際應用范圍,采用了與歐美大學一致的實驗平臺:Windows + Unix/Linux。上述的5個實驗都可以在兩種實驗環境下進行。當然,在不同實驗環境下,同一個實驗雖然實驗重點相同,但在具體實現時是有很大不同的。所以,學生可以選定任一種操作系統完成實驗,求知欲和個人能力強的學生也可以選擇兩種操作系統。
在操作系統實驗指導書中,除了寫明每個實驗的目的和要求等,還給出了每個實驗在不同實驗環境下的實驗重點和難點,以及相關的API函數、Linux常用命令和系統調用列表。
例如在進程控制實驗中:
首先,兩種實驗環境下,實驗目的都是以“生產者—消費者問題”為模型,使學生對新進程的建立以及進程控制塊、進程隊列的概念有一個具體深入的理解,掌握進程的狀態及其轉換、進程控制原語和基本的同步互斥算法。
其次,給出實驗內容,即依照“生產者—消費者問題”模型,創建至少4個進程來模仿生產者和消費者,按照實驗指導書規定的生產和消費規則,采用信號量機制解決,最后輸出的結果至少可觀察到每個進程發出的讀寫操作申請。在實驗中教師會特別給出一個存在死鎖的特例,使學生看到,多個進程并發雖然可以改善系統的資源利用率,但由于共享資源的競爭可能造成一種僵局,使多個進程永遠都不能再向前推進。由此引出了死鎖的概念,為學生后面的學習作下了鋪墊。
再次,給出相應實驗平臺的提示。在Windows環境下,給出相關的API進程管理類函數:CreateThread、CreatMutex、CreateSemaphore、WaitForSingleObject、ReleaseSemaphore、ExitProcess等詳細使用方法。提示學生利用Windows的性能監視器提供的圖形窗口界面管理工具觀察系統的工作情況、資源使用情況和進程運行情況。在Linux環境下詳細給出相關進程、CPU的管理命令和管理類的系統調用,并提示學生重點是fork( )、execve( )和clone( )系統調用。由于大部分學生對Linux不是很熟悉,所以對利用有關命令觀察進程運行情況和CPU工作情況要單獨列出詳細操作方法。
最后,是給出相應的數據結構和程序流程圖。
1.2 實驗環境選擇
是選擇Linux還是Windows操作系統,教師可能有不同的看法。大學本科操作系統實驗課中,在Windows環境下的實驗,基本以VC為開發工具。由于其內核的不開放性,實驗重點放在Windows的應用程序接口API的使用上,利用這些與操作系統原理直接相關的API函數,編寫一些實踐操作系統概念的程序,使學生能將抽象的原理與實際的應用程序聯系起來,便于對抽象概念的理解和具體化。在Linux環境下的實驗,基本也是在系統調用的層次上對學生進行訓練,所不同的是Linux是源代碼公開的免費操作系統,通過對它的學習,學生可以對系統內核代碼進行實際分析,可以無止境地深入學習操作系統的設計原理和技巧[3]。
所以,筆者認為無論哪種操作系統都各有長處,都將拓寬學生的視野,給學生帶來意想不到的收獲,所以在設計實驗內容時同時采用了兩種實驗平臺。
2實驗教學多模式化
國內高校操作系統的實踐教學已經開始向國際先進模式發展。在這種趨勢的影響下,本院采用了多元化的實驗教學模式,操作系統實驗課采用了以下教學方法:
第一,夯實基礎,充分重視基礎性的實驗教學。沒有扎實的基本理論功底,要想進一步深入就無從談起,而操作系統基本原理和概念相對抽象,學生不易理解,所以,只有進行大量的基礎性實踐,才能使學生很好地接受操作系統工作的原理和實現方法,而且可以使學生在程序設計方面也得到基本的訓練。為保證實驗教學質量,我院還采取博士、碩士做TA的制度[4],建立了一支具有較深專業水平的實驗教學梯隊。
第二,重視個性化培養,倡導層次教學法。由于學生的學習能力和興趣的不同,對學生的要求也要分出層次。由于在操作系統課之前,學生已經在Windows環境下用VC做完了高級語言程序設計和數據結構實驗,所以要求學生至少要在Windows環境下用VC完成操作系統實驗。對于少數表現突出、求知欲強的學生,鼓勵使用兩個操作系統實現,當然可以不要求學生在每個操作系統下把實驗都做完,這樣可以拓寬學生知識面并使之從中受益。可見,這種教學方法比較好地體現了“精英式”的個性化教學理念。
第三,積極開展第二課堂。如果單純做操作系統一個功能的實驗,容易使學生感到是在做數據結構作業,所以為了更好地使學生建立宏觀概念,用全局的觀念來理解操作系統,我院借鑒國外的先進經驗,組織專門從事操作系統研究的實驗室成立了團隊形式的學生俱樂部。俱樂部主要實踐內容是:操作系統源代碼分析和自行開發設計一個小而獨立的操作系統。俱樂部主要采取小團隊(通常三人一組)合作形式,在確定題目后,組內每個人各自負責相應的部分,并規定好完成任務的最后期限。在團隊作業的進行中,相關指導教師會定期組織成員進行問題解決方案的討論。因為每個成員都不希望因為自己的工作而影響團隊的最終成績,所以都會盡力完成自己的任務。在設計結束時,指導教師認真給出最后的評價,指出成績與不足。對于完成較好的團隊,給予獎勵,從側面激發學生的學習積極性。通過學生俱樂部形式,既解決了由于實踐難度高而師資力量和數量不足的問題,又可以鍛煉學生的表達與組織能力,同時也是培養學生分工協作,增強團隊精神的有效方法,為學生今后獨立或合作開發研制計算機應用軟件奠定了堅實的基礎。
經實踐證明這種多模式的實驗教學方法,有利于學生理解和掌握操作系統原理,有利于學生提高編寫軟件系統的能力,有利于學生較全面的建立關于計算機系統的概念,是一種適應我國國情的實驗教學方式。
3結論
本文從如何完善操作系統實驗課,使其能夠更好地幫助學生理解消化所學理論的角度出發,依據理論課內容、操作系統的發展趨勢和實際應用范圍,制定了實驗內容并為學生提供了兩種實驗平臺。并在結合本院自身情況下,提出一種多模式化的實驗教學方式,即通過設置TA、成立俱樂部等措施,來保證實驗質量,同時解決了師資不足的問題。通過實際操作,取得了良好的效果。當然,隨著操作系統技術的不斷發展更新,我們要不斷總結實驗教學經驗,進行改革和創新,使實驗教學更好的發揮其應有的作用。
參考文獻:
[1] 王希杰,王立新.《操作系統》教學中的幾點思考[J]. 邢臺學院學報, 2004,19(2):88-89.
[2] 羅宇.操作系統(第三版)[M].北京:機械工業出版社,2005.
[3] 任愛華,李鵬,劉方毅. 操作系統實驗指導[M]. 北京: 清華大學出版社, 2004.
[4] 廖明宏,徐曉飛. 論哈爾濱工業大學計算機教育金字塔體系[J]. 計算機教育,2006,(1):14-19.
投稿日期:2006-08-20
作者簡介:婁久(1977.12-),男(漢族),哈爾濱人,工程師,碩士,研究方向:嵌入式操作系統。