黃 萍
(南京理工大學(xué)紫金學(xué)院 計(jì)算機(jī)系,南京 210046)
操作系統(tǒng)實(shí)驗(yàn)環(huán)節(jié)設(shè)置的探索
黃 萍
(南京理工大學(xué)紫金學(xué)院 計(jì)算機(jī)系,南京 210046)
操作系統(tǒng)是一門理論性強(qiáng)且概念抽象的課程,如何使學(xué)生掌握操作系統(tǒng)設(shè)計(jì)原理與實(shí)現(xiàn)技術(shù)的精髓,實(shí)驗(yàn)教學(xué)環(huán)節(jié)的開設(shè)顯得尤為重要。文中介紹了一種新的操作系統(tǒng)實(shí)驗(yàn)教學(xué)設(shè)置方案,結(jié)合操作系統(tǒng)和嵌入式系統(tǒng)兩門課程的內(nèi)容,由淺入深地展開實(shí)驗(yàn)內(nèi)容,先通過算法的模擬使學(xué)生加深對(duì)通用操作系統(tǒng)各功能模塊的理解,再讓學(xué)生對(duì)μC/OS-II操作系統(tǒng)的源代碼進(jìn)行閱讀和調(diào)試。文中對(duì)實(shí)驗(yàn)內(nèi)容的設(shè)置、實(shí)驗(yàn)開展過程以及最后的實(shí)驗(yàn)效果都做了較詳細(xì)的闡述。
操作系統(tǒng);實(shí)驗(yàn)教學(xué);實(shí)驗(yàn)設(shè)置;μC/OS-II操作系統(tǒng)
操作系統(tǒng)是計(jì)算機(jī)及其相關(guān)專業(yè)的一門重要基礎(chǔ)課程。該課程理論性強(qiáng)、概念抽象,如果單純進(jìn)行理論教學(xué),學(xué)生會(huì)因?yàn)檎n程概念晦澀、原理復(fù)雜、內(nèi)容枯燥而失去學(xué)習(xí)興趣。為了使學(xué)生真正掌握操作系統(tǒng)設(shè)計(jì)原理與實(shí)現(xiàn)技術(shù)的精髓,培養(yǎng)學(xué)生的創(chuàng)新能力[1],很多高校都開設(shè)有相應(yīng)的實(shí)驗(yàn)教學(xué)環(huán)節(jié)。
國(guó)內(nèi)本科高校大致可以分為三個(gè)層次:應(yīng)用型本科學(xué)校、工程型本科學(xué)校和研究型本科學(xué)校。針對(duì)不同層次的培養(yǎng)目標(biāo),應(yīng)設(shè)計(jì)不同的操作系統(tǒng)實(shí)驗(yàn)內(nèi)容。操作系統(tǒng)涉及的內(nèi)容較多,相對(duì)應(yīng)的實(shí)驗(yàn)層面有深也有淺,主要有以下四個(gè)層面,各層面依次由淺到深遞進(jìn)。
1)觀察與使用層面
選擇一個(gè)實(shí)際的操作系統(tǒng)(一般為Windows或Linux操作系統(tǒng))作為實(shí)驗(yàn)環(huán)境,讓學(xué)生觀察操作系統(tǒng)運(yùn)行某個(gè)功能的具體現(xiàn)象,以及使用操作系統(tǒng)包括對(duì)命令、系統(tǒng)調(diào)用和系統(tǒng)文件的使用,來體會(huì)操作系統(tǒng)原理的設(shè)計(jì)內(nèi)容。這種方式只能看到系統(tǒng)的外部運(yùn)行情況。為了讓學(xué)生真正理解操作系統(tǒng)的內(nèi)在原理,一些學(xué)校會(huì)在使用層面的基礎(chǔ)上增加系統(tǒng)編程的實(shí)驗(yàn)內(nèi)容[2-3]。
2)算法模擬層面
選取課程中的一些典型算法,如進(jìn)程調(diào)度、內(nèi)存分配、頁面置換、磁盤調(diào)度等,讓學(xué)生使用某種編程語言(如C/C++、Java)編程模擬實(shí)現(xiàn)。該類型的實(shí)驗(yàn)有利于學(xué)生在提高編程水平的基礎(chǔ)上加深對(duì)操作系統(tǒng)理論的理解,但學(xué)生體會(huì)不到實(shí)際操作系統(tǒng)與計(jì)算機(jī)硬件的交互。
3)源碼閱讀級(jí)層面
通過對(duì)現(xiàn)有操作系統(tǒng)部分內(nèi)核源代碼的閱讀,深入理解操作系統(tǒng)的設(shè)計(jì)原理。
4)系統(tǒng)設(shè)計(jì)層面
通過模塊替換、功能擴(kuò)展或獨(dú)立開發(fā)等形式,讓學(xué)生設(shè)計(jì)實(shí)現(xiàn)一些操作系統(tǒng)中的功能或者設(shè)計(jì)開發(fā)一款小型操作系統(tǒng)。這個(gè)層面的實(shí)驗(yàn)對(duì)學(xué)生的能力要求較高,國(guó)內(nèi)一些知名高校,如同濟(jì)大學(xué)[4]、清華大學(xué)[5]采用了擴(kuò)展設(shè)計(jì)型實(shí)驗(yàn)。這種實(shí)驗(yàn)方式可以提高學(xué)生的自主能動(dòng)性,但其工作量與難度很難把握,可能導(dǎo)致大部分學(xué)生無法完成而影響教學(xué)效果。因此,如何使實(shí)驗(yàn)環(huán)節(jié)既能很好地輔助理論教學(xué),又能提高學(xué)生的實(shí)踐水平,是實(shí)驗(yàn)教學(xué)教師不得不面對(duì)的問題。
在設(shè)計(jì)實(shí)驗(yàn)內(nèi)容時(shí),充分考慮了獨(dú)立學(xué)院主要以培養(yǎng)應(yīng)用型人才為主的特點(diǎn),針對(duì)學(xué)生的基礎(chǔ)和素質(zhì)相對(duì)不足以及所開設(shè)的相關(guān)課程等各種因素,把理解操作系統(tǒng)基本原理、提高編程能力作為實(shí)驗(yàn)?zāi)繕?biāo),設(shè)置了算法模擬與源碼閱讀相結(jié)合的實(shí)驗(yàn)內(nèi)容。
由于學(xué)院是應(yīng)用型本科院校,因此,更注重學(xué)生動(dòng)手能力的培養(yǎng)。計(jì)算機(jī)系分別在大三下學(xué)期和大四上學(xué)期開設(shè)了3個(gè)學(xué)分的操作系統(tǒng)理論課程及2個(gè)學(xué)分的操作系統(tǒng)課程設(shè)計(jì)課程。兩門課程各有側(cè)重,理論課選用了西安電子科技大學(xué)出版社出版的《計(jì)算機(jī)操作系統(tǒng)》(第三版)[6]作為教材,主要側(cè)重基本概念及原理、設(shè)計(jì)基本思想的介紹,以課堂教學(xué)為主;操作系統(tǒng)課程設(shè)計(jì)以實(shí)驗(yàn)為主,共32個(gè)學(xué)時(shí)。以往開設(shè)的操作系統(tǒng)實(shí)驗(yàn)主要集中在利用Windows操作系統(tǒng)提供的接口進(jìn)行系統(tǒng)調(diào)用編程以及算法模擬,經(jīng)過多輪教學(xué)之后發(fā)現(xiàn),效果并不理想。只有少部分真正感興趣的學(xué)生能夠?qū)W到東西,大多數(shù)學(xué)生反饋回來的信息是實(shí)驗(yàn)內(nèi)容過于零散、抽象,學(xué)生希望能夠把這些零散的實(shí)驗(yàn)內(nèi)容整合到一個(gè)完整的操作系統(tǒng)中。因此,我們對(duì)該門實(shí)踐課的教學(xué)內(nèi)容進(jìn)行了改革,重新設(shè)置了實(shí)驗(yàn)內(nèi)容。
在重新設(shè)置實(shí)驗(yàn)內(nèi)容時(shí),充分考慮了知識(shí)體系的關(guān)聯(lián)性與完整性,計(jì)算機(jī)系除了開設(shè)操作系統(tǒng)課程外,還開設(shè)了嵌入式系統(tǒng)課程,兩門課程的教學(xué)內(nèi)容是有一定聯(lián)系的。因此,我們兼顧兩門課程設(shè)置實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)內(nèi)容由淺入深地展開,先通過算法的模擬使學(xué)生加深對(duì)通用操作系統(tǒng)各管理功能的理解,在此基礎(chǔ)上,再對(duì)某一款簡(jiǎn)單實(shí)用的嵌入式操作系統(tǒng)的源代碼進(jìn)行閱讀調(diào)試,讓學(xué)生對(duì)操作系統(tǒng)有一個(gè)整體認(rèn)識(shí),同時(shí),加深對(duì)嵌入式操作系統(tǒng)的認(rèn)知。具體的實(shí)驗(yàn)內(nèi)容見表1。
表1 實(shí)驗(yàn)內(nèi)容
通過理論課與實(shí)踐課的結(jié)合,學(xué)生先學(xué)習(xí)理論知識(shí),進(jìn)而模擬實(shí)現(xiàn)其中的算法,最后,進(jìn)行完整操作系統(tǒng)的實(shí)驗(yàn),實(shí)現(xiàn)了“抽象理解—感性認(rèn)識(shí)—理性理解”的學(xué)習(xí)認(rèn)知過程(理論課知識(shí)點(diǎn)與實(shí)驗(yàn)內(nèi)容具體對(duì)應(yīng)關(guān)系見表1)。在算法模擬階段,主要選取了理論課講授過程中每章要求學(xué)生必須掌握的算法來實(shí)現(xiàn),做到原理講授與實(shí)驗(yàn)環(huán)節(jié)緊密結(jié)合,使學(xué)生通過算法模擬,進(jìn)一步掌握操作系統(tǒng)原理設(shè)計(jì)與實(shí)現(xiàn)技術(shù)的精髓。
在此基礎(chǔ)上,結(jié)合嵌入式系統(tǒng)課程,選取了源代碼開放、代碼精練、適合于教學(xué)的μC/OS-II系統(tǒng)作為實(shí)驗(yàn)素材,由系統(tǒng)的內(nèi)核開始,結(jié)合理論課所學(xué)的知識(shí)點(diǎn)分模塊來閱讀、調(diào)試代碼,加深學(xué)生對(duì)整個(gè)操作系統(tǒng)的理解。
在算法模擬階段,實(shí)驗(yàn)側(cè)重在系統(tǒng)功能的模擬實(shí)現(xiàn)。因?yàn)檫@門實(shí)驗(yàn)課的主要目的不是學(xué)習(xí)如何編程,而是要求學(xué)生掌握操作系統(tǒng)的基本設(shè)計(jì)原理,因此,簡(jiǎn)化了學(xué)生的編程工作量。每個(gè)模擬算法的基本程序框架以及所需數(shù)據(jù)結(jié)構(gòu)事先給學(xué)生,但主要的核心功能函數(shù)需要學(xué)生在閱讀程序及弄明白算法原理后補(bǔ)充完整,程序運(yùn)行調(diào)試通過后再由教師當(dāng)堂驗(yàn)收。這種方式可以有效預(yù)防學(xué)生課后抄襲實(shí)驗(yàn)報(bào)告。
在源代碼閱讀階段,由于實(shí)驗(yàn)代碼來源于《嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II》[7]一書所附帶的范例代碼,只能在BC編譯環(huán)境下編譯測(cè)試,而BC是基于DOS開發(fā)的C/C++編譯器,操作復(fù)雜,學(xué)生很難掌握如何編譯測(cè)試μC/OS-II。而VC功能強(qiáng)大,用VC來調(diào)試運(yùn)行μC/OS-II會(huì)使教學(xué)更加輕松,學(xué)生學(xué)習(xí)更加容易。因此,需要教師先對(duì)μC/OS-II做深入了解,摸清μC/OS-II中的功能結(jié)構(gòu)后,將μC/OS-II源代碼進(jìn)行修改,使其可以在VC環(huán)境下運(yùn)行。在代碼發(fā)放前,還需教師給代碼標(biāo)注詳細(xì)的功能注釋,以便學(xué)生閱讀。學(xué)生完成源碼的閱讀與調(diào)試后,需填寫實(shí)驗(yàn)報(bào)告,由此加深對(duì)源碼的理解。這部分實(shí)驗(yàn)雖然不需要學(xué)生自己編寫代碼,但是我們也鼓勵(lì)學(xué)生進(jìn)行深層次的學(xué)習(xí),比如在該系統(tǒng)基礎(chǔ)上進(jìn)行一些系統(tǒng)功能調(diào)用編程。
采用課堂當(dāng)場(chǎng)驗(yàn)收實(shí)驗(yàn)結(jié)果以及期末答辯方式后,學(xué)生到課率顯著增加,同時(shí),自己動(dòng)手編程的學(xué)生數(shù)較以往明顯增加。分析有以下原因:
1)從實(shí)驗(yàn)內(nèi)容設(shè)置及實(shí)驗(yàn)過程看,相對(duì)于以前的學(xué)生自己編碼實(shí)現(xiàn)轉(zhuǎn)換,現(xiàn)在的代碼填空以及代碼閱讀,難度降低,學(xué)生畏難情緒減少,在老師的引導(dǎo)鼓勵(lì)下更愿意動(dòng)手去實(shí)現(xiàn);同時(shí),將抽象的操作系統(tǒng)概念通過一個(gè)簡(jiǎn)單實(shí)用的小型嵌入式系統(tǒng)μC/OS-II展現(xiàn)出來,能提高學(xué)生的學(xué)習(xí)興趣。
2)從實(shí)際效果看,由于學(xué)習(xí)興趣的提升,使得大多數(shù)學(xué)生可以通過實(shí)驗(yàn)環(huán)節(jié)切實(shí)加深對(duì)操作系統(tǒng)中相關(guān)概念的理解,達(dá)到預(yù)期的教學(xué)效果。
以往的實(shí)驗(yàn)指導(dǎo),教師大部分工作是在糾正學(xué)生的編程語法錯(cuò)誤,調(diào)整實(shí)驗(yàn)內(nèi)容以及實(shí)驗(yàn)方式后,教師的指導(dǎo)重心轉(zhuǎn)變?yōu)橄到y(tǒng)功能設(shè)計(jì)以及實(shí)現(xiàn)技術(shù)的引導(dǎo),更能契合這門課的教學(xué)目標(biāo)。同時(shí),由于大部分代碼已經(jīng)發(fā)給學(xué)生,學(xué)生只需要在理解的基礎(chǔ)上把核心代碼補(bǔ)全運(yùn)行或者把源代碼閱讀理解調(diào)試即可,減輕了學(xué)生的負(fù)擔(dān),能讓大多數(shù)學(xué)生在有限的實(shí)驗(yàn)時(shí)間內(nèi)加深對(duì)操作系統(tǒng)知識(shí)的理解。
本文的實(shí)驗(yàn)內(nèi)容設(shè)置總體符合學(xué)生的實(shí)際水平和培養(yǎng)目標(biāo),但在今后的教學(xué)實(shí)踐中還應(yīng)進(jìn)行一些優(yōu)化和調(diào)整,如將某些模擬算法移植到μC/OS-II中,或者在μC/OS-II提供的編程接口做一些功能擴(kuò)展等,以便在認(rèn)識(shí)理解操作系統(tǒng)的基礎(chǔ)上進(jìn)行系統(tǒng)功能的修改或擴(kuò)展。
[1]趙洪霞,鮑吉龍,丁志群,等.在實(shí)驗(yàn)教學(xué)改革中培養(yǎng)學(xué)生的創(chuàng)新能力[J].實(shí)驗(yàn)科學(xué)與技術(shù),2009,7(1):91-92.
[2] 謝謙,蔡坤,沈夏炯.一種面向應(yīng)用的操作系統(tǒng)實(shí)驗(yàn)設(shè)置[J].計(jì)算機(jī)教育,2012(20):107-110.
[3] 趙俊生,壽永熙,馬志強(qiáng),等.操作系統(tǒng)課程改革與建設(shè)的研究與實(shí)踐[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2010(3):165-167.
[4] 何宗鍵,張惠娟.基于Windows內(nèi)核的操作系統(tǒng)課程實(shí)驗(yàn)平臺(tái)設(shè)計(jì)與建設(shè)[J].計(jì)算機(jī)教育,2009(14):139-140,148.
[5] 陳渝,向勇.操作系統(tǒng)課程實(shí)驗(yàn)教學(xué)探討[J].計(jì)算機(jī)育,2009(14):135-136.
[6] 湯曉丹.計(jì)算機(jī)操作系統(tǒng)[M].西安:西安電子科技大學(xué)出版社,2007.
[7]Jean J Labrosse.嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II[M].北京:北京航空航天大學(xué)出版社,2003.
Exploration of Operating System’s Experiment Design
HUANG Ping
(Department of Computer, Nanjing University of Science and Technology Zijin College, Nanjing 210046, China)
The operating system is an extremely abstract and theoretical course. In order to make students master the essence of the design principle and implementation technology, experiment teaching seems particularly important. This paper experiments with a new operating system experiment teaching method. The experiment combines content of operating system and embedded system, from the simple to the profound, harness algorithm simulation to help students have a deeper understanding of the operating system modules, and then let the students read and debug the source code of μC/OS-II. This paper expounds in detail content, process and results of the experiment.
operating system; experiment teaching; experiment design; μC/OS-II operation system
2014-05-05;修改日期: 2014-06-08
黃 萍(1982-),女,碩士,講師,研究方向:圖像處理,模式識(shí)別。
G642.423
A
10.3969/j.issn.1672-4550.2015.03.037
實(shí)驗(yàn)科學(xué)與技術(shù)2015年3期