摘要:“操作系統”課程是計算機科學與技術專業的重要專業基礎課之一,也是該專業研究生入學考試的四門專業統考課程之一,使學生很好地掌握這門課程的相關知識顯得尤為重要。本文總結了筆者多年的教學實踐經驗,提出抓住主線、注意與前導課程的關系、緊密聯系實際的操作系統、注重課程的實驗環節、關注操作系統理論與實踐的發展前沿,是講好這門課的關鍵。
關鍵詞:操作系統教學;教學實踐;教學體會
中圖分類號:G642 文獻標識碼:B
“操作系統”課程是計算機科學與技術專業的重要專業基礎課之一,教育部規定從2009年起把它列為計算機專業研究生入學考試的四門專業統考課程之一,由此可見“操作系統”這門課的重要性。“操作系統”是門理論性和實踐性都十分強的課程,由于操作系統在計算機系統中的特殊地位使得它既看不到又摸不到,又是處在不斷地變化過程中,這樣導致人們在感性上接受它比較困難,進而在理論上理解它存在較大難度,從而使得“操作系統”門課程變得不易理解和掌握。如何把這門課程講好,讓學生很好地理解并掌握操作系統的相關概念、原理、方法、技術和實現是十分重要的。經過多年的教學實踐深刻體會到講好這門課必須抓住這門課的主線、注意與前導課程的關系、緊密聯系實際的操作系統、注重課程的實驗環節,同時關注操作系統理論與實踐的發展前沿。
1抓主線
研究操作系統的主要觀點有資源管理的觀點、進程的觀點、用戶的觀點、微內核觀點等。在這些觀點中,由于學生學過計算機的相關基礎課程對計算機的組成十分了解,因而把資源管理作為主線進行課程的講授是比較容易理解和掌握的。
計算機是由處理器、存儲器(分為內存和外存)、輸入/輸出設備組成,這些組成部分即是計算機系統的資源,對這些資源的管理正好同資源管理的觀點相吻合,即操作系統的管理對象是計算機系統的資源,操作系統是管理系統資源的程序集合,把操作系統分為處理機管理、存儲管理(即內存管理)、設備管理和文件管理(即外存管理),另外還需要對用戶提交的待處理的任務(即作業)進行管理——作業管理;把這5類管理有機地組織起來就構成了操作系統的主要內容。在對這些資源進行管理時共性的問題是首先要設計數據結構分別記錄這些資源的動態使用情況,其次要采取相應的策略和原則進行資源的分配和回收,另外采取一定的方法對資源進行邏輯上的擴充等。對于不同的資源還有其個性問題,在分別進行介紹。這樣就使學生對操作系統這門課的內容有一個整體認識。
另外進程(線程)是現代操作系統中的一個十分重要的概念,在進程(線程)創建、狀態轉換和撤銷這一過程中,涉及資源的分配和回收,這樣就把兩種研究操作系統的觀點有機地聯系在一起。各種研究觀點之間都是存在著有機地聯系的。這樣就使學生認識到各種研究觀點是相輔相成的,而不是相互對立的,讓學生充分體會到操作系統的本質,這樣才能真正理解操作系統理論及實際操作系統。
2注重與前導課的關系
作為“操作系統”課程的前導課程主要有“數據結構”、“計算機組成原理”、“計算機體系結構”、“程序設計語言”。在教學過程中注意與前導課程的聯系,可使課程的內容前后銜接,由前導知識自然過渡到要介紹的操作系統中,既可以使學生較好地理解操作系統知識,加深對前導課程的理解與運用,又可以使學生體會各門課程之間的內在聯系,讓學生把各門課程的只是有機地聯系在一起,使知識點連成知識線,再由知識線組成知識面,進而由知識面構成知識體,從而提高學生自學的能力、知識運用能力和科學研究能力。
操作系統歸根到底是一組程序,而程序=算法+數據結構。由此可見操作系統與數據結構和程序設計語言之間的關系是密不可分的。在操作系統中,有一些管理是以算法為中心即根據算法確定或選擇數據結構,而還有一些是根據確定了的數據結構設計算法。分區存儲管理中的分配方法就是根據算法確定或選擇數據結構的一個典型案例,而頁式存儲管理和設配管理中的分配回收就是典型的確定了的數據結構設計算法的實例。
在“計算機組成原理”介紹中斷和外設與主機進行數據交換等的相關問題,而這些問題也是在操作系統要介紹的內容。由此在“操作系統”課程中就可以把這些內容與“計算機組成原理”課程中的相關問題進行比較介紹。同樣“操作系統”與“計算機體系結構”這兩門課程也有一些相關問題,也可以采用比較介紹的方法。這樣既可使學生對課程之間的相關性有更深的了解,使學生加深對知識的理解程度,又能節省一部分課時。
3緊密聯系實際的操作系統
操作系統既可代表一門課程,又可指一種實際運行的一組程序——實際操作系統,因此在講授“操作系統”這門課的過程中,不但要從理論上介紹操作系統,即介紹操作系統的基本概念、原理、方法、算法和相關的數據結構等,還應該把這些理論知識同實際的操作系統聯系起來,讓學生感受到這些理論知識在實際中是如何被應用的,這樣既可以使學生更深刻地理解理論知識,同時又使他們體會到知識的運用過程,理論與實際的相輔相成的關系。通過分析實際的操作系統還可以提高學生分析程序的能力,理解實際操作系統研制過程中對實際情況的充分考慮和一些實現技巧,而不僅僅只是理論的“翻版”。
目前作為“操作系統”教學案例的實際操作系統主要有Linux 操作系統、Unix操作系統、Windows操作系統,以及幾年來SUN公司在教育界大力推行的Solaris操作系統。選擇哪種操作系統作為教學案例主要看開源的程度和研究人員對它剖析和整理的程度。如果有條件可以選擇多種操作系統作為案例,這樣可以進行相互比較。但由于教學時數的限制,一般只能選擇一種操作系統中比較典型的部分進行剖析,如Linux中進程的創建、調度、并發/同步/互斥控制等,以及內存管理和文件系統等。
4注重實驗教學
為了使學生更好地理解操作系統、掌握相關的知識,在介紹操作系統的理論和實際操作系統的基礎上,還應讓學生親自動手編制操作系統程序,通過編寫操作系統或操作系統的一部分或操作系統一部分的模擬(仿真)程序,可使學生更進一步理解和掌握操作系統的相關知識、獲得更多的感性認識、對計算機系統程序及其運行有著更深刻地理解,提高學生編程能力、觀察問題能力、分析問題能力。
由于學時、編制操作系統的復雜程度、學生實際能力、實驗條件和環境等的限制,不可能編制一個簡單的操作系統,只能從可進行實驗的部分當中選擇幾個典型部分進行實驗。進行的實驗可以分為兩類。一類實驗是對某一實際操作系統的實際運行情況的跟蹤和分析,通過這類實驗可以使學生觀察并更好地理解操作系統的實際運行情況、各種資源/對象狀態的變化,在感性上認識和理解操作系統的工作原理,進而在理論上認識并理解它,例如在Linux操作系統運行下,實時觀察進程的創建、狀態轉換、撤銷,進程的同步/互斥/通信,內存的分配和使用情況等。另一類實驗是針對操作系統的某一個具體方法進行編程來模擬操作系統的功能,例如進程調度、動態頁式存儲管理、二級文件系統、設備驅動等的模擬;通過這些實驗提高學生數據結構的設計能力、編程能力,同時讓學生從感性上進一步認識和理解操作系統的工作原理。
5關注操作系統的發展前沿
操作系統無論是作為理論還是作為實際運行系統都是在不斷地發展變化的,跟蹤操作系統的發展變化,適時地向學生做以介紹,使學生可以了解操作系統的前沿理論和技術以及新推出的操作系統,拓寬了他們得視野,培養學生不斷接受新思想、新知識、新技術的學習習慣和學習自覺性,激發、培養學生的興趣點,為學生將來的工作奠定一定的基礎。并行操作系統、分布操作系統、網絡下的操作系統、多媒體環境下的操作系統、操作系統內核呈現出多平臺統一的趨勢、功能將不斷增加,中間件發展趨勢、嵌入式系統及其軟件技術發展趨勢、行業性嵌入式軟件開發平臺、嵌入式開發工具將向高度集成、編譯優化、具有系統設計、可視化建模、仿真和驗證功能方向發展、嵌入式中間件等都是操作系統研究的熱點和方向。
操作系統的理論實踐在不斷地發展變化著、教師面對的學生也在不斷的變化,因而“操作系統”這門課的講授內容、方式和實驗項目都應隨著進行不斷地調整,以適應發展變化的需要。
參考文獻:
[1] 史志才,毛玉萃.操作系統原理——Linux 技術實現[M].北京:高等教育出版社,2004.
[2] 湯子氵贏,哲鳳屏,湯小丹.計算機操作系統[M].2版.西安:電子科技大學出版社,2002.
[3] 潭耀銘.操作系統[M].北京:中國人民大學出版社,1999.
[4] 馬季蘭,彭新光.Linux操作系統[M].北京:電子工業出版社,2002.
[5] 張堯學.計算機操作系統教程——習題解答與實驗指導[M].2版. 北京:清華大學出版社,2000.
[6] 陳新河.未來5-10年操作系統發展趨勢[N/OL].[2007-06-19]. http://news.ccidnet.com/art/1032/20070619/1117459_1.html.