摘要:本文針對(duì)高等院校計(jì)算機(jī)操作系統(tǒng)課程的教學(xué)研究和課程建設(shè),分析了教學(xué)對(duì)象和職業(yè)領(lǐng)域?qū)φn程內(nèi)容和人才能力的要求,分別就學(xué)生、教師對(duì)操作系統(tǒng)的看法和關(guān)系進(jìn)行了討論,同時(shí)根據(jù)作者的實(shí)踐過(guò)程,就建立操作系統(tǒng)課程體系和課程建設(shè)的問(wèn)題給出了建議。
關(guān)鍵詞:操作系統(tǒng);課程體系;課程建設(shè);教學(xué)改革
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1672-5913 (2007) 19-0035-05
Pedagogical Research on Operating System
Naiqi Liu,School of CSE,
University of Elec. Science Tech. of China, Chengdu, Sichuan, 610054
Abstract:Aim at Operating System course teaching and curricular development in universities, author analysis the demand of teaching object and requirement in the professional domain. The issues between students, teachers and Operating System course are discussed. Based on author’s practice and experience, the suggestions on curricular architecture and development is made.
Keywords:Operating system;curricular architecture;course development
眾所周知,“計(jì)算機(jī)操作系統(tǒng)”是計(jì)算機(jī)學(xué)科最重要的專業(yè)基礎(chǔ)課程,所有高等院校中的計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)都毫無(wú)例外地開(kāi)設(shè)了計(jì)算機(jī)操作系統(tǒng)課程,并作為專業(yè)核心課程給予重點(diǎn)建設(shè)。而且,隨著計(jì)算技術(shù)進(jìn)入各個(gè)行業(yè),與信息技術(shù)相關(guān)的專業(yè),如:通信工程、軟件工程、信息安全、自動(dòng)控制,等,也將計(jì)算機(jī)操作系統(tǒng)列入到專業(yè)課程計(jì)劃中。此外,幾乎所有的高職高專、中職學(xué)校中的計(jì)算機(jī)應(yīng)用和軟件工程相關(guān)專業(yè),操作系統(tǒng)也是專業(yè)技術(shù)課程中的一項(xiàng)重要內(nèi)容。操作系統(tǒng)已經(jīng)從神壇上走下,將其神秘和抽象轉(zhuǎn)變?yōu)槠匠:蛯?shí)際。人人都希望掌握操作系統(tǒng)這個(gè)最核心、基礎(chǔ)的計(jì)算機(jī)系統(tǒng)軟件,希望在操作系統(tǒng)支持的平臺(tái)上進(jìn)行自己的工作和設(shè)計(jì)開(kāi)發(fā)。然而,應(yīng)用對(duì)操作系統(tǒng)的期望和需求不盡一樣,不同高校的培養(yǎng)目標(biāo)和對(duì)象具有較大差異性,計(jì)算機(jī)操作系統(tǒng)課程的教學(xué)內(nèi)容也必須根據(jù)不同的教學(xué)對(duì)象進(jìn)行設(shè)計(jì)、組織和配置,讓學(xué)生真正能夠進(jìn)入操作系統(tǒng)、熟悉操作系統(tǒng)、掌握操作系統(tǒng)和應(yīng)用操作系統(tǒng)。
1關(guān)注市場(chǎng)對(duì)操作系統(tǒng)技術(shù)的需求
市場(chǎng)需求和技術(shù)發(fā)展是操作系統(tǒng)自身發(fā)展的推動(dòng)力,對(duì)操作系統(tǒng)的關(guān)注者歷來(lái)分為三大群體:其一是操作系統(tǒng)的設(shè)計(jì)者;其二是基于操作系統(tǒng)的開(kāi)發(fā)者;其三是操作系統(tǒng)的使用者。三類群體對(duì)操作系統(tǒng)的期望和目的是不完全一樣的,所獲取和掌握的技術(shù)范圍和知識(shí)架構(gòu)也是不一樣的。作為教育者,尤其是計(jì)算機(jī)操作系統(tǒng)課程的教師要掌握的知識(shí)結(jié)構(gòu)則與這三類群體密切相關(guān)。
操作系統(tǒng)的設(shè)計(jì)者面對(duì)著飛速發(fā)展的計(jì)算機(jī)和智能設(shè)備的硬件資源和日新月異的應(yīng)用需求,他們考慮的是如何最大限度地利用這些資源,構(gòu)建一個(gè)安全可信的公共系統(tǒng)平臺(tái),提供更可靠、方便、完善的服務(wù)。承擔(dān)的是一種“承上啟下”的工作,即向上為開(kāi)發(fā)者和用戶提供服務(wù),向下為硬件制造商提供支持和擴(kuò)展。設(shè)計(jì)者的知識(shí)結(jié)構(gòu)是廣泛的,硬件體系結(jié)構(gòu)和軟件體系結(jié)構(gòu)的知識(shí)是基本的要求,對(duì)操作系統(tǒng)理論、架構(gòu)、算法和設(shè)計(jì)也具有較高的造詣,大型軟件工程的經(jīng)驗(yàn)也是不可缺少的。這類人才的培養(yǎng)的過(guò)程是較長(zhǎng)期的,從學(xué)校出來(lái)的人,經(jīng)過(guò)基礎(chǔ)階段、研究階段、實(shí)踐階段才能夠積累設(shè)計(jì)和開(kāi)發(fā)的經(jīng)驗(yàn),基礎(chǔ)知識(shí)的奠基無(wú)疑是很重要的。能不能從事操作系統(tǒng)設(shè)計(jì),修改和更新操作系統(tǒng),構(gòu)建和設(shè)計(jì)嵌入系統(tǒng)控制軟件等都是一種期望。
基于操作系統(tǒng)的開(kāi)發(fā)者是將操作系統(tǒng)推而廣之的重要群體,他們以各類操作系統(tǒng)為平臺(tái)開(kāi)發(fā)其自己的系統(tǒng)、軟件和產(chǎn)品,這些產(chǎn)品和軟件依賴于相關(guān)的操作系統(tǒng),也是操作系統(tǒng)應(yīng)用的支撐和拓展。作為開(kāi)發(fā)人員,面對(duì)的是確定開(kāi)發(fā)平臺(tái)、選擇開(kāi)發(fā)工具、利用開(kāi)發(fā)資源。相信這個(gè)系統(tǒng)平臺(tái)是安全可靠的(可信賴的),也期望操作系統(tǒng)的功能更加強(qiáng)大,能夠?yàn)閼?yīng)用開(kāi)發(fā)提供更多的系統(tǒng)資源和調(diào)用方式。他們關(guān)心的是與操作系統(tǒng)(軟件與硬件)的接口和資源調(diào)用,應(yīng)用程序與系統(tǒng)的交互,以及系統(tǒng)運(yùn)行機(jī)制和效率。這一類知識(shí)結(jié)構(gòu)對(duì)開(kāi)發(fā)者是非常重要的,不僅對(duì)于計(jì)算機(jī)專業(yè)的學(xué)生,對(duì)于其他專業(yè)的學(xué)生學(xué)習(xí)計(jì)算機(jī)操作系統(tǒng)也是非常重要的。
廣大的普通計(jì)算機(jī)和智能終端(設(shè)備)的用戶,他們面對(duì)的、所認(rèn)識(shí)的操作系統(tǒng)首先是使用,如何把面前的這個(gè)系統(tǒng)用熟,熟能生巧、巧能生華。哪些系統(tǒng)功能和系統(tǒng)支持的軟件對(duì)自己是非常重要的、必需的?如何方便地使用?如何快速地得到回應(yīng)?如何對(duì)工作有輔助支持?出現(xiàn)故障如何快速恢復(fù)?如何防御惡意程序的侵?jǐn)_?這類應(yīng)用知識(shí)在面向職業(yè)的需求中得到極大重視,也是實(shí)用型人才培養(yǎng)中很重要的一環(huán)。
對(duì)于進(jìn)入高校相關(guān)專業(yè)學(xué)習(xí)的學(xué)生,他們無(wú)疑是未來(lái)潛在的系統(tǒng)設(shè)計(jì)者、系統(tǒng)開(kāi)發(fā)者和系統(tǒng)使用者,從學(xué)校學(xué)習(xí)的知識(shí)奠定了一個(gè)基礎(chǔ)。但是學(xué)校的教學(xué)對(duì)象(從另一個(gè)角度來(lái)說(shuō)是進(jìn)入學(xué)校的學(xué)生生源)是有差異的,并非每一個(gè)學(xué)生都會(huì)成為操作系統(tǒng)的設(shè)計(jì)者,更多的是基于操作系統(tǒng)的開(kāi)發(fā)者和使用者,認(rèn)識(shí)到這種金字塔式的人才結(jié)構(gòu),就需要針對(duì)不同的教學(xué)對(duì)象研究其知識(shí)結(jié)構(gòu)的構(gòu)建,課程知識(shí)點(diǎn)的關(guān)聯(lián)和教學(xué)內(nèi)容的側(cè)重。另外還要分析現(xiàn)代操作系統(tǒng)究竟包含哪些內(nèi)容?不同的對(duì)象需要掌握哪些不同的知識(shí)結(jié)構(gòu),掌握的深度如何?進(jìn)行何種能力鍛煉?課程內(nèi)容和講授方法應(yīng)當(dāng)有哪些不同?這樣,知識(shí)體系和課程體系就明晰了。所以,教學(xué)研究是教學(xué)改革和提高教學(xué)效果必須開(kāi)展的工作。
2研究操作系統(tǒng)課程對(duì)象的需求層次
每年從高等院校畢業(yè)的計(jì)算機(jī)和相關(guān)專業(yè)的學(xué)生,都要求熟悉和掌握操作系統(tǒng)的知識(shí),而學(xué)習(xí)是需要有動(dòng)力的,“要我學(xué)”和“我要學(xué)”有根本的區(qū)別。那么,促使學(xué)生學(xué)習(xí)操作系統(tǒng)的動(dòng)力在哪里?從狹義的觀點(diǎn)來(lái)看,考研和就業(yè)是本科生目前兩個(gè)最實(shí)際的目標(biāo),操作系統(tǒng)課程涉及的內(nèi)容對(duì)學(xué)生來(lái)說(shuō)都十分重要,但對(duì)不同目標(biāo)的實(shí)際要求又有不小的區(qū)別。
考研是一條指揮棒,操作系統(tǒng)課程內(nèi)容成為計(jì)算機(jī)專業(yè)考研內(nèi)容中的重要部分,為達(dá)到既定目標(biāo),不少人已經(jīng)分析和研究了歷次考研的考題和內(nèi)容分布,分別包含了傳統(tǒng)操作系統(tǒng)理論、模型、結(jié)構(gòu)和算法,以及涉及四個(gè)基本模塊(進(jìn)程、存儲(chǔ)、文件、設(shè)備)的知識(shí)。對(duì)于要考研的學(xué)生來(lái)說(shuō),課堂知識(shí)是不夠的,必須另有一套學(xué)習(xí)計(jì)劃。而IT行業(yè)對(duì)開(kāi)發(fā)人員的要求,則重在基于操作系統(tǒng)的開(kāi)發(fā),要求學(xué)生學(xué)完這門(mén)課程后,除掌握基本知識(shí)外,能夠利用操作系統(tǒng)提供的支持進(jìn)行系統(tǒng)和應(yīng)用開(kāi)發(fā)設(shè)計(jì)。操作系統(tǒng)課程內(nèi)容因此就擴(kuò)展到軟件架構(gòu)、系統(tǒng)調(diào)用、應(yīng)用接口(API調(diào)用等)、程序設(shè)計(jì)與操作系統(tǒng)的關(guān)系,等,這也是對(duì)學(xué)生操作系統(tǒng)應(yīng)用能力要求??梢?jiàn),理論與實(shí)踐在這里又一次交匯。由于課程教學(xué)時(shí)間有限,課程內(nèi)容的組織和實(shí)施就是一個(gè)值得研究的問(wèn)題。
在教學(xué)內(nèi)容上,IEEE/ACM長(zhǎng)期強(qiáng)調(diào)理論、抽象和設(shè)計(jì)之間的關(guān)系,要求教師理解課程體系中的點(diǎn)、線、面的關(guān)系。這里,理論到抽象或者抽象到理論是理論研究的過(guò)程,而抽象到設(shè)計(jì)或者理論到設(shè)計(jì)是工程實(shí)現(xiàn)的過(guò)程。然而,我們的教學(xué)內(nèi)容過(guò)于抽象,缺乏抽象到設(shè)計(jì)、抽象到應(yīng)用的過(guò)程。這樣,學(xué)生面對(duì)的操作系統(tǒng)仍然是一個(gè)模糊的框架,甚至框架都不甚清楚,仍然是“知其然而不知其所以然”。例如:操作系統(tǒng)到底是如何被引入計(jì)算機(jī)系統(tǒng)的?操作系統(tǒng)軟件模塊與系統(tǒng)硬件模塊的交接點(diǎn)是怎樣的?程序是如何從順序執(zhí)行過(guò)渡到并發(fā)或者并行執(zhí)行的?進(jìn)程的切換到底是怎樣進(jìn)行和完成的?一個(gè)操作系統(tǒng)中是否包含了所有調(diào)度算法??jī)?nèi)存的分頁(yè)與實(shí)際的內(nèi)存容量和地址有什么關(guān)系?操作系統(tǒng)對(duì)接口的驅(qū)動(dòng)是怎樣進(jìn)行的?學(xué)生往往知道了概念,但實(shí)際動(dòng)手(設(shè)計(jì)、編程、實(shí)驗(yàn))時(shí)又往往不知所措。
有人會(huì)說(shuō),操作系統(tǒng)就是講原理的,應(yīng)用不在其例。實(shí)際上,學(xué)習(xí)的目的就是為了用,只有知識(shí)而不用,知識(shí)便會(huì)老化,也不會(huì)轉(zhuǎn)變?yōu)槟芰Γ驗(yàn)橹R(shí)并不等于能力。自然,大學(xué)四年中學(xué)生不可能學(xué)到所有的東西,需要掌握的:一是基本知識(shí),二是基本技術(shù)(如編程),三是開(kāi)發(fā)工具(人利用工具而生存),四是應(yīng)用技能。本科生需要培養(yǎng)獨(dú)立和協(xié)同工作能力。而研究生需要培養(yǎng)獨(dú)立和協(xié)同研究能力。這樣,操作系統(tǒng)在本科階段的課程內(nèi)容是原理與應(yīng)用的交叉,根據(jù)不同培養(yǎng)對(duì)象在理論與應(yīng)用之間分配權(quán)重。例如:鼓勵(lì)考研者加強(qiáng)結(jié)構(gòu)、模型、算法、過(guò)程的學(xué)習(xí);對(duì)應(yīng)用開(kāi)發(fā)者要求掌握操作系統(tǒng)的系統(tǒng)資源,熟悉系統(tǒng)編程、開(kāi)發(fā)包與開(kāi)發(fā)工具、系統(tǒng)控件,等;針對(duì)使用者強(qiáng)調(diào)“我能用操作系統(tǒng)做什么”,熟悉系統(tǒng)管理,系統(tǒng)維護(hù)和故障處理?!鞍巡僮飨到y(tǒng)玩兒轉(zhuǎn)”(學(xué)生語(yǔ)言)不愁找不到好的工作,這就是事實(shí),也是IT企業(yè)對(duì)開(kāi)發(fā)和應(yīng)用人員的基本期望。
在我們的教學(xué)中有一個(gè)例子,即計(jì)算機(jī)專業(yè)的學(xué)生學(xué)習(xí)計(jì)算機(jī)是“從里往外學(xué)”,其他專業(yè)的學(xué)生則是“從外往里學(xué)”。也就是說(shuō),計(jì)算機(jī)專業(yè)的學(xué)生除了會(huì)使用計(jì)算機(jī)外,還應(yīng)當(dāng)能夠“改進(jìn)”、“增強(qiáng)”和“設(shè)計(jì)”計(jì)算機(jī)。對(duì)于操作系統(tǒng)也是這樣。不過(guò)由于培養(yǎng)對(duì)象的差異性以及主流操作系統(tǒng)產(chǎn)品的壟斷性,人們更多地傾向于應(yīng)用。但需要提醒學(xué)生的是,應(yīng)用不僅僅是會(huì)使用,而是“創(chuàng)新性”的使用。
3操作系統(tǒng)課程教師的責(zé)任
對(duì)于承擔(dān)知識(shí)傳授的教育工作者,面對(duì)著迅速發(fā)展的信息技術(shù)和計(jì)算資源,面臨自身的知識(shí)更新。信息社會(huì)提供了信息獲取和知識(shí)學(xué)習(xí)的多種途徑,在對(duì)新信息、新知識(shí)的獲取方面教師與學(xué)生處在同一條起跑線上,唯一區(qū)別僅在于對(duì)獲取信息的處理和使用。教師也每天在用Windows或者UNIX/Linux系統(tǒng),面對(duì)不斷更新的操作系統(tǒng)技術(shù)。
作為講授操作系統(tǒng)課程的教師,為了上好這門(mén)課,我們認(rèn)為需要注意以下幾個(gè)方面:
其一,根據(jù)自己的教學(xué)和科研方向,建立自己的知識(shí)結(jié)構(gòu)。要非常熟悉所講授的操作系統(tǒng)課程的內(nèi)容,清楚教學(xué)知識(shí)點(diǎn)和系統(tǒng)框架,明晰技術(shù)點(diǎn)和案例。
其二,了解系統(tǒng)硬件。把操作系統(tǒng)和計(jì)算機(jī)體系結(jié)構(gòu)(或組成結(jié)構(gòu))結(jié)合起來(lái),沒(méi)有對(duì)體系結(jié)構(gòu)和硬件組成的理解,不能很好地解釋操作系統(tǒng)的架構(gòu)和實(shí)現(xiàn)。所以,以下系統(tǒng)硬件概念是與操作系統(tǒng)密切相關(guān)的,例如:寄存器、時(shí)鐘、中斷、堆與堆棧、緩沖區(qū)、存儲(chǔ)結(jié)構(gòu),等。當(dāng)然,這些概念可以在前導(dǎo)課程中講授,在操作系統(tǒng)課程中復(fù)習(xí)。
其三,了解系統(tǒng)軟件。把操作系統(tǒng)作為一個(gè)大型軟件架構(gòu),來(lái)看它的各個(gè)模塊,以及各個(gè)模塊之間的關(guān)系。以下概念與軟件相關(guān),例如:數(shù)據(jù)結(jié)構(gòu)(鏈表、結(jié)構(gòu)、指針、嵌套,等)、程序設(shè)計(jì)(順序、并發(fā)、并行結(jié)構(gòu))、參數(shù)傳遞(堆棧、消息、數(shù)據(jù)塊)、調(diào)用方式,等。有的概念可以在前導(dǎo)課程中解決,而有的內(nèi)容則需要在操作系統(tǒng)課程中給予詮釋。操作系統(tǒng)軟件模塊之間的調(diào)用和參數(shù)傳遞非常頻繁,與內(nèi)存占用關(guān)系非常緊密,這是關(guān)鍵所在。但從另一個(gè)角度,需要對(duì)學(xué)生講清楚:操作系統(tǒng)實(shí)際上也是一個(gè)數(shù)據(jù)結(jié)構(gòu)和表格處理程序,它每時(shí)每刻都在創(chuàng)建、填寫(xiě)、檢測(cè)、判斷、清除、恢復(fù)相關(guān)表格中的內(nèi)容,以維持系統(tǒng)的正常運(yùn)行。
其四,熟悉操作系統(tǒng)平臺(tái)。教師一定要熟悉當(dāng)前的主流操作系統(tǒng),至少是Windows,最好加上Linux。這兩個(gè)系統(tǒng)是可以同時(shí)安裝在一臺(tái)個(gè)人計(jì)算機(jī)上的(實(shí)際可以安裝四個(gè)不同的操作系統(tǒng))。了解和熟悉系統(tǒng)對(duì)內(nèi)(與計(jì)算機(jī)系統(tǒng)硬件)、對(duì)外(外部資源和應(yīng)用支持)的關(guān)系、結(jié)構(gòu)和定位。這樣,當(dāng)學(xué)生問(wèn)到一些實(shí)際問(wèn)題,就可能迎刃而解。同時(shí),自己嘗試去做一些有關(guān)操作系統(tǒng)的實(shí)驗(yàn),設(shè)計(jì)經(jīng)驗(yàn)對(duì)教師來(lái)說(shuō)是極大的財(cái)富,因?yàn)榻?jīng)驗(yàn)只能意會(huì),而不可言傳。
其五,作為教師還需要關(guān)注國(guó)際著名軟件廠商,如微軟、IBM、Sun、Bea等公司在操作系統(tǒng)開(kāi)發(fā)上正在進(jìn)行的相關(guān)工作,這些工作也許是十年以后會(huì)成為主流的技術(shù)和平臺(tái)。也要經(jīng)常去看看IEEE的Operating System Review期刊,發(fā)現(xiàn)一些新的思路(如未來(lái)的操作系統(tǒng)“新”在哪里?什么可以代替操作系統(tǒng)?EFI與固化操作系統(tǒng),等)。不過(guò),新技術(shù)并非成熟技術(shù),可以在課程內(nèi)容的展望部分引導(dǎo)學(xué)生(特別是研究生)去思考分析,拓展學(xué)生的視野,也增強(qiáng)教師自己的知識(shí)結(jié)構(gòu)。
在現(xiàn)代教育環(huán)境下,教師要引導(dǎo)學(xué)生學(xué)習(xí),而不是灌輸知識(shí)。根據(jù)培養(yǎng)目標(biāo)和教授對(duì)象的不同,教師有必要提醒和引導(dǎo)學(xué)生,分析專業(yè)發(fā)展趨勢(shì)和職業(yè)期望,幫助學(xué)生建立一個(gè)適合自己個(gè)人發(fā)展的計(jì)劃,形成一個(gè)適合自己的知識(shí)架構(gòu)和能力架構(gòu),并按照這樣的計(jì)劃逐步實(shí)施。這種適合個(gè)人的計(jì)劃可以將其他課程都包括進(jìn)來(lái),哪些知識(shí)點(diǎn)是構(gòu)成本專業(yè)的基本知識(shí)結(jié)構(gòu)?哪些課程是專業(yè)核心課程必須要拿到學(xué)分的?哪些課程對(duì)培養(yǎng)能力有特殊的要求?例如:考研的計(jì)劃或者就業(yè)的準(zhǔn)備,不同的計(jì)劃就會(huì)有相應(yīng)的知識(shí)儲(chǔ)備和積累,知識(shí)積累就會(huì)產(chǎn)生互補(bǔ)和互促的現(xiàn)象,反過(guò)來(lái)又加強(qiáng)了知識(shí)的記憶。儲(chǔ)備和積累,厚積而薄發(fā),就可以應(yīng)變不同的機(jī)遇,也增加了學(xué)生自信的基礎(chǔ)。
4操作系統(tǒng)課程建設(shè)
上好一門(mén)課程只是一個(gè)良好的開(kāi)端,保持這門(mén)課程持續(xù)發(fā)展,形成一門(mén)具有特色的課程,一門(mén)受學(xué)生歡迎的課程,則需要進(jìn)行課程建設(shè)。如果從教學(xué)評(píng)估的角度來(lái)看,不需要各個(gè)學(xué)校千篇一律、千人一面。只要有它自己的專業(yè)優(yōu)勢(shì)、學(xué)科優(yōu)勢(shì)和特色,就是成功的,課程建設(shè)也是這樣。操作系統(tǒng)課程可以很好地體現(xiàn)一種“建設(shè)”過(guò)程,這個(gè)過(guò)程就是理清思路、建立體系、明晰方向、落實(shí)責(zé)任。根據(jù)我們的理解和實(shí)踐,如下一些工作是重要的。
(1) 建立一種課程體系
什么是課程體系?體系(Architecture)這個(gè)詞在建筑學(xué)中體現(xiàn)了一種構(gòu)建,一種層次化、模塊化的美學(xué)關(guān)聯(lián)。在教育學(xué)中,廣義的指圍繞專業(yè)培養(yǎng)目標(biāo)配置相應(yīng)的課程,保證專業(yè)知識(shí)的傳授和實(shí)踐能力的鍛煉,同時(shí)建立一整套相關(guān)的教學(xué)計(jì)劃、質(zhì)量保障、教學(xué)方法、教材建設(shè)、評(píng)價(jià)體系,等。而狹義可專指一門(mén)課程本身實(shí)施的架構(gòu)和相關(guān)支撐,確定教學(xué)目標(biāo),構(gòu)建課程平臺(tái)、知識(shí)層次與模塊,平臺(tái)為共性,層次和模塊為個(gè)性。課程體系應(yīng)當(dāng)以學(xué)生的發(fā)展為本,建立科學(xué)的、可操作的架構(gòu)。
目前,無(wú)論重點(diǎn)院校和普通院校的計(jì)算機(jī)專業(yè)本科都開(kāi)設(shè)了計(jì)算機(jī)操作系統(tǒng)課程,相關(guān)碩士專業(yè)學(xué)科也大多數(shù)設(shè)置了操作系統(tǒng)課程,高職高專以及其他相關(guān)專業(yè)根據(jù)不同情況也開(kāi)設(shè)了操作系統(tǒng)課程。顯然,各自的培養(yǎng)目標(biāo)不同,培養(yǎng)對(duì)象不同,角色需求不同,課程的教學(xué)層次和內(nèi)容也需要不同,因此課程體系的設(shè)置和教材選用的原則應(yīng)當(dāng)是保證專業(yè)基礎(chǔ),緊跟發(fā)展潮流,必須適應(yīng)分類培養(yǎng)的需要。
研究生和本科生的操作系統(tǒng)課程內(nèi)容和要求是不一樣的,如果在本科階段學(xué)過(guò)操作系統(tǒng)的學(xué)生進(jìn)入研究生階段再學(xué)操作系統(tǒng),如果課程的內(nèi)容沒(méi)有變化,那是教學(xué)和教師的失誤。因此,需要研究和分析操作系統(tǒng)課程的教學(xué)層次。
“操作系統(tǒng)原理”是大多數(shù)學(xué)校本科階段的主要課程,為了解決應(yīng)用、實(shí)踐和方向等問(wèn)題,不少學(xué)校還分別開(kāi)設(shè)了“操作系統(tǒng)實(shí)驗(yàn)”、“操作系統(tǒng)應(yīng)用”、“嵌入式操作系統(tǒng)”,等,以及針對(duì)主流操作系統(tǒng)的“Windows操作系統(tǒng)”,“UNIX/Linux系統(tǒng)”、“Symbian系統(tǒng)”等,這些課程都是操作系統(tǒng)課程體系中的一個(gè)平臺(tái)或模塊,不同的學(xué)校根據(jù)不同的教學(xué)計(jì)劃和時(shí)數(shù),可以選擇體系中的一個(gè)點(diǎn)或線實(shí)施和推行。
(2) 規(guī)劃好課程教學(xué)內(nèi)容
為保證課程體系中內(nèi)容的關(guān)聯(lián)性,不妨將操作系統(tǒng)涉及的知識(shí)結(jié)構(gòu)分解,把共性的和個(gè)性的內(nèi)容提取出來(lái),在不同的平臺(tái)和模塊之間達(dá)成關(guān)聯(lián),這樣,對(duì)學(xué)生會(huì)起到舉一反三的效果。例如:進(jìn)程和線程的概念。無(wú)論在系統(tǒng)硬件、軟件,還是在某個(gè)專門(mén)的操作系統(tǒng)課程中都是重要的概念,不同的是,對(duì)進(jìn)程講到什么程度和如何講解。比如:進(jìn)程與程序的對(duì)應(yīng)與區(qū)別,進(jìn)程的生命周期,進(jìn)程切換的過(guò)程,進(jìn)程狀態(tài)的構(gòu)建與派生,進(jìn)程與線程的對(duì)應(yīng),如何觀察和顯示系統(tǒng)的進(jìn)程?如何在應(yīng)用程序中引發(fā)進(jìn)程切換?這些問(wèn)題在原理課程、應(yīng)用課程、專用系統(tǒng)課程(如Windows/Linux)中的講授深度是不一樣的。有的是“入木三分”,有的是“點(diǎn)到為止”,有的則是“敬請(qǐng)參閱”。這樣就滿足了不同的授課對(duì)象的理解要求,能收到良好的效果。
在規(guī)劃教學(xué)內(nèi)容的同時(shí),要認(rèn)真地準(zhǔn)備相關(guān)內(nèi)容(章節(jié))的思考題和問(wèn)題,這對(duì)課堂教學(xué)是重要輔助。要鼓勵(lì)學(xué)生多提問(wèn)題,哪怕有的問(wèn)題教師暫時(shí)不能回答,或者有的問(wèn)題沒(méi)有標(biāo)準(zhǔn)答案或者沒(méi)有答案,這對(duì)于促使學(xué)生自行思考、引起學(xué)生聯(lián)想和激發(fā)學(xué)生興趣有很大幫助。同時(shí),也可以找出教學(xué)中的問(wèn)題,只有去發(fā)現(xiàn)它,才能去解決它。例如:為什么操作系統(tǒng)軟件的尺寸越來(lái)越大,安裝環(huán)境要求越來(lái)越高?操作系統(tǒng)工作一段時(shí)間后為什么會(huì)越來(lái)越慢?操作系統(tǒng)的系統(tǒng)命令有什么用,怎樣在程序中使用它們?為什么進(jìn)程切換程序要采用匯編語(yǔ)言編寫(xiě)?線程對(duì)操作系統(tǒng)和處理器來(lái)說(shuō)是一樣的嗎?多線程編程和多線程調(diào)用的關(guān)系是什么?等等。所以問(wèn)題和思考題也是課程內(nèi)容準(zhǔn)備的一個(gè)方面。
操作系統(tǒng)課程不可能覆蓋所有的計(jì)算機(jī)機(jī)型、體系架構(gòu)和特殊應(yīng)用,重要的是應(yīng)當(dāng)明白操作系統(tǒng)結(jié)構(gòu)中的共性問(wèn)題和特性問(wèn)題,操作系統(tǒng)理論與技術(shù)的關(guān)系,了解什么是操作系統(tǒng)中相對(duì)穩(wěn)定的,什么是可變的,什么是特殊的,從而抓住操作系統(tǒng)的核心,在有限的時(shí)間內(nèi)給學(xué)生講述清楚。
(3) 配置好課程實(shí)驗(yàn)
操作系統(tǒng)的實(shí)踐環(huán)節(jié)是歷來(lái)討論的重點(diǎn),通常通過(guò)模擬演示、實(shí)驗(yàn)、課程設(shè)計(jì)來(lái)理解操作系統(tǒng)的教學(xué)內(nèi)容。目前,學(xué)生面對(duì)的操作系統(tǒng)仍然以個(gè)人計(jì)算機(jī)操作系統(tǒng)為主,如Windows和UNIX/Linux,很少能夠接觸到大型操作系統(tǒng)和其他系統(tǒng),如Solaris、MacOS、Symbian等。而課程內(nèi)容中(如原理課中),有一些是大型操作系統(tǒng)或?qū)S孟到y(tǒng)中的技術(shù),很難通過(guò)具體環(huán)境展示和體驗(yàn)。這些內(nèi)容(如算法、結(jié)構(gòu)、過(guò)程、效果等)可以通過(guò)教學(xué)型系統(tǒng)(如Minix、Xinu或Nachos等)、建立模擬教學(xué)環(huán)境或者模擬演示實(shí)驗(yàn)學(xué)習(xí)理解,另一些內(nèi)容可以在現(xiàn)有系統(tǒng)平臺(tái)上通過(guò)設(shè)計(jì)實(shí)驗(yàn)加深理解(例如,多進(jìn)程調(diào)度程序)。當(dāng)然,在實(shí)踐環(huán)節(jié)上,要求學(xué)生盡可能熟悉當(dāng)前的主流操作系統(tǒng)。
對(duì)于應(yīng)用型為主的學(xué)校,可以要求學(xué)生通過(guò)程序設(shè)計(jì)來(lái)與操作系統(tǒng)發(fā)生關(guān)系。由于操作系統(tǒng)功能的更新和增強(qiáng),用戶能夠基于操作系統(tǒng)做的工作越來(lái)越多、越來(lái)越強(qiáng)。而基于操作系統(tǒng)的編程,是最直接地熟悉、使用和理解操作系統(tǒng)內(nèi)容的過(guò)程。例如:在應(yīng)用程序中直接調(diào)用操作系統(tǒng)提供的系統(tǒng)調(diào)用、API和系統(tǒng)命令,對(duì)系統(tǒng)內(nèi)部部件(如內(nèi)存)或者接口(如USB)進(jìn)行編程,編程實(shí)現(xiàn)對(duì)系統(tǒng)資源(如進(jìn)程表)的獲取和顯示。甚至更進(jìn)一步,能夠進(jìn)行操作系統(tǒng)設(shè)備驅(qū)動(dòng)程序的編寫(xiě),鼓勵(lì)學(xué)生使用系統(tǒng)開(kāi)發(fā)工具(如SDK、控件等)。這些課程設(shè)計(jì),可以反復(fù)作為設(shè)計(jì)案例,也可以逐步擴(kuò)大,作為本科生畢業(yè)設(shè)計(jì)的課題。
另一類應(yīng)用實(shí)驗(yàn),是讓學(xué)生盡可能地熟悉操作系統(tǒng)功能,了解操作系統(tǒng)正常運(yùn)行的基本條件和環(huán)境,解決系統(tǒng)可能出現(xiàn)的故障(可以用人為故障來(lái)做實(shí)驗(yàn)),防止惡意程序?qū)Σ僮飨到y(tǒng)的干擾,以及解決操作系統(tǒng)和網(wǎng)絡(luò)相關(guān)的一些問(wèn)題。這對(duì)提高學(xué)生的職業(yè)技巧有很好的啟迪。
(4) 教與學(xué)的互動(dòng)
很多教學(xué)改革課題中都談到了教師與學(xué)生的互動(dòng),其實(shí)互動(dòng)是一個(gè)過(guò)程,是一個(gè)彼此參與的過(guò)程,這個(gè)過(guò)程既可以在課堂上,也可以在課堂外,在課程建設(shè)中實(shí)施?;?dòng)還要求參與的雙方都負(fù)起自己應(yīng)付的責(zé)任,才能真正促進(jìn)教學(xué)效果的改善,一味指責(zé)教師或者學(xué)生的方式都是不適合的。
互動(dòng)的過(guò)程在課程建設(shè)中能夠很好地體現(xiàn)出來(lái)。例如,協(xié)助教師進(jìn)行實(shí)驗(yàn)的準(zhǔn)備和設(shè)計(jì)開(kāi)發(fā)、演示課件的制作、案例的復(fù)現(xiàn),等,學(xué)生參與到這個(gè)過(guò)程中,對(duì)提高他們對(duì)操作系統(tǒng)的興趣,深入掌握操作系統(tǒng)知識(shí),鍛煉實(shí)際動(dòng)手能力有很大的好處。這些實(shí)驗(yàn)課題、案例等反過(guò)來(lái)又進(jìn)入課程教學(xué)的案例庫(kù),成為該課程的新的教學(xué)資源,積少成多,課程資源的積累就會(huì)產(chǎn)生不容忽視的效果。當(dāng)然學(xué)生的參與可以是個(gè)人和團(tuán)隊(duì),課題也可以以項(xiàng)目的方式下達(dá)。
此外,至于教材(教學(xué)參考書(shū))的選擇和編寫(xiě)、教學(xué)網(wǎng)站的建設(shè)與維護(hù)、教學(xué)梯隊(duì)的建設(shè),等,是課程建設(shè)中的其他一些問(wèn)題,在條件和時(shí)機(jī)成熟時(shí)可以逐步解決。而對(duì)于只有一兩位教師上操作系統(tǒng)課程的情況,首先還是把課上好。
5結(jié)束語(yǔ)
進(jìn)入21世紀(jì)以來(lái),為了適應(yīng)各行各業(yè)信息化的需求,適應(yīng)各種各樣智能信息終端的需求,操作系統(tǒng)的發(fā)展異常迅速,傳統(tǒng)操作系統(tǒng)的概念、結(jié)構(gòu)和實(shí)現(xiàn)技術(shù)今非昔比,它已經(jīng)從計(jì)算機(jī)領(lǐng)域拓展到所有的智能信息終端。目前操作系統(tǒng)仍然以一個(gè)龐大的、強(qiáng)有力的家族存在于信息社會(huì)。多核計(jì)算結(jié)構(gòu)的推出更新了一個(gè)硬件平臺(tái),未來(lái)的操作系統(tǒng)必然會(huì)適應(yīng)這類多核結(jié)構(gòu)(同構(gòu)多核和異構(gòu)多核),而由于處理單元(部件)的多元化,操作系統(tǒng)設(shè)計(jì)的并行性就真正體現(xiàn)出來(lái)了(有別于傳統(tǒng)的單CPU情況下的并發(fā)方式),由此,并行性、虛擬性交互性和安全性將在未來(lái)操作系統(tǒng)中得到更多體現(xiàn)。傳統(tǒng)穩(wěn)定成熟的技術(shù)和未來(lái)創(chuàng)新的技術(shù),都將體現(xiàn)在操作系統(tǒng)這個(gè)軟件中,關(guān)鍵是這些知識(shí)如何讓學(xué)生學(xué)習(xí)和掌握。
教學(xué)研究是提高教學(xué)質(zhì)量和教學(xué)效果的重要一環(huán),在現(xiàn)今以科研導(dǎo)向的現(xiàn)狀下,作為未來(lái)科研人才的學(xué)生仍然需要走過(guò)教學(xué)(知識(shí)學(xué)習(xí))這樣一個(gè)過(guò)程,如何將知識(shí)學(xué)習(xí)和能力培養(yǎng)真正結(jié)合,需要不斷地研究和實(shí)踐。作為操作系統(tǒng)課程的教學(xué)研究、改革和實(shí)踐,很多老師做了非常重要的工作和貢獻(xiàn),如陳向群(北大)、向勇(清華)、朱貴良(華北水院)、周蘇(浙大)等教授。教學(xué)研究必須給予重視,必須規(guī)劃、實(shí)施和持續(xù)。
大學(xué)是一個(gè)智慧與啟迪的匯集點(diǎn),不斷有人進(jìn)來(lái),不斷有人出去,帶進(jìn)新的思想、創(chuàng)意和方向,帶走精神、經(jīng)驗(yàn)和創(chuàng)新,隨著信息社會(huì)的日新月異,高等教育和教學(xué)研究也當(dāng)與時(shí)俱進(jìn)。
參考文獻(xiàn)
[1] Remzi H. Arpaci-Dusseau. CS 736 project highlights from U. Wisconsin[J]. Operating Systems Review, (41):54-55, ACM-SIGOPS, 2007.
[2] 劉乃琦. 操作系統(tǒng)發(fā)展與課程建設(shè)[J]. 第九屆全國(guó)操作系統(tǒng)課程研討會(huì). 煙臺(tái)大學(xué)學(xué)報(bào),(20):1, 2007.
收稿日期:2007-09-01
個(gè)人簡(jiǎn)介:劉乃琦(1950-),男,四川成都人,教授,學(xué)士,研究方向:操作系統(tǒng),系統(tǒng)與網(wǎng)絡(luò)安全技術(shù),計(jì)算機(jī)應(yīng)用技術(shù)。