胡艷華,崔亞楠,倪志平
(廣西科技大學(xué)鹿山學(xué)院 電氣與計算機(jī)工程系,廣西 柳州 545616)
獨立學(xué)院操作系統(tǒng)課程實例化教學(xué)的探索與實踐
胡艷華,崔亞楠,倪志平
(廣西科技大學(xué)鹿山學(xué)院 電氣與計算機(jī)工程系,廣西 柳州 545616)
從獨立學(xué)院對學(xué)生的培養(yǎng)目標(biāo)出發(fā),結(jié)合獨立學(xué)院的轉(zhuǎn)型發(fā)展,針對其課程特性,提出一種實例化教學(xué)方法,通過列舉現(xiàn)實生活的形象例子來類比操作系統(tǒng)的抽象概念,闡述如何在講授過程中引入模擬游戲、創(chuàng)設(shè)情景、案例驅(qū)動、類比教學(xué)等多種教學(xué)方法,旨在引發(fā)學(xué)生的學(xué)習(xí)興趣,增強(qiáng)其專業(yè)學(xué)習(xí)自信心。
操作系統(tǒng);實例化教學(xué);教學(xué)探索;實踐
獨立學(xué)院是普通高校與社會力量合辦的本科學(xué)院,其辦學(xué)性質(zhì)決定了其培養(yǎng)目標(biāo)為復(fù)合應(yīng)用型人才。如今,社會對應(yīng)用型人才的需求不斷加大,合格的應(yīng)用技術(shù)人才需求缺口在急速增大。在此背景下,如何以獨立學(xué)院轉(zhuǎn)型為契機(jī),不斷加強(qiáng)獨立學(xué)院計算機(jī)專業(yè)課程體系的改革,開展教學(xué)方法的研究及改進(jìn),從而切實提升IT專業(yè)人才的培養(yǎng)質(zhì)量的要求尤其迫切。
操作系統(tǒng)負(fù)責(zé)管理計算機(jī)系統(tǒng)中所有軟、硬件資源,同時是用戶與計算機(jī)之間的接口[13],充當(dāng)管家和服務(wù)生的雙重角色,是計算機(jī)中既復(fù)雜又核心的軟件系統(tǒng)。對計算機(jī)專業(yè)學(xué)生來說,操作系統(tǒng)是一門重要的核心專業(yè)基礎(chǔ)課程,一般在大三第一學(xué)期開設(shè),該課程的內(nèi)容理論性強(qiáng)、原理多且抽象。教師在講授這門課程時,若直接講授抽象概念,不便于學(xué)生理解、掌握與應(yīng)用。學(xué)生也無法像學(xué)習(xí)程序語言那樣,通過編寫代碼、得到運(yùn)行結(jié)果而獲得直觀的學(xué)習(xí)效果,學(xué)習(xí)起來較枯燥無味,我們通過對高年級學(xué)生的問卷調(diào)查發(fā)現(xiàn),相當(dāng)一部分學(xué)生對該課程的理解、掌握及應(yīng)用效果欠佳。如何把枯燥、抽象的學(xué)習(xí)過程變得有趣并易于理解,是非常值得思考與研究的課題。
實例化教學(xué)法由哈佛大學(xué)提出的案例教學(xué)法發(fā)展而來,采用與傳統(tǒng)講授方法相反的教學(xué)思路[4],即“實例、概念、理論”模式。該教學(xué)方法從形象、生動的案例人手,由下而上深人剖析相關(guān)理論和概念,易于學(xué)生接受,往往能取得非凡的教學(xué)效果,近年來,該方法在國內(nèi)外教學(xué)改革中得到廣泛應(yīng)用[5]。筆者結(jié)合操作系統(tǒng)的教學(xué)特點,在教學(xué)過程中引人實例化教學(xué),通過引人現(xiàn)實生活的具體實例,與操作系統(tǒng)的抽象概念和原理進(jìn)行類比,闡釋這些概念和原理,加深學(xué)生的理解,取得了較好的教學(xué)效果。
3.1 進(jìn)程概念的實例化教學(xué)設(shè)計
文獻(xiàn)[6]對進(jìn)程的基本概念以及3種基本狀態(tài)部分進(jìn)行了比較詳細(xì)的介紹,但是直接講解抽象概念,不利于學(xué)生理解和掌握。
本次課之前,學(xué)生已經(jīng)了解了計算機(jī)操作系統(tǒng)的基本功能及發(fā)展過程,對操作系統(tǒng)的功能有直覺認(rèn)識和整體概念,但無從認(rèn)識和感受操作系統(tǒng)的具體功能,如何引導(dǎo)和切人進(jìn)程概念是教學(xué)的重點和難點。
A:while(1) {N=N+1;}
B:while(1) {print(N); N=0; }
并發(fā)程序A和B運(yùn)行速度不同。假設(shè)T0時刻N(yùn)=5,則T1可能出現(xiàn)以下情況:
(1)N=N+1;Print(N) ;N=0;此時得到的N值分別為6,6,0。
(2)Print(N) ;N=0;N=N+1;此時得到的N值分別為5,0,1。
(3)Print(N); N=N+1; N=0,此時得到的N值分別為5,6,0。
在多道程序環(huán)境下,兩個循環(huán)程序在并發(fā)執(zhí)行的時候出現(xiàn)不可再現(xiàn)性,當(dāng)前運(yùn)行環(huán)境相同,多次執(zhí)行程序但結(jié)果不唯一,失去了程序執(zhí)行的意義。通過問題描述,引發(fā)學(xué)生思考,然后引出進(jìn)程的概念。
進(jìn)程是指程序在一個數(shù)據(jù)集合上運(yùn)行的過程,是系統(tǒng)資源調(diào)度的一個獨立單位,學(xué)生不太容易區(qū)分程序和進(jìn)程。筆者在講解時,通過引人列車(進(jìn)程)和火車(程序)實例進(jìn)行類比解釋,有助于把抽象概念變成具體問題,使學(xué)生輕松理解程序和進(jìn)程的聯(lián)系與區(qū)別,如表1所示。
聯(lián)系:進(jìn)程是程序的一次執(zhí)行過程,沒有程序就沒有進(jìn)程(列車只是執(zhí)行中的火車)。
區(qū)別:①進(jìn)程是動態(tài)的(列車);②進(jìn)程的存在是暫時的,程序的存在是永久的(列車生命周期從起始站到終點站);③并發(fā)(并行是同一時間不同的列車在不同的軌道行駛;并發(fā)是同一時間不同的列車在同一個軌道行駛,只能交替行駛);④程序和進(jìn)程都存在一對多的關(guān)系,兩者無一一對應(yīng)關(guān)系(一輛火車可以行駛不同的站點,同時從同一個站點出發(fā)的火車有多輛)。
表1 進(jìn)程和程序概念類比
3.2 進(jìn)程狀態(tài)的實例化教學(xué)設(shè)計
筆者在講解進(jìn)程狀態(tài)時,通過建構(gòu)主義教學(xué)思想設(shè)計游戲情景假設(shè),提高學(xué)生積極性,調(diào)節(jié)課堂氣氛,并引出進(jìn)程的3種狀態(tài)。
游戲角色:由甲、乙和丙3位學(xué)生扮演分時系統(tǒng)中正在運(yùn)行的不同進(jìn)程,其中乙同學(xué)扮演在運(yùn)行過程中需要等待打印操作(等待I/O操作)的進(jìn)程;丁同學(xué)充當(dāng)操作系統(tǒng)的角色,掌管CPU的分派;第一排第一個學(xué)生負(fù)責(zé)計時,10s為一個時間片,一個時間表結(jié)束會給出一個“到”信號提示。
游戲道具:圓球(扮演CPU)。
游戲規(guī)則:初始情況下,甲和丙站立,乙蹲下,三者均不能進(jìn)行其他任何動作;丁按照甲、乙、丙的順序循環(huán)地分派圓球,若站立者得到圓球,可在黑板上畫自己的頭像,但蹲者因等待打印,不能活動,將圓球歸還給丁。其中一個時間片結(jié)束、運(yùn)行結(jié)束或等待I/O操作時需要將圓球交給丁。
根據(jù)學(xué)生的行為表現(xiàn),可歸納出兩種狀態(tài)轉(zhuǎn)化圖,見圖1。
圖1 兩狀態(tài)轉(zhuǎn)化圖
假如甲的時間片用完,而乙在等待打印,處于“未運(yùn)行”的進(jìn)程有乙和丙,這時丁把圓球分派給乙還是丙?通過引導(dǎo)學(xué)生,進(jìn)一步得出3種狀態(tài)轉(zhuǎn)化圖,如圖2所示。
圖2 三狀態(tài)模型轉(zhuǎn)化圖
3.3 進(jìn)程同步的實例化教學(xué)設(shè)計
文獻(xiàn)[6]比較詳細(xì)地介紹了進(jìn)程同步與互斥,但稍繁瑣,故筆者課堂上重點講解信號量機(jī)制實現(xiàn)進(jìn)程同步與互斥。
假如用戶A正在使用打印機(jī),用戶B也要請求打印,只能等待A使用完畢,才能使用該打印機(jī)。用戶A、B相當(dāng)于2個并發(fā)進(jìn)程,并發(fā)執(zhí)行的進(jìn)程之間存在著相互制約關(guān)系。為了協(xié)調(diào)進(jìn)程之間的相互制約關(guān)系,需要實現(xiàn)進(jìn)程同步與互斥,故引出該課主題。
進(jìn)程互斥:不同進(jìn)程不能同時訪問某個系統(tǒng)的臨界資源,只可互斥訪問,如打印機(jī)的使用。本來毫無關(guān)系的進(jìn)程因為相互競爭臨界資源而產(chǎn)生了間接制約關(guān)系。實際執(zhí)行的進(jìn)程之間,還存在直接制約關(guān)系,如生產(chǎn)者(輸人進(jìn)程)生產(chǎn)產(chǎn)品放人緩沖區(qū),消費(fèi)者(計算進(jìn)程)從緩沖區(qū)中取出產(chǎn)品進(jìn)行消費(fèi)。因此,在進(jìn)程實際執(zhí)行的過程中,生產(chǎn)者必須先于消費(fèi)者執(zhí)行才能保證任務(wù)順利進(jìn)行;另外,如果緩沖區(qū)已滿,生產(chǎn)者必須等消費(fèi)者取走產(chǎn)品,才能繼續(xù)生產(chǎn)。進(jìn)程之間為了相互合作完成同一個任務(wù),在執(zhí)行速度上必須相互協(xié)調(diào),即進(jìn)程同步,如同流水線生產(chǎn)的各道工序、醫(yī)生開藥方與取藥。
通過對進(jìn)程同步與互斥的描述,引出臨界資源的概念。許多資源一次只能為一個進(jìn)程提供服務(wù),這種一次僅允許一個進(jìn)程使用的資源叫做臨界資源。
在每個進(jìn)程中,訪問臨界資源的那段程序就是臨界區(qū),對臨界區(qū)要進(jìn)行互斥訪問。通過自動取款機(jī)案例,得出不同進(jìn)程進(jìn)人臨界區(qū),必須遵循4條準(zhǔn)則:空閑讓進(jìn)(當(dāng)取款的人操作完畢離開時,其他人才可以使用取款機(jī))、忙則等待(一次只允許一個人使用自動取款機(jī),其他人必須等待)、有限等待(任何人都不能無限占用取款機(jī))、讓權(quán)等待(若取款人未帶銀行卡,則必須讓出取款機(jī))。
3.4 進(jìn)程調(diào)度算法的實例化教學(xué)設(shè)計
文獻(xiàn)[6]對作業(yè)調(diào)度算法和進(jìn)程調(diào)度算法分開進(jìn)行闡述,篇幅過長,且直接介紹調(diào)度算法,無具體案例分析,不便于學(xué)生理解和掌握。進(jìn)程先來先服務(wù)、短進(jìn)程優(yōu)先、高優(yōu)先級優(yōu)先調(diào)度算法均適合作業(yè)調(diào)度,故可推廣到作業(yè)調(diào)度算法。另外,處理機(jī)調(diào)度算法的目標(biāo)、周轉(zhuǎn)時間與平均周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)與平均帶權(quán)周轉(zhuǎn)時間也不再作為單獨一節(jié)進(jìn)行介紹,通過進(jìn)程調(diào)度算法案例引人這兩個概念。
首先,提出問題讓學(xué)生思考:在多道程序設(shè)計環(huán)境,多個進(jìn)程可以并發(fā)執(zhí)行,但CPU只有一個,諸多進(jìn)程相互競爭使用CPU,會不會出現(xiàn)系統(tǒng)紊亂的現(xiàn)象?然后,通過全體n個人相互競爭吃餅的案例,說明多個進(jìn)程在并發(fā)執(zhí)行過程中,操作系統(tǒng)需要事先規(guī)定調(diào)度的原則,即進(jìn)程調(diào)度算法,從而引出本課主題。
先來先服務(wù)調(diào)度算法(FCFS),通過現(xiàn)實中移動大廳或銀行網(wǎng)點辦理業(yè)務(wù),引出該調(diào)度算法思想。該算法思想是進(jìn)程一直運(yùn)行到完成或因某種原因中斷才釋放處理機(jī)。比如一個飯量很大的大胖子得到了刀叉,他可能會霸占著餅連續(xù)吃很久很久,導(dǎo)致旁邊的人都在等待[7]。由此可見,F(xiàn)CFS算法比較有利于長進(jìn)程,而不利于短進(jìn)程。
短進(jìn)程優(yōu)先調(diào)度算法(SPF),形如學(xué)生在考試答題時,先選擇解答簡單、用時較短的題目。SPF算法即從就緒隊列中選出一個估計運(yùn)行時間最短的進(jìn)程,將處理機(jī)分配給它,使它立即執(zhí)行直到完成,或發(fā)生某事件導(dǎo)致阻塞而放棄處理機(jī)時再重新調(diào)度。比如一個飯量很大的大胖子,只能看著飯量小的人吃餅。由此可見,SPF調(diào)度算法對長進(jìn)程不利且導(dǎo)致了“餓死”現(xiàn)象?,F(xiàn)實情況中,用戶很難估計進(jìn)程的運(yùn)行時間,導(dǎo)致算法很難真正做到短進(jìn)程優(yōu)先調(diào)度。
以上兩種算法均未考慮輕重緩急,均不適合作為實時調(diào)度算法。
高優(yōu)先級調(diào)度算法在進(jìn)程調(diào)度時,把處理機(jī)分配給就緒隊列中優(yōu)先權(quán)最高的進(jìn)程。比如,依據(jù)病人病重的程度分配優(yōu)先級,病情越重優(yōu)先級越高,可以讓病重的病人先治療。此調(diào)度算法可應(yīng)用于實時調(diào)度算法。
經(jīng)過5年多的教學(xué)實踐,從學(xué)生及同行評價得知,師生反映良好,操作系統(tǒng)考試通過率逐年增加,目前已達(dá)到95%以上,表明本改革取得了良好的效果。
從獨立學(xué)院對學(xué)生的培養(yǎng)目標(biāo)出發(fā),根據(jù)其院校學(xué)生的特點,結(jié)合目前學(xué)校轉(zhuǎn)型發(fā)展,針對操作系統(tǒng)課程理論性強(qiáng)、概念和原理多且抽象的教學(xué)特點,將實例化教學(xué)引人操作系統(tǒng)課程,引導(dǎo)學(xué)生探知生活中的實例,與操作系統(tǒng)的抽象概念和原理對接,降低知識的抽象性,強(qiáng)化學(xué)生對具體問題的理解,使其感受到用操作系統(tǒng)理論解釋現(xiàn)實案例帶來的喜悅,激發(fā)其學(xué)習(xí)興趣,增強(qiáng)其專業(yè)學(xué)習(xí)信心。
操作系統(tǒng)課程作為高校計算機(jī)專業(yè)的核心課程,教學(xué)改革任重道遠(yuǎn)。課題組將繼續(xù)展開改革探索,如編寫適合我院的實例化操作系統(tǒng)教材、重視和強(qiáng)化實訓(xùn)教學(xué)環(huán)節(jié)等,為不斷推動獨立學(xué)院教育事業(yè)的發(fā)展而努力。
[1] 殷俊, 章立, 王瑋. 基于藝術(shù)與技術(shù)相融合的動畫專業(yè)復(fù)合創(chuàng)新型人才培養(yǎng)模式初探[J]. 中國成人教育, 2012(24): 181-183.
[1] Tanenbaum A S. Modern operating systems [M]. 3rd ed. New Jersey: Prentice Hall, 2007: 2.
[2] 梁正平, 李炎然, 王志強(qiáng). 計算思維導(dǎo)向的操作系統(tǒng)課程教學(xué)改革[J]. 計算機(jī)教育, 2012(19): 27-30.
[3] 鄭麗潔, 陳利. 操作系統(tǒng)教學(xué)中的計算思維能力培養(yǎng)[J]. 計算機(jī)教育, 2013(15): 82-84.
[4] 鄭金洲. 案例教學(xué)指南[M]. 上海: 華東師范大學(xué)出版社, 2000.
[5] 王青梅, 趙革. 國內(nèi)外案例教學(xué)法研究綜述[J]. 寧波大學(xué)學(xué)報(教育科學(xué)版),2009,31(3): 7-11.
[6] 湯小丹, 梁紅兵, 哲鳳屏, 等. 計算機(jī)操作系統(tǒng)[M]. 西安: 西安電子科技大學(xué)出版社, 2014: 35-95.
[7] 王彥新, 李晶, 王紅光.操作系統(tǒng)課程趣味化教學(xué)的探索與實踐[J]. 辦公自動化, 2013(2): 58-59.
(編輯:孫怡銘)
1672-5913(2017)01-0139-04
G642
廣西高等教育本科教學(xué)改革工程項目“獨立學(xué)院中基于CDIO的卓越軟件工程師培養(yǎng)體系研究與實踐”(2015JGA426);“基于服務(wù)區(qū)域信息產(chǎn)業(yè)園發(fā)展的應(yīng)用型本科院校物聯(lián)網(wǎng)工程專業(yè)人才培養(yǎng)研究”(2016JGZ188);廣西科技大學(xué)鹿山學(xué)院教學(xué)改革項目“應(yīng)用技術(shù)型獨立學(xué)院IT類專業(yè)教學(xué)體系改革的研究與實踐” (2015LSJG05)。
胡艷華,女,講師,研究方向為操作系統(tǒng)、計算機(jī)網(wǎng)絡(luò),19418601@qq.com。