基金項(xiàng)目:國(guó)家自然科學(xué)基金(11005081);浙江省自然科學(xué)基金項(xiàng)目(Y1110322);浙江省高校本科計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會(huì)專(zhuān)項(xiàng)教學(xué)改革項(xiàng)目(2011-4)
[摘 要]針對(duì)電子商務(wù)專(zhuān)業(yè)課程偏重應(yīng)用的特點(diǎn),提出了一套新穎的《操作系統(tǒng)原理》實(shí)驗(yàn)教學(xué)方案。本方案分為四個(gè)層次:首先,構(gòu)建基于Ubuntu Linux和Qt Creator的全新實(shí)驗(yàn)平臺(tái),學(xué)生可借助Qt開(kāi)發(fā)包在Linux系統(tǒng)上簡(jiǎn)便地編寫(xiě)出帶GUI界面的程序;其次,在本實(shí)驗(yàn)平臺(tái)上模擬教材中的若干重要算法;然后借用Qemu虛擬機(jī)和Eclipse實(shí)現(xiàn)對(duì)Linux內(nèi)核代碼的調(diào)試,讓學(xué)生深入了解內(nèi)核代碼結(jié)構(gòu);最后要求學(xué)生修改部分內(nèi)核代碼并重新生成內(nèi)核。本方案較傳統(tǒng)教學(xué)方法提供了有吸引力的實(shí)驗(yàn)平臺(tái),增加了對(duì)內(nèi)核代碼結(jié)構(gòu)的調(diào)試、分析和修改。教學(xué)實(shí)踐結(jié)果表明本方案極大地提高了學(xué)生的學(xué)習(xí)興趣和動(dòng)手能力,實(shí)現(xiàn)了學(xué)以致用的目標(biāo)。
[關(guān)鍵詞]操作系統(tǒng), 實(shí)驗(yàn)教學(xué)改革,Linux , Qt,
一、前言
《操作系統(tǒng)原理》不僅是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的核心課程,通常也是電子商務(wù)、信息管理與信息系統(tǒng)等計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的必修課。學(xué)好該課程,對(duì)于掌握計(jì)算機(jī)原理和底層編程技術(shù)具有重要的意義。然而,該課程普遍存在理論與實(shí)踐相脫節(jié)的問(wèn)題,與電子商務(wù)專(zhuān)業(yè)注重務(wù)實(shí)的需求相悖。無(wú)論教材還是教學(xué)過(guò)程,都過(guò)于強(qiáng)調(diào)概念和算法的掌握,將操作系統(tǒng)這個(gè)復(fù)雜的系統(tǒng)軟件過(guò)于抽象化、模型化,導(dǎo)致學(xué)生普遍感覺(jué)該課程枯燥無(wú)味、所學(xué)知識(shí)與實(shí)際系統(tǒng)相距甚遠(yuǎn),進(jìn)而導(dǎo)致學(xué)生對(duì)該課程不感興趣。參考國(guó)外先進(jìn)教學(xué)經(jīng)驗(yàn)不難發(fā)現(xiàn),該課程的重點(diǎn)在于實(shí)踐。許多國(guó)外著名大學(xué)在開(kāi)設(shè)該課程時(shí)都要求學(xué)生編寫(xiě)或修改系統(tǒng)內(nèi)核,不只是停留在對(duì)原型系統(tǒng)的理解層面上。因此,本教學(xué)改革將內(nèi)核分析引入實(shí)驗(yàn)教學(xué),期望學(xué)生在掌握原理的同時(shí)還可以融入內(nèi)核的開(kāi)發(fā)維護(hù)工作。另外,為了提高學(xué)生的學(xué)習(xí)興趣,還將構(gòu)造一個(gè)新穎的、具有較強(qiáng)吸引力的實(shí)驗(yàn)平臺(tái)。
二、四個(gè)層次的實(shí)驗(yàn)教學(xué)方案
本教學(xué)方案遵照循序漸進(jìn)的原則將實(shí)驗(yàn)教學(xué)分成四個(gè)層次,由低到高分別為:實(shí)驗(yàn)平臺(tái)層、算法仿真層、內(nèi)核調(diào)試層和內(nèi)核構(gòu)建層。實(shí)驗(yàn)系統(tǒng)為Ubuntu 11.10,集成開(kāi)發(fā)環(huán)境為Qt Creator,虛擬機(jī)為Qemu,內(nèi)核版本為3.0.3,內(nèi)核代碼調(diào)試器為Eclipse。
1.實(shí)驗(yàn)平臺(tái)層
Ubuntu是當(dāng)前最主流的一種Linux發(fā)行版,具有近似于Windows的友好界面及豐富的軟硬件支持。由于現(xiàn)行教材絕大多數(shù)以Unix/Linux為藍(lán)本,將Ubuntu作為實(shí)驗(yàn)系統(tǒng)有利于理論聯(lián)系實(shí)際。Qt Creator是基于Qt開(kāi)發(fā)包(開(kāi)源)的C++集成開(kāi)發(fā)環(huán)境,具有運(yùn)行速度高、占用資源少等優(yōu)點(diǎn),借助其可簡(jiǎn)便地設(shè)計(jì)出帶GUI界面的程序。為了幫助學(xué)生掌握Qt Creator,以MySQL作為后臺(tái)數(shù)據(jù)庫(kù)開(kāi)發(fā)了一個(gè)數(shù)據(jù)庫(kù)示例程序,實(shí)現(xiàn)了Ubuntu平臺(tái)下簡(jiǎn)單的物流管理。將Ubuntu和Qt Creator結(jié)合作為實(shí)驗(yàn)平臺(tái),提升了用戶體驗(yàn)和編程效率,不僅使得原本枯燥的算法模擬變得生動(dòng)清晰,還促進(jìn)了該課程與《數(shù)據(jù)結(jié)構(gòu)》、《面向?qū)ο蟪绦蛟O(shè)計(jì)》、《數(shù)據(jù)庫(kù)原理》等課程的融會(huì)貫通。
2.算法仿真層
該層是傳統(tǒng)實(shí)驗(yàn)教學(xué)的重點(diǎn),以模仿各種重要算法的實(shí)現(xiàn)為目標(biāo)。以LRU頁(yè)面置換算法為例,假設(shè)有n次頁(yè)面訪問(wèn)、分配給進(jìn)程的頁(yè)面數(shù)固定為m,那么首先在窗體上設(shè)計(jì)出具有m個(gè)單元的堆棧,每個(gè)單元存放一個(gè)最近訪問(wèn)過(guò)的頁(yè)面號(hào)。若被訪頁(yè)面號(hào)在堆棧中存在,便將其抽出堆棧再壓回棧頂;反之,淘汰棧底再將新頁(yè)面號(hào)壓至棧頂。整個(gè)過(guò)程在GUI界面上展示,學(xué)生可以非常直觀地掌握該算法。
3.內(nèi)核調(diào)試層
利用Eclipse CDT(C++開(kāi)發(fā)包)和Qemu虛擬機(jī)可輕松地實(shí)現(xiàn)對(duì)內(nèi)核代碼的遠(yuǎn)程調(diào)試,有助于學(xué)生深入了解內(nèi)核代碼結(jié)構(gòu)。首先對(duì)內(nèi)核代碼執(zhí)行Make命令生成內(nèi)核配置(config)文件;然后在Eclipse中建立基于內(nèi)核源代碼的工程,并運(yùn)用Make命令生成內(nèi)核鏡像bzImage;接著在Qemu虛擬機(jī)中按照調(diào)試模式運(yùn)行該內(nèi)核鏡像,即:?jiǎn)?dòng)虛擬機(jī)時(shí)要“凍住”虛擬機(jī),等待調(diào)試器發(fā)出繼續(xù)運(yùn)行的命令;最后回到上述Eclipse工程,任意設(shè)置斷點(diǎn)并按Debug模式跟蹤代碼執(zhí)行流程。
4.內(nèi)核構(gòu)建層
內(nèi)核構(gòu)建指的是通過(guò)修改內(nèi)核代碼實(shí)現(xiàn)對(duì)內(nèi)核的維護(hù)和開(kāi)發(fā)。與內(nèi)核調(diào)試層相似,首先在Eclipse中建立一個(gè)基于內(nèi)核源代碼的工程;然后修改內(nèi)核代碼并運(yùn)用Make命令生成新內(nèi)核;最后將新內(nèi)核拷貝到/boot目錄下, 修改/etc/lilo.conf中關(guān)于內(nèi)核鏡像的設(shè)置以啟用新內(nèi)核。
三、小結(jié)
本文提出的《操作系統(tǒng)原理》實(shí)驗(yàn)教學(xué)方案以培養(yǎng)學(xué)生的學(xué)習(xí)興趣和動(dòng)手能力為宗旨,滿足電子商務(wù)專(zhuān)業(yè)課程注重務(wù)實(shí)的需求。所構(gòu)建的實(shí)驗(yàn)平臺(tái)新穎、有吸引力,通過(guò)代碼調(diào)試分析內(nèi)核結(jié)構(gòu)提高了學(xué)生的實(shí)踐水平,實(shí)現(xiàn)了學(xué)以致用的目標(biāo)。然而,由于教學(xué)時(shí)間有限,如何進(jìn)一步提煉教學(xué)內(nèi)容、提升教學(xué)效率是下一步探索的目標(biāo)。
參考文獻(xiàn):
[1]吳暾華.《操作系統(tǒng)》中關(guān)于“同步互斥問(wèn)題”的教學(xué)實(shí)踐[J].科教文匯,2010,(12):36-37
[2]吳暾華.電子商務(wù)專(zhuān)業(yè)中操作系統(tǒng)課程教學(xué)改革探討[J].商場(chǎng)現(xiàn)代化,2011,(17):170-170
[3]許波,代靜.操作系統(tǒng)實(shí)驗(yàn)教學(xué)改革[J].計(jì)算機(jī)教育,2011,(17):85-87
[4]李琳娜.針對(duì)實(shí)際應(yīng)用的Linux實(shí)驗(yàn)教學(xué)研究[J].計(jì)算機(jī)教育,2010,(9):139-142
[5]王祥雒,趙素萍.基于內(nèi)核分析的操作系統(tǒng)課程實(shí)驗(yàn)教學(xué)方法探索[J].計(jì)算機(jī)時(shí)代,2011, (4):48-49
[6]楊磊,殷兆麟.計(jì)算機(jī)專(zhuān)業(yè)“信息技術(shù)\"方向操作系統(tǒng)實(shí)驗(yàn)的教學(xué)改革[J].計(jì)算機(jī)教育,2009, (14):20-22