駱 斌 費翔林 葉保留 葛季棟
摘要:教材建設是課程建設和人才培養(yǎng)的核心,本文以作者編著出版的理論課教材《操作系統(tǒng)教程》(第4版)為背景,重點討論“操作系統(tǒng)”講什么?怎么講?以及教材的總體規(guī)劃與建設,文章還扼要介紹了“操作系統(tǒng)”課堂教學實施中的心得體會,為進一步提高“操作系統(tǒng)”課程教學質量“拋磚引玉”。
關鍵詞:操作系統(tǒng);課堂教學;教學實施
中圖分類號:G642 文獻標識碼:B
1引言
操作系統(tǒng)是計算機系統(tǒng)的核心和靈魂,是最為基礎的軟件系統(tǒng),構造極為復雜。“操作系統(tǒng)”課程是計算機相關專業(yè)的專業(yè)核心課程,通過該課程的學習不但要求學生掌握操作系統(tǒng)的基本理論和知識,具有剖析、設計和實現(xiàn)操作系統(tǒng)的基本能力,而且應該培養(yǎng)學生的軟件開發(fā)能力、技術創(chuàng)新能力、科學作風與綜合素質等。因此,計算機科學與技術專業(yè)的學生必須要學好這門專業(yè)課程。
由于操作系統(tǒng)理論性與實踐性結合緊密,涉及學科抽象、理論、設計3個形態(tài),與理論模型、算法設計、軟件系統(tǒng)、工程實現(xiàn)、程序設計、領域應用等密切相關,具有理論性強、概念抽象、難以理解掌握,設計技巧高、實現(xiàn)機制精妙、代碼量龐大,技術發(fā)展迅速、知識更新快、內容廣泛且與多個方向交叉等特征,因此“操作系統(tǒng)”教學有相當難度。
多年來,我們積極開展“操作系統(tǒng)”課程建設,跟蹤計算機科學與技術的新趨勢、新技術、新方法,不斷更新教學大綱、理論教材、實驗教材、電子教案、教學方法、實驗環(huán)節(jié),革新課堂教學和實驗教學的內容和手段,改進考核評分辦法、探索加強能力培養(yǎng)的途徑,組建和培養(yǎng)教學師資梯隊,開發(fā)數字化網絡支撐平臺,多方位、立體化推進“操作系統(tǒng)”課程教學質量的提高。
教材建設是課程建設和人才培養(yǎng)的核心,本文以作者編著出版的理論課教材《操作系統(tǒng)教程》(第4版)為背景,結合教材的總體規(guī)劃與建設,圍繞“操作系統(tǒng)”講什么?怎么講?介紹多年來在“操作系統(tǒng)”課堂教學上的心得體會,以期拋磚引玉。
2操作系統(tǒng)理論教材的規(guī)劃與建設
2.1教材建設歷史
南京大學是國內最先開展操作系統(tǒng)研究與教學的單位之一,我校自1973年為計算機專業(yè)本課生開設“操作系統(tǒng)”課程開始,到2009年為止,30多年間,共出版操作系統(tǒng)教材7本。1980年出版《操作系統(tǒng)原理》(人民郵電出版社),1987年出版《分布式操作系統(tǒng)》(國防工業(yè)出版社),1989年出版《操作系統(tǒng)教程》(高教出版社)獲1992年國家級優(yōu)秀教材獎,1995年出版《操作系統(tǒng)教程(第2版)》獲1997年江蘇省二類優(yōu)秀課程獎,2003年出版《操作系統(tǒng)教程(第3版)》獲2004年江蘇省優(yōu)秀課程群獎,2008年出版《操作系統(tǒng)教程(第4版)》被評為2008年教育部精品教材。
2.2 《操作系統(tǒng)教程(第4版)》教材建設思路
操作系統(tǒng)是計算機領域最活躍的分支之一,盡管其基礎理論與技術已基本成熟,進入二十世紀九十年代后,隨著計算機技術突飛猛進,操作系統(tǒng)新概念、新技術、新方法層出不窮。“操作系統(tǒng)”課程一方面要適應這種發(fā)展的趨勢,即時更新教學內容;另一方面,也必須抓住操作系統(tǒng)最基本的原理和技術,注重基礎理論知識教學。
《操作系統(tǒng)教程(第4版)》(以下簡稱“第4版”)以“科學性、系統(tǒng)性、先進性、實用性”為教材編著指導思想,從理論、抽象、設計3個形態(tài)的高度來組織教學內容,將整個教材劃分成十個知識單元:(1)概念與原理;(2)進程和線程;(3)同步、通信和死鎖;(4)處理器管理和調度;(5)存儲管理與虛擬存儲器;(6)設備管理;(7)文件管理與虛擬文件系統(tǒng);(8)安全與保護;(9)結構與設計、典型操作系統(tǒng)實例;(10)網絡與分布式操作系統(tǒng)。教材安排布局和內容組織緊密圍繞十個知識單元,有系統(tǒng)、有層次、有廣度、有深度地展開全書內容。
第4版教材總體規(guī)劃與建設過程中,著重考慮了以下幾點:
(1) 既要涵蓋傳統(tǒng)操作系統(tǒng)的基本概念、技術和方法,又要融合現(xiàn)代操作系統(tǒng)的最新技術發(fā)展和應用。
(2) 注意理論聯(lián)系實際,相關概念或原理內容,精選現(xiàn)代操作系統(tǒng)實例作剖析與對比,有益于學生深入理解基本概念和原理,牢固掌握設計與實現(xiàn)的技術和方法。
(3) 強調四講:講概念、講原理,講方法、講編程。
以并發(fā)進程知識點為例,表1為進程通信知識點及層次安排,給出了自底向上構筑操作系統(tǒng)中“并發(fā)問題”解決方案的知識框架。從程序并發(fā)執(zhí)行出現(xiàn)的與時間有關的錯誤問題出發(fā),逐層深入、逐步展開與闡述,講解并發(fā)程序設計從低級通信原語到高級通信原語,從面向指令的低級程序設計到面向語言的高級程序設計轉化的過程,體現(xiàn)了操作系統(tǒng)并發(fā)性解決方案自底向上的構筑過程和不同層次。在每個層次上,不但講概念和原理,也講具體方法和用來求解經典同步問題的編程(偽代碼)例子,使學生容易掌握這些重點與難點,既有利于學生正確理解概念和原理,又能培養(yǎng)學生的動手實踐能力和分析解決問題的能力。
(4) 歸納綜合、總結提高,從對概念和技術的散碎的感性認識,上升到系統(tǒng)的、理論的高度。資源管理是操作系統(tǒng)最重要的功能之一,目前所見國內外教科書都會討論這些內容,但鮮有系統(tǒng)地論述的。第4版教材作了嘗試與探索,歸納綜合資源管理有關知識點,進行系統(tǒng)深化和總結提高。首先,給出資源管理的三種技術:復用技術、虛化技術和抽象技術,闡述每種技術的定義、用途和用法。其次,討論操作系統(tǒng)中三種最基礎抽象:進程抽象、虛存抽象和文件抽象,于是可面向進程而不是處理器、面向虛存而不是實存、面向文件而不是磁盤,也就是不直接面向硬部件進行處理,這樣一來操作系統(tǒng)資源管理工作就會變得簡單與有效。至此,就能從理論高度掌握資源管理技術,為教好學好操作系統(tǒng)打下良好基礎。
(5) 注重基礎知識,加強技能訓練。確保基礎理論和知識在課程中的地位,只有掌握理論和知識,才能為創(chuàng)新能力培養(yǎng)打好基礎,這一點在第4版教材編寫中予以關注。全書編寫200多道應用題,作為實踐和技能訓練的內容之一。通過讓學生多做各種類型應用題達到強化技能訓練的目的,也是加強能力培養(yǎng)的一個重要方面。
(6) 注意與實驗課教材的銜接。充分體現(xiàn)操作系統(tǒng)理工緊密結合,理論與實踐緊密結合的特點。課堂教學以傳授理論和知識為主,實驗教學以操作和實驗為主,理論可在實驗中得到檢驗并指導實踐,實驗有利于對理論的理解并促進理論的發(fā)展。另外編寫配套實驗教材《Linux操作系統(tǒng)實驗教程》,兩本教材相輔相成完成“操作系統(tǒng)”教學任務。
3 “操作系統(tǒng)”課堂教學實施中的有關問題
如圖1所示,操作系統(tǒng)觀察和研究可以從兩個角度、兩種方法、四種觀點出發(fā),并圍繞六個問題展開。其中,兩個角度是:用戶角度和系統(tǒng)角度;兩種方法是:靜態(tài)觀察和動態(tài)觀察方法;四種觀點是:服務用戶的觀點、管理資源的觀點、系統(tǒng)實現(xiàn)的觀點和進程交互的觀點;六個問題是:什么是操作系統(tǒng)?為什么要操作系統(tǒng)?操作系統(tǒng)是做什么的?操作系統(tǒng)是如何做的?操作系統(tǒng)是如何使用的?操作系統(tǒng)是如何構造的?
“操作系統(tǒng)”教學的主要內容就是站在不同角度、采用不同方法、使用不同觀點來研究六個問題。其中四種觀點是系統(tǒng)講解操作系統(tǒng)原理的立論,也是操作系統(tǒng)設計的內涵所在,也就是說,是觀察和研究操作系統(tǒng)的(總)綱,綱舉目張,必須在教學過程中予以強調和滲透。有關四種觀點的解釋如圖1:
(1) 操作系統(tǒng)作為用戶接口和公共服務程序
由于用戶對計算機系統(tǒng)的需求與期望和現(xiàn)有硬件性能之間存在巨大差距,因此需要操作系統(tǒng)來填補這個差距,操作系統(tǒng)處于用戶與計算機硬件之間,用戶通過操作系統(tǒng)來使用計算機。從內部來看,操作系統(tǒng)對計算機硬件進行改造和擴充,為應用程序提供強有力的支持,提供原語和系統(tǒng)調用來擴展機器指令集;從外部來看,操作系統(tǒng)提供友好的人機接口,使得用戶能夠方便、可靠、安全、高效地使用硬件和運行應用程序;經過操作系統(tǒng)改造和擴充過的計算機不但功能更強,使用起來也更為方便,用戶通過“系統(tǒng)調用”使用操作系統(tǒng)提供的各種功能,而無需了解軟硬件本身的細節(jié),所以,操作系統(tǒng)是一個友善的用戶接口和各種公共服務的提供者。
(2) 操作系統(tǒng)作為程序執(zhí)行的控制者和協(xié)調者
操作系統(tǒng)引入進程概念,進程是支持程序執(zhí)行的系統(tǒng)機制,系統(tǒng)以進程方式組織用戶使用計算機??蓤?zhí)行程序作為文件存于磁盤上,工作時被調入主存,系統(tǒng)為程序分配一定數量的資源,并進行一系列復雜操作,其中最重要的是:為其分配一個稱為進程控制塊的內核數據結構,此時執(zhí)行的程序就演變成進程,具備了在多道程序環(huán)境中運行的條件,可被調度程序調度執(zhí)行。此外,操作系統(tǒng)還能合理組織計算機工作流程,協(xié)調各個硬部件有效工作,為應用程序提供良好的運行環(huán)境。所以說,操作系統(tǒng)是程序執(zhí)行的控制者。并發(fā)進程執(zhí)行過程中,會產生兩種基本關系:競爭和協(xié)作,操作系統(tǒng)協(xié)調進程運行,解決并發(fā)進程間互斥、同步、通信和死鎖問題。所以,操作系統(tǒng)是程序執(zhí)行的協(xié)調者。
(3) 操作系統(tǒng)作為擴展機或虛擬機
人們在多年以前就認識到必須找到某種方法把硬件的復雜性與用戶隔離開來,經過不斷探索和研究,采用的方法是在計算機裸機上加上軟件來組成計算機系統(tǒng),同時,為用戶提供容易理解和便于使用的接口。在操作系統(tǒng)中,把硬件細節(jié)隱蔽并把它與用戶隔離開來的情況隨處可見,虛擬機就是一種例證,每當在計算機上添加一種軟件,提供一種抽象,系統(tǒng)的功能便增加一點,使用起來就更加方便一點,運行環(huán)境就更加友好一點。所以,從這個角度看,操作系統(tǒng)的作用是為用戶提供比低層硬件的功能顯著增強、使用更加方便、安全可靠性更好、效率明顯提高的擴展機或虛擬機。
(4) 操作系統(tǒng)作為資源管理者和控制者
為了提高系統(tǒng)效率,操作系統(tǒng)必須支持多道程序設計,合理調度和分配各種資源,充分發(fā)揮并行部件的性能,使它們最大限度地重疊操作和保持忙碌。操作系統(tǒng)的重要任務之一是對資源進行抽象研究,找出各種資源的共性和個性,有序地管理計算機中的軟硬件資源,記錄資源使用情況,確定資源分配策略,實施資源的分配和回收,滿足用戶對資源的需求,提供機制來協(xié)調應用程序對資源的使用沖突,研究資源使用的統(tǒng)一方法,為用戶提供簡單、有效的資源使用手段,在滿足應用程序需求的前提下,最大限度地實現(xiàn)各類資源的共享,提高資源利用率,從而提高計算機系統(tǒng)的效率。
從四種觀點出發(fā),圍繞六個問題,通過十個知識單元展開“操作系統(tǒng)”教學內容的實施,是一條可選的教學途徑。教學實施中,以下各項措施或授課方法可供參考。
(1) 從概念入手,以數據結構與算法為主線
從問題引入概念,認真分析概念的特點,從概念的出現(xiàn)或產生背景入手,分析為什么要引入,由淺入深、由表及里、由此及彼,透徹分析概念和相關內容的基本要點,引導學生掌握知識。如“進程”、“線程”等概念均作了這樣處理,讓學生弄懂來龍去脈,才能使他有更深刻的理解,打下更扎實的基礎,將來才會有更好的發(fā)揮和創(chuàng)新。
此外,操作系統(tǒng)中的重要概念都通過特定數據結構和算法來實現(xiàn),要從概念的基本內涵出發(fā),分析實現(xiàn)概念的具體數據結構和算法,把對概念的把握落實到對應的數據結構和算法上。同樣以“進程”為例,這里就要抓住重點,構成進程的要素之一——進程描述塊,講其重要性及內容。從進程的概念、到進程的組成、再到進程的創(chuàng)建,學生就能較好地理解掌握這一組知識點。
(2) 注重概念或原理與實際的聯(lián)系
對相關概念或原理內容,精選現(xiàn)代操作系統(tǒng)實例作剖析與對比,有益于學生深入全面理解操作系統(tǒng)的基本原理,牢固掌握操作系統(tǒng)設計與實現(xiàn)的技術和方法。例如,在介紹中斷處理任務延遲機制后,可讓同學了解Linux的任務延遲機制bottom half、task queue、task let、work queue、softirq在實際系統(tǒng)中是如何實現(xiàn)的。
(3) 處理好教學中的“重點”與“難點”
緊抓住教學重點,處理好教學難點。重點要反復講,難點要深入講,遵循由淺入深、步步為營策略。為了處理好重點、難點,可以通過多種途徑進行。如:課堂強調、多舉例子、歸納小結;課件演示、動畫效果、前后串連;實例對比、多做練習、實驗驗證;分門別類、歸并處理、融會貫通等。
(4) 開展啟發(fā)式和研究型教學
開展啟發(fā)式研究型教學,通過講授思想和方法,讓學生開闊視野、培養(yǎng)興趣。通過提出問題,給出解決方案,引導啟發(fā)學生提出更好解決方案,來培養(yǎng)主動探索與研究精神。例如,討論采用信號量及PV操作求解哲學家吃通心面問題,先給出一個有缺陷程序,引導啟發(fā)學生找出缺陷所在,再讓同學提出補救措施,最后給出完善求解程序。開展啟發(fā)式研究型教學,步步引導、步步深入,會讓學生學得深、學得透,牢固掌握相關內容,初步培養(yǎng)起能獨立進行科學研究的能力。
(5) 前后連貫,融會貫通,把知識點串連成線,建立操作系統(tǒng)全局和整體概念
教學中為了便于理解、突出重點,各個章節(jié)通常只圍繞一個功能進行討論,我們調整內容,把關系密切的知識點放在一起討論,貫徹由點(知識點)→線(一串相關知識點)→面(應用層面)的教學思路。例如,在中斷分類中,硬中斷與軟中斷放在一起討論,從概念、特性、實現(xiàn)手段、實現(xiàn)設施進行對比分析,讓相關知識點串連成線,使學生容易理解這個難點。為了讓學生建立對操作系統(tǒng)的系統(tǒng)級認識和整體性把握,教學中注意把相關知識點前后相連。如從鍵盤鍵入和執(zhí)行命令,牽涉到shell創(chuàng)建子進程,“存儲管理”、“文件管理”、“設備管理”等許多模塊相互配合協(xié)同工作。多個知識點前后連貫,融會貫通,串連成線,能使學生看到主線、看到聯(lián)系、看到整體,這對幫助學生建立操作系統(tǒng)全局和整體概念大有好處。
(6) 注意原理算法與實際代碼間的對照分析
實用操作系統(tǒng)源代碼龐大復雜,一個概念的具體實現(xiàn)要考慮諸多因素,做出多種折中和平衡,教科書中的原理算法都省略了若干因素,簡化了實際環(huán)境。實際上,操作系統(tǒng)中所有概念、原理、技術、算法都由源代碼來實現(xiàn),要十分重視源代碼的分析與閱讀工作,培養(yǎng)學生的閱讀和剖析源代碼的能力,從而來提高學生的動手能力。
(7) 改革教學方法,加強師生互動
課堂上可根據教學內容精心設計安排提問,引導學生思考,活躍課堂氣氛。通過提問式、對話式的師生互動能培養(yǎng)學生參與意識和適度保持緊張,使之積極思考和提出自己的觀點和思路。還可以根據教學進度適當安排討論習題課,讓學生有機會對課文有關內容進行深入理解、融會貫通,通過分析與解決有關難題達到開拓視野、觸類旁通之目的。
(8) 處理好基本講授內容的穩(wěn)定性和反映新技術、新原理、新趨勢的及時性
基本講授內容必須穩(wěn)定,課時得到保證。但隨著信息技術的快速發(fā)展,出現(xiàn)的與操作系統(tǒng)有關的新技術、新原理、新趨勢應及時反映和介紹。例如,“眾核”技術、“云計算”技術,及時向學生介紹這些技術的由來、概念、前景,增加了新知識、了解了新動向。
(9) 有效運用多媒體手段,改進教學效果
通過多媒體手段制作課件、圖像、圖形等,讓難弄懂難理解的概念或算法形象化、具體化,更好地表達講課內容,使學生容易接受,便于理解,有事半功倍的效果,可以作為教學手段的補充,應給予高度重視。
4結束語
面向21世紀教材《操作系統(tǒng)教程(第4版)》自2008年4月出版以來,已有35多個院校使用。多數老師和學生肯定了該教材的優(yōu)點,但學無止境、教無止境,在課堂教學實施過程中,看到了教材的不足之處,需要在今后的工作中進一步完善改進。
參考文獻:
[1] 操作系統(tǒng)課程教學實施方案研制組. 高等學校計算機科學與技術專業(yè)核心課程教學實施方案(草案)[Z]. 2009.
[2] 孫鐘秀,費翔林,駱斌. 操作系統(tǒng)教程[M]. 4版. 北京:高等教育出版社,2008.
[3] 費翔林,李敏,葉保留. Linux操作系統(tǒng)實驗教程[M]. 北京:高等教育出版社,2009.
[4] 史廣順, 韓維桓, 袁曉潔. 南開大學“操作系統(tǒng)”課程建設的思考[J]. 計算機教育,2006(7):21-24.
[5] 羅宇, 張穎蓓, 葉常春. 本科操作系統(tǒng)課程設置及教學體會[J]. 計算機教育,2006(1):39-40.