
摘要:著眼嵌入式技術的快速發展,分析嵌入式系統的特點以及嵌入式技術給操作系統課程帶來的新啟示,從操作系統課程的教學目標、教學方法、教學內容3個方面探討操作系統課程教學組織方式和方法。
關鍵詞:嵌入式系統;計算機科學與技術專業;操作系統;教學
1背景
在《高等學校計算機科學與技術專業核心課程教學實施方案》里,操作系統的課程性質定義為:本課程是計算機科學與技術專業學生必須學習和掌握的一門理論性和實踐性并重的核心主干課程和專業基礎課程[1]273。
在嵌入式系統行業內有一個被普遍接受的定義:嵌入式系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統[2]1。在經濟發達國家,每個家庭平均擁有255個嵌入式系統,如每輛汽車平均裝有35個嵌入式系統。嵌入式系統的應用廣泛進入到工業、軍事、宇宙、通信、運輸、金融、醫療、氣象、農業等眾多領域[2]1。在上海雙實科技公司及中國計算機學會微機專業委員會等單位聯合舉辦的首屆上海“實時實用嵌入式技術論壇”上,中國工程院院士許居衍表示,嵌入式技術是中國廠商從“中國制造”向“中國創造”轉變的最佳契機。嵌入式系統的廣泛應用,使得嵌入式人才十分匱乏。2009年,信息產業部國家信息技術緊缺人才培養工程(NITE)嵌入式方向培訓認證項目在京全面啟動。
嵌入式技術與應用領域關系密切,不能獨立成為一個本科專業[3],從事嵌入式工程相關的人才必然有一大部分來自于計算機科學與技術專業;再者,嵌入
式系統與操作系統緊密聯系,勢必要求我們思考計算機科學與技術專業的操作系統課程教學方法,以便更好地培養適應社會需要的人才。
為了避免歧義,我們先作說明。這里分析嵌入式技術與操作系統課程的關系,不只是因為操作系統是嵌入式系統相關課程的先修課,更是因為嵌入式技術是正在興起的產業;同時,與操作系統的其他后續課程(如數據庫原理、計算機網絡)相比,嵌入式系統最大的特殊性體現在它本身就是一個特殊的計算機系統,是學生用來理解通用計算機系統的一個視角。
2嵌入式技術帶來的啟示
嵌入式系統是一類特殊的計算機系統[2]1。計算機系統由硬件系統和軟件系統組成,其中操作系統是最重要的軟件。分析嵌入式系統和嵌入式開發過程的特點有助于我們更好地思考操作系統課程教學。
2.1嵌入式系統
嵌入式系統通常具有功耗低、體積小、集成度高等特點,對軟件代碼尤其要求高質量、高可靠性。嵌入式操作系統不僅具有普通操作系統的一般功能,同時,它還在系統實時性、硬件依賴性、軟件固化性以及應用專用性等方面,具有更加鮮明的特點[2]2。
在計算機系統上配置操作系統的主要目標,與計算機系統的規模有關[4]。因此,在操作系統教學組織
上,針對大、中型計算機系統和微機系統分析操作系統的目標和作用時,也有必要針對嵌入式系統的特點分析操作系統的目標和作用。
2.2嵌入式系統的開發過程
由嵌入式系統本身的性質所影響,嵌入式系統開發過程與通用系統的開發有很大的區別。嵌入式系統的開發主要分為系統總體開發、嵌入式硬件開發和嵌入式軟件開發3大部分。在系統總體開發中,開發環境的選擇對于嵌入式系統的開發有很大的影響。這里的開發環境包括嵌入式操作系統的選擇以及開發工具的選擇等[5]13-14。
隨著嵌入式相關概念為大家所接受,對嵌入式系統開發過程特點的分析,給了我們思考操作系統的新角度。比如,嵌入式工程師會根據開發成本或進度限制而選擇不同的操作系統,也會因為開發工具方便使用而選擇某個操作系統。因此,教學過程中,不同操作系統之間的對比多了一些評價標準。
2.3嵌入式系統相關課程的教學實踐
我院目前開設了嵌入式Linux和嵌入式系統兩門選修課,操作系統是它們的先修課之一。圍繞操作系統關系密切的問題,接下來從教師的教學難點、學生的選課目的和學習難點3個方面對嵌入式Linux和嵌入式系統教學實踐進行總結分析。
開發環境的搭建與Linux內核的移植是教學中的一個難點。原因是在這個過程中,操作系統既是完成項目的支持工具(在宿主機上的操作系統),也是項目的最終模塊之一(在目標機上的操作系統)。
選修這些課程的學生具有濃厚的學習興趣,因為他們意識到嵌入式人才緊缺,掌握嵌入式技術將為他們拓寬就業渠道。操作系統作為嵌入式課程的先修課,應該更多地從培養應用型人才的角度來組織教學。
嵌入式應用軟件開發是學習的一個難點。難度主要來自于:操作系統的實踐教學內容與嵌入式課程的實踐教學內容跨度太大。
3操作系統課程教學探討
操作系統課程具有理論與實踐并重、系統與模塊并重、設計與應用并重和內容廣泛且知識更新快等特點[1]273。操作系統課程教學方法有多種。常見的有,研究型和啟發式課堂教學,閱讀與剖析源程序片段,開展課外研究與創新型實驗等。教學實施方案和教學內容組織要根據人才培養目標而制定。計算機專業規范提出3種類型:科學型、工程型和應用型。在操作系統領域,對科學型、工程型和應用型3個認知層次有不同要求[1]273-277。當著眼于嵌入式發展時,對操作系統課程的教學目標、教學方法和教學內容有了新的思考。
3.1本文探討的出發點
有兩個原因,使我們覺得有必要進行操作系統課程教學反思。
首先,立足于嵌入式技術的特點,可以更好地理解操作系統課程的知識點。嵌入式系統種類繁多、形態各異,嵌入式產品隨處可見。借助于嵌入式產品來講解操作系統抽象的概念,可以更好地開展教學工作。
其次,嵌入式系統開發與通用計算機軟件開發需要的知識結構不一樣——這里主要針對操作系統課程里的知識點。一般來說,在計算機軟件工程師眼里,操作系統是一個提供一系列系統調用(或API)的基礎性軟件;然而,在嵌入式工程師看來,操作系統不僅僅有這個特點,它更是一個需要根據具體硬件平臺和應用需求來進行剪裁的軟件。
3.2教學目標
操作系統課程是培養學生的計算思維能力、算法設計與分析能力、程序設計與實踐能力,以及計算機軟硬件系統的認知、分析、設計與應用能力的重要課程[1]274。不同的培養目標,對同一門課程的學習重點不一樣。
表1是教育部高等學校計算機科學與技術教學指導委員會在操作系統領域,對科學型、工程型和應用型認知層次的不同要求[1]273。嵌入式技術的快速發展,使得應用型人才顯得十分欠缺;這就要求在教學過程中,得更多地側重應用型人才的培養,并根據這個目標進行教學實踐。
3.3教學方法
隨著計算機在眾多領域得到廣泛應用,操作系統也正在以驚人的速度發展。然而,操作系統的基本概念仍然是比較清晰的。這是本文討論操作系統教學內容的基礎。本文的探討不是對操作系統教學內容進行大幅度的增加或減少,而是仍然圍繞操作系統的基本概念,根據教學的需要,對教學內容的側重稍作變化。
操作系統的基本知識塊一般包括以下幾點:操作系統運行環境、處理器管理、進程同步與死鎖、存儲器管理、設備管理、文件管理、安全與保護、實例研究。
教師在指導學生理清以上知識點,掌握知識點間的內在聯系的同時,可側重講解以下內容,讓學生明白:操作系統(比如說處理器管理) 中提到的方法,并不是一成不變的——它有應用前提、它的參數可變化(增加參數、或者改變對參數訪問的權限等):
1) 嵌入式操作系統使用的是任務控制塊(簡稱TCB),通用操作系統使用的是進程控制塊(簡稱PCB),TCB對比PCB增加了時間控制參數。
2) 在進程調度上,嵌入式操作系統一般用的是靜態調度表,它的優先級可以是固定的,也可以是動態的,而且原則上用戶不能改變優先級。通用操作系統中基于優先級的調度,用戶可以改變優先級;除此之外,還有先來先服務、時間片輪轉等多種調度方式。
3) 嵌入式操作系統多數中斷處理轉化為周期性查詢任務;執行次序由統一考慮的優先級決定。通用操作系統的中斷處理優先于任務執行。
對操作系統 5 大功能模塊的講解,是操作系統課程的重要內容。在理清各功能模塊的關系方面,需要把通用操作系統與嵌入式操作系統的區別講解清楚:與通用操作系統對比,嵌入式操作系統中與硬件相關的驅動部分由用戶開發;嵌入式操作系統的文件管理、電源管理、網絡等是作為嵌入式操作系統的擴展組件,不是必須的;嵌入式操作系統強調的是內核。
由此可見,嵌入式操作系統從另一個視角來理解操作系統的作用和意義。
進一步地,在操作系統課程教學上,我們也在嘗試作如下調整:
1) 突出“操作系統運行環境”內容,尤其是中斷、時鐘管理;
2) 不僅從“照顧短作業或長作業”、“提高系統吞吐率”和“合理的響應時間”角度來考察“進程調度算法”的優劣,也需要從“實時性”角度來考察;
3) 將“設備驅動程序編寫”作為“設備管理”的課外作業;
4) “實例研究”適當介紹常見的嵌入式操作系統。
在教學上,我們更多地采用Linux作為實例(主要由于Linux是個開源軟件、參考書也多,學生容易自學),偶爾也與Windows系列作對比。操作系統課程的實驗平臺是Linux(Redflag 6.0),各個知識點的授課中也適當提到Linux系統中各個功能的實現,鼓勵學生自學相關內容。另外,我院的嵌入式實驗室、基于嵌入式開發平臺的大學生創
新型項目也可以為學生的課外學習、實踐提供一定的條件。
課堂布置的作業,有兩種形式,一種是需要學生提交學習報告,另外一種是提交代碼。在這里,以兩個與嵌入式操作系統相關的作業為例,以便拋磚引玉。
了解“嵌入式操作系統定制”,并完成相應的學習報告;針對班級學生的總體情況,如果整體基礎較好可以在授課初布置,否則可以在課程快結束時布置。
可移植嵌入式文件系統設計與實現,或者了解嵌入式文件系統的移植過程;針對班級學生能力水平而定,在文件系統這個章節授課結束后布置。
4結語
操作系統是計算機科學與技術專業核心課程,充分重視操作系統課程教學毋庸置疑,但我們也認識
到:操作系統的應用領域不斷擴大,操作系統課程在不斷發展;另外,社會在不斷發展,人才需求情況也是不斷變化,這對這門課程的教學也提出新的要求。因此,操作系統課程的教學改革需要不斷進行。著眼嵌入式發展,是對操作系統教學方法進行探索的一個視角。教學是一個實踐的過程,面對的情況,采取的方法也不完全一樣。不妥之處,懇請指正。
參考文獻:
[1
] 教育部高等學校計算機科學與技術教學指導委員會. 高等學校計算機科學與技術專業核心課程教學實施方案[M]. 北京:高等教育