劉杰彥,李玉軍
(電子科技大學(xué) 計算機科學(xué)與工程學(xué)院,四川 成都 611731)
計算機操作系統(tǒng)課程綜合性實驗建設(shè)探討
劉杰彥,李玉軍
(電子科技大學(xué) 計算機科學(xué)與工程學(xué)院,四川 成都 611731)
針對計算機操作系統(tǒng)課程綜合性實驗建設(shè)較薄弱的教學(xué)實際,分析國內(nèi)外高校該課程綜合性實驗開設(shè)的現(xiàn)狀以及實驗開設(shè)中存在的問題,在結(jié)合課程實際并借鑒國外高水平大學(xué)相關(guān)教學(xué)經(jīng)驗的基礎(chǔ)上,提出計算機操作系統(tǒng)課程綜合性實驗建設(shè)的方案,從實驗規(guī)劃、實驗設(shè)計、實驗指導(dǎo)、實驗開設(shè)以及考核評價等方面對該課程的綜合性實驗建設(shè)進行探討。
計算機操作系統(tǒng);綜合性實驗;系統(tǒng)化思維;資源管理
計算機操作系統(tǒng)課程主要介紹計算機操作系統(tǒng)如何對計算機資源進行有效管理和控制,以達到高效和充分利用計算機系統(tǒng)中軟硬件資源的目的[1]。它是計算機專業(yè)及相關(guān)專業(yè)的基礎(chǔ)課程和核心課程之一,在學(xué)生的計算機知識結(jié)構(gòu)中有重要的地位和作用,是計算機及相關(guān)專業(yè)知識體系中不可或缺的重要基礎(chǔ)。對該課程的綜合性實驗開展建設(shè),有助于培養(yǎng)學(xué)生的系統(tǒng)觀,能有效幫助學(xué)生建立完整的計算機操作系統(tǒng)知識體系。
國內(nèi)外的知名大學(xué)都非常重視計算機操作系統(tǒng)課程的實踐建設(shè),特別是綜合性實驗的建設(shè)。在國外,麻省理工大學(xué)針對內(nèi)存管理、任務(wù)調(diào)度和文件系統(tǒng)都分別設(shè)計了系統(tǒng)級的實驗;哈佛、普林斯頓以及加州大學(xué)伯克利分校也都將進程管理和調(diào)度、虛擬內(nèi)存和文件系統(tǒng)管理作為綜合性實驗來建設(shè);美國加州大學(xué)爾灣分校也專門開設(shè)了計算機操作系統(tǒng)的實驗課程,針對操作系統(tǒng)的幾大功能,如進程管理、文件管理和存儲管理,分別設(shè)計并開展了綜合性的實驗。類似的,國內(nèi)清華大學(xué)也專門開設(shè)了操作系統(tǒng)的專題訓(xùn)練課程。
目前國內(nèi)大多數(shù)高校對該課程的綜合性實驗建設(shè)較為薄弱,以下問題普遍存在。
當(dāng)前計算機操作系統(tǒng)課程的實驗內(nèi)容通常以基礎(chǔ)實驗為主,以電子科技大學(xué)為例,實驗內(nèi)容主要局限在進程調(diào)度算法設(shè)計、進程同步的設(shè)計、存儲管理頁面置換算法設(shè)計以及存儲管理地址轉(zhuǎn)換等基礎(chǔ)實驗,大多數(shù)實驗內(nèi)容局限于對章節(jié)單一知識點的演繹,個體實驗間缺乏有機聯(lián)系。內(nèi)容零散的實驗使得學(xué)生對操作系統(tǒng)的理解較片面,對系統(tǒng)缺乏宏觀的理解,難以建立完整的知識體系。盡管目前也以課程設(shè)計的形式開設(shè)了部分綜合性實驗,但是對實驗內(nèi)容缺乏系統(tǒng)的規(guī)劃,零散的實驗內(nèi)容不易培養(yǎng)學(xué)生建立完整的知識架構(gòu)。
國內(nèi)高校的實驗實施,通常是教師下達實驗任務(wù)后就交由學(xué)生完成,教師對實驗的實施進度沒有細致的安排與跟蹤,缺乏對實驗各階段的任務(wù)分解與學(xué)生問題的反饋,這并不利于保證實驗效果和實驗質(zhì)量。實驗考核主要基于最終實驗結(jié)果和實驗報告的質(zhì)量,實驗考核標(biāo)準(zhǔn)單一,缺乏多元化的考核評價方法。
目前,教師的實驗指導(dǎo)方法通常是給出主要任務(wù)以及實驗過程的基本步驟,實驗指導(dǎo)內(nèi)容較為粗略。同時,指導(dǎo)力量也較薄弱,以電子科技大學(xué)為例,一個老師要面對數(shù)十名學(xué)生,指導(dǎo)的深度和力度自然大打折扣。與國外大學(xué)相比,我們?nèi)狈唧w設(shè)計過程的詳細指導(dǎo),缺乏對軟硬件和算法各個模塊間聯(lián)系的分析指導(dǎo)。這種粗略的指導(dǎo)方式不利于學(xué)生順利完成具有一定難度和工作量的綜合性實驗。
由于缺乏綜合性、系統(tǒng)性設(shè)計的實戰(zhàn)經(jīng)驗,學(xué)生對操作系統(tǒng)的知識點掌握零碎,知識結(jié)構(gòu)也處于分散狀態(tài),因此學(xué)生系統(tǒng)化的問題分析能力較薄弱,解決問題的能力也不強,有待通過綜合性實驗的開展和細致深入的指導(dǎo)來提升。
基于上述分析,為了培養(yǎng)學(xué)生建立完整的操作系統(tǒng)的知識體系并提升實際問題的解決能力,縮短所學(xué)和所用的距離,我們通過借鑒國外高水平大學(xué)的經(jīng)驗,同時結(jié)合課程實際,基于現(xiàn)有的實驗實踐工作基礎(chǔ),對本課程的綜合性實驗規(guī)劃與建設(shè)進行探索,將系統(tǒng)化思維的教學(xué)模式[2-3]運用到實驗教學(xué)中,規(guī)劃與設(shè)計本課程的綜合性實驗,研究實驗的開設(shè)方式,并探索細致深入的實驗指導(dǎo)方法。具體而言,主要從以下幾個方面重點展開工作。
計算機操作系統(tǒng)課程內(nèi)容組織是基于操作系統(tǒng)的資源管理功能,即將計算機操作系統(tǒng)看作計算機軟硬件資源的管理器,資源的管理在宏觀上主要分為進程管理子系統(tǒng)(基于進程完成對CPU的管理)、內(nèi)存管理子系統(tǒng)、設(shè)備管理子系統(tǒng)和文件管理子系統(tǒng),如圖1所示。
因此,本課程綜合性實驗的規(guī)劃主要針對操作系統(tǒng)的4大功能,分別規(guī)劃與設(shè)計進程管理實驗、存儲管理實驗、文件管理實驗和設(shè)備管理實驗。針對每個功能,要從宏觀的角度出發(fā),基于知識點之間的有機聯(lián)系,將系統(tǒng)化的思維模式運用到實驗規(guī)劃設(shè)計中,注重多個知識點的融會貫通,力求讓學(xué)生對操作系統(tǒng)形成從整體到局部,從宏觀到微觀的深入了解,建立完整的知識體系,培養(yǎng)學(xué)生對問題的綜合分析能力。
圖1 計算機操作系統(tǒng)功能模塊
以進程管理子系統(tǒng)實驗的規(guī)劃為例,進程管理是操作系統(tǒng)的主要功能,進程管理子系統(tǒng)主要包括進程控制、進程調(diào)度以及資源管理等基本模塊。在確定基本模塊的基礎(chǔ)上,對每個模塊作進一步細化,如進程控制模塊,包括進程的創(chuàng)建、撤銷、執(zhí)行、阻塞、喚醒等子功能;進程調(diào)度模塊,要考慮采用什么進程調(diào)度算法,還要考慮與進程控制模塊的關(guān)系,因為調(diào)度過程中進程狀態(tài)會發(fā)生變化;資源管理模塊,需要包括資源的分配和回收等管理功能,同時要考慮在進程對資源進行互斥或共享訪問時,協(xié)調(diào)進程對資源的訪問順序,與進程控制模塊協(xié)作來完成進程之間的同步。
在實驗規(guī)劃的基礎(chǔ)上,對現(xiàn)有的基礎(chǔ)類實驗進行梳理,除了現(xiàn)有的實驗?zāi)K,還需要增加其他模塊,并對各個模塊作有機整合與完善,展開綜合性實驗的設(shè)計實施。以電子科技大學(xué)為例,現(xiàn)有的進程管理實驗局限于對具體進程調(diào)度算法的模擬,或者是對同步問題的演繹,知識點零散。為了構(gòu)建進程管理子系統(tǒng)的綜合性實驗,在實驗規(guī)劃的基礎(chǔ)上,我們將現(xiàn)有的進程調(diào)度算法實驗和進程同步實驗作為基礎(chǔ),完善進程控制塊(PCB,process control block)結(jié)構(gòu),為進程設(shè)置不同的優(yōu)先級,設(shè)計進程控制的各個功能函數(shù),在現(xiàn)有的時間片輪轉(zhuǎn)調(diào)度算法基礎(chǔ)上,引入結(jié)合時間片輪轉(zhuǎn)和優(yōu)先級的調(diào)度算法,同時增加資源管理模塊,在系統(tǒng)中設(shè)計不同的資源類型和資源數(shù)量,進程執(zhí)行中隨機對資源提出申請和釋放,資源管理模塊基于進程對資源的申請和釋放來完成資源的分配和回收,同時能夠在資源不足時阻塞進程以及在資源釋放后喚醒進程。除上述設(shè)計外,還增加對I/O功能和中斷功能的模擬,即隨機產(chǎn)生I/O或中斷請求,系統(tǒng)在收到I/O或中斷請求后,根據(jù)請求類型,完成相應(yīng)的進程調(diào)度、控制或狀態(tài)轉(zhuǎn)換功能,如調(diào)度進程執(zhí)行或阻塞當(dāng)前進程。
總之,在現(xiàn)有的實驗基礎(chǔ)上,通過添加相關(guān)功能模塊并對各個模塊有機整合,最終完成進程管理子系統(tǒng)綜合性實驗的設(shè)計。通過這種實驗的建設(shè)開展,讓學(xué)生將進程控制、調(diào)度和資源管理等零散的知識點有機結(jié)合起來,從而建立完整的操作系統(tǒng)進程管理功能的知識體系。
基于實驗內(nèi)容,探索切實有效的實驗指導(dǎo)方式,提出細致深入的實驗指導(dǎo)方法,綜合性的實驗往往具有一定難度,因此詳細深入的實驗指導(dǎo)方式有助于學(xué)生順利完成實驗。我們注意到,國外大學(xué)的實驗指導(dǎo)非常細致深入,為此,可以借鑒國外高水平大學(xué)的經(jīng)驗,對實驗指導(dǎo)作深入細化。指導(dǎo)內(nèi)容不僅僅包括實驗的基本要求和主要步驟,還包括引導(dǎo)學(xué)生對各個模塊間的關(guān)系作分析、對相關(guān)數(shù)據(jù)結(jié)構(gòu)作分析、對相關(guān)算法的流程作分析等。
為了完整地分析一個綜合性試驗的建設(shè),我們以進程管理子系統(tǒng)綜合性實驗為例來闡述詳細深入的實驗指導(dǎo)方法。該實驗的目的是要設(shè)計實現(xiàn)一個進程管理子系統(tǒng),為此,實驗指導(dǎo)首先給出進程管理子系統(tǒng)的基本功能需求、所包含的模塊以及各個模塊功能的詳細需求分析;然后,針對各模塊,分析相應(yīng)的數(shù)據(jù)結(jié)構(gòu)特點和各結(jié)構(gòu)之間所存在的聯(lián)系,如進程控制塊(PCB)數(shù)據(jù)結(jié)構(gòu)的設(shè)計、資源控制塊(RCB,resource control block)數(shù)據(jù)結(jié)構(gòu)的設(shè)計、PCB 和RCB間的相互引用關(guān)系等;在此基礎(chǔ)上,基于各個模塊的功能,分析模塊間的聯(lián)系,包括分析進程控制模塊和進程調(diào)度模塊間的關(guān)系(如進程創(chuàng)建、撤銷、阻塞等事件的發(fā)生會促發(fā)進程調(diào)度)、分析進程調(diào)度模塊和資源管理模塊之間的關(guān)系(如進程執(zhí)行中對資源的申請和釋放將調(diào)用資源管理模塊,而資源管理中對資源的分配和回收也可能促發(fā)進程調(diào)度);最后,實驗指導(dǎo)還需要給出典型的測試用例,用例中要包含各種優(yōu)先級進程的給定和各種資源分配情況的模擬,并分析各個測試用例的測試目標(biāo)和預(yù)期測試結(jié)果。
除了給出深入細致的指導(dǎo)分析以外,還需加強實驗指導(dǎo)隊伍的建設(shè),根據(jù)學(xué)生的數(shù)量按比例增加指導(dǎo)人員。以電子科技大學(xué)為例,我們通過一個教師配備多名研究生助教來增強指導(dǎo)力量,實驗前先對助教培訓(xùn),實驗中讓助教配合教師參與指導(dǎo),實行助教責(zé)任制,保證助教認(rèn)真負(fù)責(zé)若干學(xué)生的實驗指導(dǎo),加強指導(dǎo)的深度和力度。在實驗過程中,教師通過分階段與學(xué)生以及助教交流,跟蹤學(xué)生的實驗進度,關(guān)注學(xué)生在具體實驗階段存在的問題,適時調(diào)整指導(dǎo)方法,直接或通過助教給予學(xué)生深入細致的指導(dǎo),從而解決實驗中學(xué)生普遍存在的“實驗做什么,怎么做”的問題。
基礎(chǔ)類的實驗主要針對單一的知識點,大部分實驗的工作量和難度都不高,因此以學(xué)生個體為單位開展。綜合性實驗的工作量和難度相對較大,可以以小組為單位開展,通過小組內(nèi)部的分工協(xié)作來完成實驗。實驗的開設(shè),以培養(yǎng)學(xué)生系統(tǒng)化的思維模式、實現(xiàn)對問題的宏觀把握和微觀分析為目標(biāo)[4]。因此,可以結(jié)合課堂講授和課后實施來完成,具體流程如圖2所示。實驗開設(shè)前安排好實驗進度,課堂講授根據(jù)實驗內(nèi)容分次進行,首次課堂講授給出實驗的主要任務(wù)和總體設(shè)計需求分析,讓學(xué)生從宏觀上總體把握問題,之后分次講解實驗的各模塊和相應(yīng)的實施方法,引導(dǎo)學(xué)生從微觀上分析具體問題,每次根據(jù)講授內(nèi)容給出本次任務(wù)要求并讓學(xué)生在課后開展。以進程管理子系統(tǒng)實驗為例來分析實驗的開設(shè)方法,該實驗的課堂教學(xué)可以安排3次,每次1~2學(xué)時:第1次介紹進程管理子系統(tǒng)的總體功能需求和總體設(shè)計所包含的進程控制、進程調(diào)度和資源管理等主要模塊,模塊間的關(guān)系和涉及的PCB和RCB等數(shù)據(jù)結(jié)構(gòu);第2次介紹各個模塊的具體功能分析、實現(xiàn)技術(shù)和模塊間的整合;第3次介紹進程管理子系統(tǒng)功能測試程序的編寫方法,涉及進程控制與調(diào)度、資源申請和釋放相關(guān)的測試用例和測試結(jié)果的分析。每次根據(jù)講授內(nèi)容給學(xué)生布置相關(guān)任務(wù),學(xué)生根據(jù)任務(wù)要求和個人能力情況,在小組內(nèi)進行任務(wù)分工,在課后完成相應(yīng)的實驗內(nèi)容。每次課堂講授時,學(xué)生需要對上次任務(wù)的完成情況和目前存在問題作匯報,以便教師及時跟蹤學(xué)生的實驗進度,了解學(xué)生存在的問題,適時調(diào)整教學(xué)進度和教學(xué)內(nèi)容。
圖2 實驗開設(shè)過程
實驗考核采用多元化的方式,對同一實驗內(nèi)容設(shè)立不同的實驗工作量和難度等級要求,如針對進程管理子系統(tǒng),可根據(jù)實驗中對進程種類和優(yōu)先級的設(shè)置情況以及資源種類和數(shù)量的設(shè)置情況來決定不同的實驗工作量,根據(jù)死鎖問題的發(fā)現(xiàn)、解決來決定不同的實驗難度。不同工作量和不同難度的任務(wù)的要求有所不同,對應(yīng)著不同的成績標(biāo)準(zhǔn),學(xué)生在完成基本要求的基礎(chǔ)上,可根據(jù)自身情況決定是否進一步完成難度或工作量要求更高的任務(wù)??己藭r對學(xué)生任務(wù)的總體完成情況、報告的質(zhì)量、軟件的質(zhì)量以及小組的分工協(xié)作情況等方面賦予不同的權(quán)重,分別針對各方面給予成績評價,并綜合各方面給予總評。
計算機操作系統(tǒng)是計算機專業(yè)及相關(guān)專業(yè)的專業(yè)基礎(chǔ)課程和核心課程之一。對該課程綜合性的實驗進行建設(shè)和開展,有助于培養(yǎng)學(xué)生的系統(tǒng)觀以及綜合的專業(yè)知識應(yīng)用能力,這也是專業(yè)教學(xué)的目標(biāo)。針對現(xiàn)有實驗教學(xué)的薄弱環(huán)節(jié),可將系統(tǒng)化思維的教學(xué)模式應(yīng)用到實驗教學(xué)中,規(guī)劃與設(shè)計計算機操作系統(tǒng)課程的綜合性的實驗,通過綜合性實驗的建設(shè)與開展,力求讓學(xué)生建立完整的操作系統(tǒng)知識體系,從而縮短學(xué)與用的距離。
[1] William Stallings. 操作系統(tǒng): 精髓與設(shè)計原理(第七版)[M]. 陳向群, 陳渝, 譯. 北京:電子工業(yè)出版社, 2012: 38-76.
[2] 李朝霞, 付禾芳. 基于系統(tǒng)化思維培養(yǎng)的計算機基礎(chǔ)實踐教學(xué)[J]. 現(xiàn)代計算機: 專業(yè)版, 2010(8): 56-57.
[3] 楊曉敏, 吳煒, 劉志芳, 等.“計算機操作系統(tǒng)”課程教學(xué)改革之探索與實踐[J]. 教育教學(xué)論壇, 2015(7): 110-111.
[4] 劉杰彥, 向渝, 詹思瑜.“計算機網(wǎng)絡(luò)編程”的教學(xué)與實驗探討[J]. 實驗科學(xué)與技術(shù), 2015(1): 115-118.
1672-5913(2017)11-0142-04
G642
電子科技大學(xué)教學(xué)改革研究項目(2016XJYYB024);電子科技大學(xué)教師實驗教學(xué)研究項目(BKSJY-2016-49);中央高?;緲I(yè)務(wù)費項目(ZYGX2016J089)。
劉杰彥,女,副教授,研究方向為并行與分布式計算,liujy@uestc.edu.cn。
(見習(xí)編輯:景貴英)