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