?

“操作系統”教學的定量方法探討

2009-08-28 09:09陳燕暉念其鋒
計算機教育 2009年14期
關鍵詞:操作系統

陳燕暉 念其鋒 羅 宇

摘要:本文針對“操作系統”教學中對真實操作系統進行定量處理方面的不足,在反思的基礎上,提出在課堂教學、課程實驗等各個教學環節加強定量方法的應用,并輔以具體的實例說明定量方法的優勢之處,最后給出了實施定量教學的若干建議。

關鍵詞:操作系統;定量方法;性能評估

中圖分類號:G642 文獻標志碼:B

1引言

定量方法在教學中有著廣泛的應用。確切的數據往往更具有說服力,能讓學生對抽象的理論有更好的認識。在指導學生對某個問題進行研究,采集、分析數據乃至得到結論方面,更彰顯了定量方法的重要性。

“操作系統”是計算機學科的一門核心課程,其教學內容多處采用了定量方法,如對進程調度算法和磁盤調度算法的分析就是典型的例子。但是,通過分析當前一些操作系統教學的相關材料及文獻后,我們發現操作系統教學在定量方法的使用方面依然有不足之處。

首先,在系統性能評估方面內容偏少。性能是操作系統設計時的一個重要考慮因素,計算機普通用戶可能關心響應時間,而系統管理員可能關心吞吐量。如何對系統進行具體的性能評價在國內外操作系統教材中均著墨很少,甚至根本不涉及。在一些操作系統教學網站公開的課件和課程實驗內容中,我們也很少看到這方面的內容,盡管文獻[1]明確指出操作系統的核心學時中應有一學時用于系統性能評價。

其次,操作系統教材往往不能利用當前真實系統的實際數據,許多教材定性分析內容多,但定量部分則有所不足。這當然與印刷物自身的局限性有關,但另一方面還可能源于教材作者自身的考慮,如果過分依賴于特定的平臺,在硬件和軟件飛速變化的時代,相關內容很容易過時。

教師作為教學活動的主導者,應該不為相關教材所局限,如果有意識地在多個教學環節應用定量手段,則可以彌補上述不足,取得更好的教學效果。

2各教學環節中定量方法的增強實施

對于操作系統教材中已經廣泛采用的量化手段,我們不再討論,本節著重討論可以進一步強化實施量化方法的教學環節和具體做法。由于各教學環節的特點不同,量化方法實施的著眼點和程度也就有所不同。

2.1課堂教學中征引相關技術數據彌補教材不足,反映操作系統當前動態

本環節的可增強余地不大,但是教師可以關注業界動態,了解本領域的最新進展,收集豐富的數據材料并用之于教學。例如講到分時系統與時間片,可以列舉代表性的分時系統CTSS、Unix V6、4.4BSD及最新的Linux 2.6在運行平臺上的時鐘中斷頻率、時間片和平臺計算能力等數據,通過這些具體的數據,學生不僅對真實系統有直觀的認識,還可以看到歷史軌跡下硬件技術的發展對軟件參數值產生的影響。此外,這些數據還可以用于估算進程切換的純開銷。

再例如設備管理和文件管理很多知識點基于的前提就是磁盤訪問速度遠遠慢于內存訪問速度。但目前固態硬盤的市場日趨增大,其特點完全不同于傳統機械硬盤,教師可以在適當時候列出兩類硬盤的性能參數對比,然后針對固態硬盤技術提出如下問題:

(1) 調度算法有必要嗎?

(2) 緩沖技術還要必要嗎?

(3) 磁盤碎片整理有必要嗎?

教師順便介紹當今操作系統如Linux、Windows對固態硬盤技術的支持時給出以上問題的結論,學生不僅可以了解當今操作系統發展動態而且可以深深體會硬件技術對操作系統實現技術所產生的影響。

2.2圍繞真實系統,開發定量結果的習題

在學習過程中,要求定量結果的習題一般比概念性、定性化的題目更能吸引學生的注意力,激發學生的興趣。

縱覽操作系統教材的配套習題和專門的操作系統習題書,我們依然可以發現不足之處,就是針對當前真實系統的習題偏少,即便是一些要求定量結果的習題,因取材自抽象后的簡化模型,給出的相關計算參數也不能反映真實場景。這種處理方式的弊端就是理論和實際有一定的脫節,學生對真實的系統可能會有隔膜。教師可以改善這種狀況,下面是我們在教學過程中用過的兩個題目:

(1)C程序“hello,world”從開始編輯到最終運行在系統中會產生多少進程/線程?

(2)C程序“hello,world”在當前系統中運行一次,其產生的最少、常規、最多(理論上)缺頁次數是多少?

這兩個題目將迫使學生針對具體的操作系統進行分析解答,由此獲得的對Linux/Windows進程/線程模型和虛擬存儲子系統的認識絕對不是普通習題可以達到的。

再例如頁表的格式及地址轉換,相關的習題都是基于一級頁表,而真實系統中常見的多級頁表卻不見蹤影,原因很簡單,即使小進程的頁表也需要若干KB的數據量,對于紙質書籍這往往是不可以接受的。在Web技術廣泛應用的今天,我們完全可以抓取一個真實進程某個時刻的頁表快照,然后設計相應的題目,通過課程網站以電子作業的形式提供給學生。

2.3在課程實驗與課程設計中引入性能測試和評估

相比起課堂教學內容,操作系統實踐部分的彈性更大,教師的自由度更多,教師可根據具體情況引入性能測試相關內容。性能測試與評估必須針對具體的平臺,我們在課程設計中選用的是Linux操作系統,其源代碼開放,有大量的軟件可供使用,可以進行各種層次的性能測試與評估。

具體的引入方式有兩種。一種方式是將性能測試分析作為單獨的實驗,可利用現成的基準測試程序和性能分析工具。因為操作系統是網絡的先修課程,所以用于測試網絡、服務器性能的基準測試程序不太適合作為實驗內容,比較適合的是開源微觀基準測試套件Lmbench和文件系統基準測試程序bonnie、iozone、dbench等。Lmbench用于測量處理器和內存、網絡、文件系統、磁盤之間的系統延遲和數據移動帶寬,其測試結果包含了系統調用、上下文切換、進程創建、文件系統的創建和刪除等性能指標,可以發現系統的瓶頸,比較貼合本科教學內容。Linux平臺下的性能分析工具也非常多,比如proc文件系統、top、vmstat、iostat和sar等,如果想分析測試Linux內核本身的性能,則可以使用Linux Trace Toolkit或Oprofile??偠灾?Linux這方面的工具非常豐富,可以滿足不同層次的需求。

另一種方式是將性能測試評估作為實驗項目的一個步驟。我們所見的課程設計項目一般都需要分析、設計、實現、測試功能正確性及撰寫報告這幾個步驟,但是將性能測評納入考慮范圍的很少。下面是我們用過的一個實驗。

逆序一個大小為64MB的文本文件,請使用下面三種方法:

(1) 標準C的I/O函數;

(2)Unix的I/O函數;

(3)open和mmap。

要求盡量考慮效率,比較三種方法的性能。前兩種方法,要求測試I/O每次讀寫單位分別為1B和4KB的情況。

學生從本實驗獲得的知識與技能有:

(1) 理解緩沖對性能的影響。

(2) 了解系統調用開銷和使用strace追蹤系統調用情況。

(3) 使用time測試程序運行時間,了解程序運行的實際時間、用戶CPU時間和系統CPU時間。

(4) 了解操作系統本身實現對程序性能的影響。

影響程序性能的因素非常多,學生一般都知道語言、算法和數據結構等因素。但采用不同系統調用實現相同功能,性能差距卻很大讓學生對mmap充滿了好奇。另外值得一提的是,我們發現有些學生采用了較差的實現方案,導致每次讀寫單位為一字節時利用標準I/O函數的程序竟然比利用Unix I/O函數的程序慢,經過指點后學生使用strace發現了癥結所在,重新調整實現方案取得了預想的結果,這種性能調節的過程對學生起到的鍛煉效果是令人滿意的。

2.4在課外教學指導中深化定量教學

課外學習指導是課堂教學的延續,教師可以適當指導學生自發組織的操作系統興趣小組,但應注意充分發揮學生的積極性、主動性。在加強學生操作系統量化處理能力方面,一種方式是跟蹤當前Linux內核的進展,學會定量評估某個內核組件或功能模塊的性能,甚至在此基礎上嘗試改進。另一種方式是指定閱讀若干操作系統方向的論文,這些論文包含研究技巧和相應的性能測試分析,如有可能,讓學生重復論文的實驗結果,一個很好的示例見文獻[3],這種方式能培養學生基本的科研素養。

3操作系統定量教學實施的建議

在定量教學實施過程中,建議注意如下幾點:

(1) 要有系統的觀點。所謂系統的觀點體現多個方面,一是定量方法本身是為教學服務的,二是操作系統本身是計算機系統中的一個組件,三是操作系統的各子系統如何配合運作整個系統的,四是子系統的各功能模塊如何配合運轉本子系統的。以這種觀點來組織教學,必須依托于真實系統,把各個知識點貫穿起來,前面各節提到的實例都反映了我們這方面自覺的嘗試。

(2) 注意各教學環節互相配合銜接,定性與定量結合。以線程的講授為例,引入線程的一個主要目的是利用機器并行處理能力,若干年前可能因為硬件條件不足,學生無法親身體會,但是在多核和超線程技術大行其道的今天,完全可以設計相應的項目讓學生在真實的機器上進行性能測試,體驗并行帶來的好處。

(3) 注意實例積累與學生反饋。在實施量化教學時,符合理念的現成習題和項目確實不多。一個途徑是改進一些已有的習題和項目使之滿足定量教學要求,另一個途徑是自行設計全新的習題及項目。在新習題和項目開始使用的前幾年,要注意和學生溝通,收集學生的反饋意見。根據我們的經驗,新題目或新項目必須經過學生的打磨后才會變得更加完善。

4結束語

當今操作系統教學在定量方法的運用方面或有不足之處,特別是在目前課堂教學內容相對于統一的情況下,實驗環節的具體內容更顯多樣性,其具體的實施和考核由各個高校的教師自行掌握,使得系統性能測試與評估一直被有意無意地忽視。我們根據教學體會系統地討論了在各個教學環節中如何有效實施量化教學并佐以具體實例說明,希望引起同行的關注并予以批評指正。

參考文獻:

[1] 教育部高等學校計算機科學與技術教學指導委員會.高等學校計算機科學與技術發展戰略研究報告暨專業規范(試行)[M].北京:高等教育出版社,2006.

[2] 羅宇,張穎蓓,葉常春. 本科操作系統課程設置及教學體會[J].計算機教育,2006(1):39-40.

[3]Bryan Clark, Todd Deshane. Xen and the Art of Repeated Research[C]. In USENIX Annual Technical Conference, FREENIXTrack, 2004:135-144.

[4] John L. Hennessy, David A. Patterson. Computer Architecture: A Quantitative Approach [M].4版.北京:機械工業出版社,2007.

猜你喜歡
操作系統
智能手機操作系統的分析與比較
國產桌面操作系統中虛擬化技術應用研究
操作系統實踐教學改革探索
基于虛擬機(VMware)的實驗平臺構建
基于單片機的嵌入式系統的開發研究
計算機操作系統中死鎖問題研究
“操作系統原理”實驗教學設置初探
高校操作系統課程教學改革的研究與實踐
《操作系統》課程教學方法的研究與實踐
基于單片機的嵌入式系統開發及實踐要點研究論述
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合