999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

操作系統課程實驗中的五重奏哲學

2009-01-18 07:44:34鄒恒明
計算機教育 2009年20期

摘要:作為計算機專業的核心課程,操作系統的教學效果一直不甚理想。造成此種狀況的原因很多,本文針對其中的一個環節——操作系統的課程實驗——進行討論。在分析當前課程實驗中存在的問題后,本文提出將操作系統實驗分為了解操作系統、使用操作系統、操作系統編程、操作系統改進、操作系統設計五個層次進行設計。這五個層次上的實驗可以根據學校不同和學生素質與能力不同或單獨或組合使用,形成一種高低搭配、錯落有致的操作系統實驗的五重奏。

關鍵詞:操作系統;實驗設計;五重奏哲學

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

1引言

作為計算機專業的一門核心課程,操作系統的教學效果一直不甚理想。通過對相關學生的調查發現,絕大多數學生對操作系統的理解存在錯位和誤區,概念上模糊,對操作系統的各種機制缺乏邏輯性的理解。就以內核態和用戶態為例,學生對如下幾個問題的理解存在相當大的疑惑:驅動內核態和用戶態的根本力量是什么?這兩種態勢在實現上的區別是什么?什么樣的功能需要在內核態或用戶態進行?程序如何從一個態勢切換到另一個態勢?這種切換隱含著什么樣的重大意義?

顯然,操作系統本身的復雜性是導致教學效果不佳的一個原因;另外,操作系統教學機制上存在的諸多問題,如教學方法老舊、教材選擇偏差、講課方式枯燥等,也是另一個原因——這些問題我已在《操作系統之哲學原理》(《計算機教育》2009年第17期)一文中進行了討論。本文要討論的是另一個對操作系統教學有著重大影響的因素:課程實驗設計,因為操作系統課程實驗上存在的缺陷與當前令人沮喪的教學效果有著直接的關系。

由于操作系統的實驗性質很強,不親自動手做與操作系統有關的實驗,對操作系統的了解就勢必流于膚淺,因此操作系統課程通常都伴有實驗。但我們通過多年的教學實踐與調查發現,操作系統的實驗設計存在諸多問題,大部分上過操作系統課程的學生確實做過操作系統實驗,但已經忘記實驗的具體過程,也不理解這些實驗的背后動機,以至于學生做完實驗后對操作系統的理解并沒有得到多大的提升,或提升的程度相當有限。

2當前操作系統實驗設計面臨的問題

雖然不同的學校在操作系統實驗設計上有自己的特點,但由于操作系統的復雜性和外來性(即操作系統終究是一個由外國人發明和完善的東西),各個學校在課程實驗設計上也存在著一些共同的缺陷。根據我們的調查,這些共同點缺陷包括目標模糊、缺乏層次、生搬照用和沒有趣味。

2.1目標模糊

設計實驗的時候并沒有考慮到學生的培養目標是什么。是培養會使用操作系統的人,還是會進行底層編程的人,還是將來開發設計操作系統的人?對于不同的目標,操作系統實驗設計就應該有所不同。如果不考慮這個因素,實驗設計的時候就沒有針對性,學生就會覺得實驗對他們的未來事業沒有幫助或幫助有限。當然,也許我們現在并不知道到底應該培養哪種人才,也許有的學生會去設計開發操作系統,也許有的學生以后一輩子也不會與操作系統打交道,也許有的學生只是使用操作系統而已。即使如此,一個學校總還是應該有自己的定位的。按照這種定位,就可以制定一個大致的實驗方案。

2.2缺乏層次

操作系統實驗的設計沒有層次感,基本上所有的實驗都是針對操作系統的某部分功能實現進行的,如進程管理、內存管理、文件管理等。這些實驗都是對一個模擬操作系統或實驗室操作系統的內核進行修改,形式單一,這種單調的實驗設計對操作系統的整體把握并無太大用處。例如,即使做了修改進程調度或頁面更換算法的置換實驗,學生還是不明白操作系統是如何具體地服務于用戶程序的。這個問題和前面一個問題是互相影響的:由于目標模糊,不能準確定位學生的實驗需要,導致實驗設計單調;而實驗設計單調,又反過來進一步模糊我們的培養目標。

2.3生搬照用

很多學校照搬其他人現成的實驗作為本校的操作系統課程實驗。如果照搬得當,利用他人的現有成果當然能節省時間和精力,但問題是目前的照搬存在很多問題:照搬的實驗與本校對學生的培養目標不吻合;沒有完全理解照搬實驗的精髓,不能清晰地闡述給學生;構造的實驗環境不能完全適應所需的實驗,導致實驗失敗。另外,照搬的實驗很多使用實驗室操作系統內核,如Minix和Nachos。雖然這些實驗室操作系統內核確實可以用來展示操作系統的工作原理,但它們與商用操作系統的差別巨大。有些原理在實驗室操作系統上可行,在商用操作系統上卻行不通。這樣,即使學生了解了這些實驗室操作系統內核,到了工作單位面對商業操作系統時,仍然是一籌莫展。

2.4沒有趣味

眾所周知,人在做自己感興趣的事情時,積極性會明顯高于自己沒有興趣的事情,效果也會好很多,而現在的操作系統實驗設計卻往往缺乏趣味性。大部分實驗無非是修改這個,置換那個,實現某一微小操作系統功能等。這些東西對于本來就對計算機和操作系統很執著的人來說,可能并不乏味,但對于很多人來說,修改或微調一個進程調度算法并不是一件激動人心的事情。

3對改進操作系統實驗設計的思考

根據以上的分析,要改變現有的實驗課程缺陷,就需要首先明白我們培養學生的目標是什么。明確目標后,才能知道學生對操作系統實驗的需求是什么,在此需求基礎上,就可以有針對性地制定操作系統實驗方案,以適應不同素質和不同能力的學生。例如,我們在進行課程實驗設計的時候應該問一下,我們的教學目標是培養操作系統設計師嗎?還是培養能夠使用操作系統底層服務的軟件工程師?還是培養能夠熟練安裝使用操作系統的技術操作員?

我們認為,操作系統課程并不一定需要進行操作系統功能實現的實驗。認為所有操作系統課程都需要進行同樣程度、類似功能的實驗,其實是長久以來形成的一個誤區。很多學生將來并不會在操作系統領域工作,甚至不會在軟件領域工作,讓這些人做那些進程實現、內存管理實現或者文件系統實現等實驗,似乎沒有什么必要。對于這些學生,即使他們做了復雜的操作系統實驗,也不會記得很久,甚至實驗完了還是沒有搞清楚操作系統是怎么回事。

因此,在設計實驗方案時,必須心中想著不同學生的需求,從多個層面上設計不同的實驗,形成高低錯落有致、難易搭配有方的一套組合實驗,并能夠根據具體情況動態調整實驗的實施方案,以適應學校的培養目標,同時兼顧到部分同學或高或低的需求。基于這些考慮,我們的實驗設計就必須具有豐富的層次,而設計出的實驗也就會目標明確,層次豐富,也不會有生搬照用的各種缺陷。

此外,我們還應該力求在實驗設計中引入趣味性,將操作系統底層實驗與用戶層面的應用連接起來,形成由實際需求驅動的操作系統實驗設計,從而提升學生做實驗的興趣。

4操作系統實驗設計中的五重奏哲學

前面說過,實驗設計必須與教學目標聯系起來。如果我們的目標只是普及操作系統知識,則無需進行操作系統實驗或只進行簡單的操作系統殼的使用實驗即可。但如果學習操作系統的目的是為了將來設計、改進或精湛地使用操作系統,則需進行較為復雜的操作系統實驗。根據目的的不同,我們推薦將操作系統實驗分為圖1所示的五個層次:

每一層次針對一種培養目標,每個層次都要求學生在熟悉下面一個層次實驗的基礎上,進行新的針對該層次的實驗。五個層次上的實驗可以根據學校不同、學生素質與能力不同而單獨或組合使用。例如,對于一般的職業學校,只要進行第1和第2層實驗即可;對于大部分的普通大學,則進行第1、第2、第3層的實驗;重點大學則進行1~4層的實驗。對于少數素質高、能力強的學生,可以實施全部5個層次的實驗。這種高低搭配、錯落有致的實驗層次如同不同的“音樂聲部”,一起合成一首質感豐富的“交響樂”。這就是本文的操作系統課程實驗設計的五重奏哲學。

4.1了解操作系統層次

這是學習操作系統的最低層次,也稱為掃盲層次,目的是為了對操作系統的概念、實體有點概念。對這個層次的學生來說,操作系統實驗就是啟動一個操作系統,然后對操作系統提供的用戶界面進行一些操作。這一層次的實驗全部在操作系統殼的上面進行。

4.2使用操作系統層次

這是學習操作系統的第二層次,目的是為了能夠更好地使用操作系統。在操作系統出現問題時,能夠簡單判斷出現問題的原因,并找出對策。對這個層次的學生來說,設計的操作系統實驗以使用為主:即讓學生通過各種現有或老師自編的操作系統探索工具來窺探操作系統運行時的內部狀態及其在系統外層的表現。這種工具在Unix、Linux和Windows上都有很多。例如,對于Windows操作系統來說,其窺探工具包括Process Explorer、Performance Monitor、File Monitor等五六十種工具。這一層次的實驗通常跨越操作系統的殼(有些在殼的上面,有些在殼的下面)。

4.3操作系統編程層次

這是學習操作系統的第三個層次,比使用操作系統的層次高了一個境界。這個層次的學習是為了能夠在程序設計或軟件開發中利用操作系統提供的系統服務來達到系統程序設計的目標。對于該層次的學生來說,設計的操作系統實驗應當以對系統調用的使用為主,通過操作系統提供的編程界面來編寫一些工具軟件。Linux、Unix、Windows都有大量的系統調用可供我們進行系統編程。例如,我們可以要求學生通過對Win API的使用來編寫4.2節里面提到的某個工具軟件,如File Monitor。這一層次的實驗完全在操作系統的殼下面進行,但尚未進入到內核里面。

4.4操作系統改進層次

這是學習操作系統的第四個層次,也是一個較高的層次,從操作系統的外圍進入到了內核。該層次學生以進入工業界維護和改進操作系統或學術界進行操作系統研究為己任。對于該層次學生來說,設計的操作系統實驗應當以對操作系統本身的修改為主,對一些實驗室操作系統如Minix、Nachos等進行修改,以改善或置換某種具體的功能:如設計一個調度方案來置換Minix里面的調度算法,或者為Nachos補充一個管程機制等。如果有條件,建議在商用操作系統上進行內核修改。例如,使用微軟提供的WRK就可以進行很多有趣的Windows內核修改實驗。

4.5操作系統設計層次

這是學習操作系統的最高層次,適用于把研究、設計、開發操作系統作為己任的學生,這個層次的實驗是為培養操作系統大師而設計的。顯然,進入這個層次的學生應該對操作系統的每個核心功能都非常熟悉,并且有某些上手的經驗。為此,操作系統實驗的設計就必須要求學生自己設計出某個完整的操作系統功能,如完整的進程管理功能或完整的內存管理功能等。但如果設計完整的功能模塊有難度,也可以適當降低要求。例如,對于內存管理來說,可以只要求學生實現一個內存頁面服務器。從另一個方面來說,如果學生能力很強且條件允許,也可以要求學生設計一個完整的操作系統。如果有條件,還可以讓學生對商用操作系統的源代碼進行分析。

五重奏哲學雖然使得操作系統的實驗設計具有層次豐富、邏輯遞進、搭配靈活的良好特性,但要將這些良好特性的作用完全發揮出來,則還需要想法提高學生做實驗的興趣。而要讓實驗具有趣味性,就不能在設計操作系統實驗的時候盡做些枯燥的純功能性的實驗。在進行修改操作系統內核實驗時,不要設計那些為了修改而修改的實驗,如修改頁面替換算法實驗、修改磁盤調度實驗,或者某個同步機制的實現實驗等,而是應該盡量將趣味融于到實驗里,將操作系統的某種功能實驗融入到某個有趣的應用開發里面。即我們是為了開發一個很有意思的應用,但在現有或者目前所提供的操作系統上面難以完成此種開發,需要對操作系統進行修改才能完成。這樣就順其自然地涉及到操作系統本身的使用、改進或設計上來,而這種把應用連帶進來的做法將使實驗的趣味性得以增強。

5實驗設計舉例

本節我們以自行設計的兩個操作系統實驗來說明五重奏的設計哲學。

5.1殺無赦

在設計操作系統內核修改實驗時,我們設計了一個“殺無赦”的實驗,驅動這個實驗的動機來自于許多人都有的親身經歷:打開Windows的任務管理器可以看到許多進程,但有些進程卻無法刪除,或者刪除后馬上又會再次出現。另外,有些進程并不呈現在任務管理器里——這種情況常常令人非常沮喪——“殺無赦”實驗就是要消除這種沮喪。從應用層面上看,這個實驗要求學生實現一個類似Windows任務管理器的應用,但與Windows管理器不同的是,該管理器必須能夠顯示所有在系統中活動的進程和線程,包括病毒或者隱藏的進程。另外,管理器必須能夠殺掉任何一個進程,即時導致計算機關機也在所不惜。當然,如果終結進程會導致關機,該管理器須要給出警告。

很顯然,僅僅使用操作系統提供的系統調用是很難完成上述任務的。因為所編寫的任務管理器無法保證能夠在病毒前面進入系統并啟動。但如果能夠修改操作系統內核,此任務就可以完成。這樣就自然地引入對操作系統內核的修改,達到實現該“殺無赦”任務管理器的目標。

此實驗囊括下面四個層面:殼上啟動與觀察、殼下窺探內部狀態、使用系統調用編程、需要修改內核。由于此實驗能讓學生直接體會到工作的成果,開發的管理器可以在自己的電腦上大顯身手,學生的積極性明顯高漲。有的學生在做完實驗后還意猶未盡,在課程結束后還在繼續修改完善本實驗。

對于能力很強的學生,我們可以將本實驗擴展為整個進程管理,從而形成完整的五重奏。

5.2進程干凍

我們設計的另一個比較有趣的實驗是“進程干凍”,該實驗也是從實際需要開始導入。很多人都有過這樣的經歷:一個任務進行到一半而被打斷,后來再進行時需要從頭開始。例如,在打印一個80頁的文件時,如果打印了50頁后系統突然崩潰,則下次系統重啟后再交付打印任務,前面的50頁還會再打印一遍。但這并不是我們所需要的,這時如果從第51頁打印開始不就好了?

正是出于上述考慮,我們設計了一個實驗對進程進行“干凍”,即將進程定格在某一個時刻,并存儲在磁盤上。下次系統重啟或程序重載時,直接從剛才定格的地方開始執行——例如從第51頁開始打印。如果前面第50頁只打印了一半,系統重啟后還可以從第50頁的后半部分開始打印。

同樣,該實驗涉及到對操作系統內核的掌握。如果只使用系統調用(操作系統API),則實現的進程干凍功能較為有限,因為有不少進程狀態在系統調用層無法捕捉。但如果可以修改內核,則大部分進程狀態都可以被捕捉,從而大大增加進程干凍的威力。基于此,該實驗也可以分解為使用系統調用和修改系統內核兩個子實驗,分別布置給具有相應能力的同學。

此實驗同樣囊括了五重奏里面的四個層面:殼上啟動與觀察、殼下窺探內部狀態、使用系統調用編程、需要修改內核。由于實驗將內核修改和應用開發連接在一起,實驗的結果很容易觀察到,并且也有實際價值,學生對該實驗的興趣明顯強于那些純內核修改實驗。

對于能力很強的學生,我們可以將本實驗進行擴展,將“進程干凍”升級為“操作系統上翻”,把對實驗的要求上升到操作系統設計的境界,從而形成完整的五重奏。

6實驗設計的其他考慮

除了前面介紹的“殺無赦”和“進程干凍”外,我們還有一系列在Minix、Nachos、Linux和裸機上的操作系統修改或設計實驗及各種各樣的內核窺探實驗。這些實驗根據每年學生的具體情況進行動態調整,同一個實驗也可以設計為不同層次的實現。例如,我們在上一節討論過的“進程干凍”實驗就有兩個版本:一個在系統調用級實現,即使用操作系統API來實現(實現的功能較弱);另一版本為內核修改版,即通過修改內核結構和功能來實現(實現的功能較強)。

如果有合適的他人設計的操作系統實驗,當然也可以照搬。事實上,在可能的情況下,也應該盡可能共享他人的優秀勞動成果。但是在照搬的時候,一定要確認搬來的實驗設計必須符合本校的整體課程設計目標,在層次、程度和對實驗環境的要求上均符合學校的具體情況。在照搬的過程中,需要完全理解這些實驗的精髓,并能夠詳細、清楚地闡述給學生。此外,實驗環境的搭建必須精準。為方便修改和不影響其他課程對設備的使用,我們推薦使用虛擬化技術來進行實驗環境的構建。

7結語

操作系統實驗作為操作系統課程教學的重要組成部分,對于學生對操作系統的理解和把握有著重要的影響。如果能因地制宜、因時制宜,根據每個學校的具體情況設計層次豐富的適合本校學生的操作系統實驗,對保持學生學習操作系統的興趣和加深對操作系統的理解都有重要的意義。本文提出的操作系統實驗設計中的五重奏哲學和實驗與應用結合的趣味實驗設計,就算是在這方面的一次拋磚引玉吧。

參考文獻:

[1] 鄒恒明. 計算機的心智:操作系統之哲學原理[M]. 北京:機械工業出版社,2009.

[2] Andrew Tanenbaum. 現代操作系統[M]. 陳向群,馬紅兵,等譯. 北京:機械工業出版社,2009.

主站蜘蛛池模板: 一级一级一片免费| 欧美天堂在线| 亚洲精品第一在线观看视频| 国产精品永久不卡免费视频| 久久伊人色| 国产激情无码一区二区APP| av在线无码浏览| 免费av一区二区三区在线| 免费无码又爽又黄又刺激网站 | 91精品国产综合久久香蕉922| 亚洲第一香蕉视频| 色呦呦手机在线精品| 精品国产一区二区三区在线观看| 亚洲一区二区三区香蕉| 亚洲永久免费网站| 婷婷久久综合九色综合88| 秘书高跟黑色丝袜国产91在线 | 91亚洲精品国产自在现线| 久热re国产手机在线观看| 少妇精品久久久一区二区三区| 欧美激情二区三区| 91精品免费高清在线| 真人免费一级毛片一区二区 | 国产精品无码作爱| 精品成人免费自拍视频| 亚洲不卡影院| 久久国产热| 91久久国产综合精品| 中文字幕欧美日韩高清| 日本人妻一区二区三区不卡影院| 亚洲欧美极品| 亚洲va视频| 91精品aⅴ无码中文字字幕蜜桃| 国产成人福利在线视老湿机| 国产一区免费在线观看| 欧美视频在线不卡| 亚洲第一视频网站| 免费看av在线网站网址| 色国产视频| 亚洲区欧美区| 欧美日本在线播放| 国产精品自在在线午夜区app| 99热免费在线| 精品精品国产高清A毛片| 999国产精品永久免费视频精品久久| 欧美精品xx| 亚洲综合中文字幕国产精品欧美 | 99ri精品视频在线观看播放| 久久婷婷五月综合色一区二区| 国产精品蜜芽在线观看| 免费大黄网站在线观看| 国产精品林美惠子在线播放| 成人在线观看一区| 国产香蕉在线| 亚洲国产成人精品无码区性色| 在线视频97| 全部免费毛片免费播放| 在线免费亚洲无码视频| 亚洲天堂.com| 日韩在线永久免费播放| 亚洲品质国产精品无码| 亚洲综合欧美在线一区在线播放| 四虎永久免费在线| 国产激情无码一区二区APP| 欧美a在线| 免费观看成人久久网免费观看| 91综合色区亚洲熟妇p| 高清精品美女在线播放| 狠狠色噜噜狠狠狠狠奇米777 | 噜噜噜综合亚洲| 99草精品视频| 久久精品嫩草研究院| 国产一区二区三区在线精品专区| 91啪在线| 欧美另类一区| 日韩性网站| 制服丝袜 91视频| 久久人妻xunleige无码| 亚洲a级毛片| 亚洲高清免费在线观看| 国产靠逼视频| 国产欧美日韩专区发布|