王春爽,王德廣,張雪,賈慧敏
摘要:操作系統(tǒng)是計(jì)算機(jī)最基本的系統(tǒng)軟件,是所有應(yīng)用程序開發(fā)的基礎(chǔ),操作系統(tǒng)課程在計(jì)算機(jī)相關(guān)專業(yè)的本科教學(xué)中,具有非常重要的地位。在該門課程中,既要講授操作系統(tǒng)的基本概念和典型的實(shí)現(xiàn)技術(shù),又必須通過具體的例子說明它們的原理,并充分利用實(shí)踐教學(xué)加深學(xué)生的理解。本文將對(duì)操作系統(tǒng)課程中的實(shí)驗(yàn)教學(xué)方面進(jìn)行研究,提出改革方法,以全面提高學(xué)生的實(shí)踐能力。
關(guān)鍵詞:操作系統(tǒng);實(shí)驗(yàn)教學(xué);實(shí)踐能力
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A文章編號(hào):1674-9324(2012)12-0280-02
一、操作系統(tǒng)教學(xué)的內(nèi)容和現(xiàn)狀
操作系統(tǒng)是計(jì)算機(jī)最基本的系統(tǒng)軟件,它控制系統(tǒng)的所有資源,是所有應(yīng)用程序開發(fā)的基礎(chǔ)。其學(xué)科的特點(diǎn),決定了在教學(xué)中不僅要強(qiáng)調(diào)基本概念和基本原理,更要強(qiáng)調(diào)它的設(shè)計(jì)與實(shí)現(xiàn)技術(shù)。在一般本科院校針對(duì)計(jì)算機(jī)及軟件工程專業(yè)制定的培養(yǎng)目標(biāo)中,都會(huì)要求學(xué)生具有在相關(guān)領(lǐng)域繼續(xù)學(xué)習(xí)的能力,同時(shí)會(huì)將加強(qiáng)學(xué)生設(shè)計(jì)和實(shí)現(xiàn)操作系統(tǒng)的能力列入其中。由此可見,實(shí)踐能力被作為非常重要的指標(biāo),可目前的實(shí)際情況則遠(yuǎn)非如此。
操作系統(tǒng)是全國計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)碩士研究生入學(xué)考試課程,由于考試大綱的涵蓋范圍比較集中于理論方面,于是日常教學(xué)往往將進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)管理和設(shè)備管理的設(shè)計(jì)原理和實(shí)現(xiàn)技術(shù)作為構(gòu)成操作系統(tǒng)課程的主要知識(shí)體系,實(shí)例研究也主要以Linux系統(tǒng)為主,與實(shí)際的操作系統(tǒng)實(shí)踐相差較遠(yuǎn)。Andrew S.Tanenbaum曾指出,對(duì)于操作系統(tǒng)這門課程,學(xué)生應(yīng)該學(xué)習(xí)那些在實(shí)踐中真正有用的概念,而不僅僅是尋求理論上的完善,許多內(nèi)容已經(jīng)被證明在操作系統(tǒng)的設(shè)計(jì)和軟件開發(fā)實(shí)現(xiàn)中并不實(shí)用,如解決死鎖的銀行家算法等,理應(yīng)壓縮相關(guān)教學(xué)內(nèi)容的課時(shí),分布給實(shí)用性更強(qiáng)的領(lǐng)域。
二、操作系統(tǒng)實(shí)驗(yàn)教學(xué)的內(nèi)容組織
操作系統(tǒng)課程具有原理多、概念抽象、內(nèi)容設(shè)計(jì)范圍廣等特點(diǎn),教學(xué)內(nèi)容中包括操作系統(tǒng)內(nèi)部工作原理、相關(guān)概念、實(shí)現(xiàn)技術(shù)與算法等,在有限的學(xué)時(shí)中覆蓋所有內(nèi)容是不可能的,而其中用于實(shí)踐教學(xué)的學(xué)時(shí)將更加有限,有必要進(jìn)行合理的設(shè)計(jì),以達(dá)到充分提高學(xué)生動(dòng)手實(shí)踐能力的目的。因此,在內(nèi)容選擇上,應(yīng)該堅(jiān)持以下原則:
1.明確教學(xué)目標(biāo),突出學(xué)科重點(diǎn),不求面面俱到。
2.強(qiáng)調(diào)實(shí)用的算法和具體的實(shí)現(xiàn)技術(shù),盡可能做到理論聯(lián)系實(shí)際,原理和實(shí)現(xiàn)技術(shù)相呼應(yīng)。
3.實(shí)例研究以Linux系統(tǒng)為主,都是要輔以Windows系統(tǒng)的實(shí)現(xiàn)方法。
同時(shí),學(xué)生的興趣和能力也有很大的差異,針對(duì)不同的學(xué)生,應(yīng)該制定不同層次的教學(xué)目標(biāo)。經(jīng)過教學(xué)實(shí)踐,本文認(rèn)為可以分成基本目標(biāo)和高級(jí)目標(biāo)兩個(gè)層次:
1.基本目標(biāo):要求學(xué)生掌握操作系統(tǒng)的基本概念和典型的實(shí)現(xiàn)技術(shù),在應(yīng)用軟件設(shè)計(jì)中能夠借鑒操作系統(tǒng)設(shè)計(jì)中的思想和方法,比如在并發(fā)程序設(shè)計(jì)中能夠熟練運(yùn)用信號(hào)量(Semaphore)等方法解決進(jìn)程間通信(InterProcess Communication)問題,設(shè)計(jì)進(jìn)程同步的算法。這個(gè)目標(biāo)是作為計(jì)算機(jī)及軟件工程專業(yè)本科生必須達(dá)到的目標(biāo),是操作系統(tǒng)這門課程教學(xué)的基本要求。
2.高級(jí)目標(biāo):要求學(xué)生能夠綜合運(yùn)用所學(xué)知識(shí)對(duì)具體的操作系統(tǒng)進(jìn)行分析,并且有能力設(shè)計(jì)和實(shí)現(xiàn)一個(gè)小型的操作系統(tǒng),比如嵌入式操作系統(tǒng)。想要達(dá)到這個(gè)目標(biāo),學(xué)生需要繼續(xù)深入學(xué)習(xí),并且進(jìn)行大量的實(shí)踐,在日常教學(xué)有限的實(shí)驗(yàn)課時(shí)中很難實(shí)現(xiàn)。因此,應(yīng)適當(dāng)增加課外實(shí)踐,對(duì)于部分動(dòng)手能力比較強(qiáng)的學(xué)生,通過相關(guān)的課程設(shè)計(jì),可以自己動(dòng)手實(shí)現(xiàn)一個(gè)小型的操作系統(tǒng)。
基于上述原則和不同的培養(yǎng)目標(biāo),對(duì)于實(shí)驗(yàn)教學(xué)內(nèi)容的安排可以包括如下三個(gè)方面:
1.進(jìn)程同步算法:進(jìn)程管理是操作系統(tǒng)課程的重點(diǎn)也是難點(diǎn),現(xiàn)代計(jì)算機(jī)系統(tǒng)廣泛采用多任務(wù)環(huán)境,應(yīng)用軟件也日趨復(fù)雜,其中涉及大量資源的共享與競(jìng)爭(zhēng)、多個(gè)任務(wù)之間的通信與同步等問題,這些問題的基礎(chǔ)就是操作系統(tǒng)的并發(fā)問題。因此,應(yīng)該圍繞互斥與信號(hào)量的實(shí)現(xiàn)技術(shù)設(shè)計(jì)實(shí)驗(yàn),要求學(xué)生能夠設(shè)計(jì)進(jìn)程同步算法,并進(jìn)行實(shí)例分析。
2.頁面置換算法:內(nèi)存管理是操作系統(tǒng)課程的另一個(gè)重點(diǎn),存儲(chǔ)空間的分配和管理尤其為軟件開發(fā)人員重視?,F(xiàn)代操作系統(tǒng)普遍采用分頁式(Paging)結(jié)合虛擬存儲(chǔ)(Virtual Memory)的方法解決內(nèi)存分配的問題,學(xué)習(xí)和研究頁面置換算法、圍繞其設(shè)計(jì)實(shí)驗(yàn)非常必要。要求學(xué)生能夠?qū)崿F(xiàn)基本的頁面置換算法,能夠進(jìn)行橫向的比較,并且自行設(shè)計(jì)置換方法。
3.設(shè)計(jì)并實(shí)現(xiàn)一個(gè)小型操作系統(tǒng):要求學(xué)生對(duì)操作系統(tǒng)相關(guān)基礎(chǔ)原理進(jìn)行深入研究,對(duì)目前應(yīng)用的具體操作系統(tǒng)進(jìn)行分析和剪裁,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)至少包含進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)管理和設(shè)備管理等主要內(nèi)容的小型操作系統(tǒng),此部分實(shí)驗(yàn)應(yīng)作為課外選做內(nèi)容。
三、操作系統(tǒng)實(shí)驗(yàn)教學(xué)的方法
不同的算法,在實(shí)驗(yàn)教學(xué)中的方法是不盡相同的,應(yīng)根據(jù)實(shí)際情況具體實(shí)施;學(xué)生層次不同,對(duì)于編程工具的掌握和編程能力差異很大,指導(dǎo)方法也應(yīng)有所區(qū)別。以進(jìn)程同步算法為例,應(yīng)首先讓學(xué)生明確信號(hào)量的物理意義,了解引入信號(hào)量是為了操作系統(tǒng)的層面上解決進(jìn)程并發(fā)帶來的結(jié)果的不確定問題,從而引導(dǎo)學(xué)生用忙等待(busy waiting)或阻塞(blocking)的方法實(shí)現(xiàn)信號(hào)量的程序代碼,從資源等待的角度出發(fā)分析設(shè)計(jì)進(jìn)程同步算法。這樣的實(shí)驗(yàn)教學(xué),有助于加深學(xué)生對(duì)進(jìn)程管理的了解,對(duì)于操作系統(tǒng)內(nèi)資源分配的問題,也會(huì)有初步的認(rèn)識(shí)。
操作系統(tǒng)是人設(shè)計(jì)的,盡善盡美的系統(tǒng)是不存在的,因此在指導(dǎo)學(xué)生自己開發(fā)小型操作系統(tǒng)時(shí),要明確是在一種特定的環(huán)境和目標(biāo)之下,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)符合實(shí)際需要的系統(tǒng)。這樣,在實(shí)踐總結(jié)時(shí),學(xué)生會(huì)從設(shè)計(jì)者的角度出發(fā),總結(jié)出自己在設(shè)計(jì)該系統(tǒng)時(shí)主要著重解決的是哪一方面的問題、如何解決的問題以及為何采用此種方法來解決問題。通過這樣的實(shí)踐,會(huì)讓學(xué)生對(duì)操作系統(tǒng)的原理深入了解,同時(shí)增加了自己的分析內(nèi)容。
四、結(jié)語
操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)中占有重要地位,操作系統(tǒng)課程是相關(guān)專業(yè)的核心課程,合理的定位教學(xué)目標(biāo)、適當(dāng)增加實(shí)驗(yàn)教學(xué)的比例和難度是非常必要的。本文從操作系統(tǒng)實(shí)驗(yàn)教學(xué)的現(xiàn)狀入手,提出了在日常教學(xué)中對(duì)實(shí)踐環(huán)節(jié)進(jìn)行改革的一些探索和方法,可以有效地提升學(xué)生對(duì)本門課程的認(rèn)識(shí)和興趣,同時(shí)增強(qiáng)動(dòng)手能力。
參考文獻(xiàn):
[1]Andrew s.Tanenbaum.現(xiàn)代操作系統(tǒng)[M].第3版.陳向群,馬洪兵,等,譯.北京:機(jī)械工業(yè)出版社,2009.
[2]William Stallings.操作系統(tǒng)精髓與設(shè)計(jì)原理[M].第5版.陳渝,譯.北京:電子工業(yè)出版社,2006.