摘要:[摘要] 操作系統是計算機科學與技術專業的專業平臺課。為了提高課堂教學質量和培養應用型人才,濱州學院從2011級學生開始在操作系統課程的教學中實施了案例教學法。通過豐富的教
[摘要] 操作系統是計算機科學與技術專業的專業平臺課。為了提高課堂教學質量和培養應用型人才,濱州學院從2011級學生開始在操作系統課程的教學中實施了案例教學法。通過豐富的教學案例,使學生從現實情況中體會到了蘊含的理論知識,提高了學習興趣,收到了良好的教學效果。
[關鍵詞] 濱州學院;案例教學;操作系統課程
“操作系統”作為一門理論性較強的課程,在教學中除了應用啟發式和討論式教學方法外,引入案例教學法[1],可以使得比較枯燥的理論知識變得生動有趣,激發學生的學習興趣,從而大大提高教學效果。信號量機制是一種解決進程同步問題的有效工具,也是操作系統中進程管理的一個重要內容。信號量的應用可以分為兩大類,一是實現過程互斥,二是實現前趨關系。下面以信號量機制在進程同步問題中的應用為例,介紹案例教學法在操作系統課程教學中的應用。
一、使用信號量實現互斥的案例
在計算機系統中存在著許多資源,它們在一段時間內只允許一個進程訪問,這類資源我們稱之為臨界資源或獨占資源[2]。很多硬件設備(如打印機)和隊列、棧、變量等都屬于臨界資源。利用信號量機制可以解決多個進程對臨界資源的互斥訪問問題。
(一)基本方法
對于臨界資源R,設置信號量Mutex,初始值為1。為了使多個進程互斥地訪問R,每個進程中訪問R的臨界區代碼段都要放在Wait(Mutex)和Signal(Mutex)兩個操作之間。每個訪問臨界資源R的循環進程可以描述如下:
Pi(){
Wait(Mutex);
Critical section;
Signal(Mutex)
Remaider section;
}
(二)案例分析
有了基本方法,學生對解決問題的思路有了大體了解,但是針對具體問題并不一定能夠解決。在這里可以給出學生幾個案例,如單向橋問題、吃水果問題、閱覽室問題等。讓學生真正去“體驗”一下解決過程,這樣才會對理論講解有更加深刻的認識,促使學生結合教學案例給出中的現實情況,在解決問題的過程中創造性地提出解決方案[3]。
下面以單向橋問題為例進行簡單介紹。
1. 案例介紹
有一單向行駛的公路橋,每次只允許一輛汽車通過。當汽車到達橋頭時,若橋上無車,便可上橋;否則需等待,直到橋上的汽車下橋為止。若每一輛車為一個進程,請用Wait、Signal操作保證汽車按要求過橋。
2. 案例分析
可以將公路橋看作一個臨界資源,設置一個信號量S實現互斥,初值為1。由于每個汽車過橋的過程相同,這里只給出一輛汽車Pi過橋的同步描述。
Semaphore S=1;
Pi( ){
While(1){
到達橋頭;
Wait(Mutex);
上橋行駛;
到達橋的另一端;
Signal(Mutex);
}
}
3. 教學組織
傳統教學是注入式教學,而在案例教學過程中,教師是主導地位,學生是主體地位,教師可以帶領學生從未知領域進入已知領域[4]。在組織實施時,可以在給出問題描述后先讓學生討論,然后引導學生分析在這個問題中需要互斥訪問的臨界資源是什么,如何去定義信號量,初始值是多少。定義好信號量后,和學生一起寫出解決這個問題的算法。
二、利用信號量實現前趨關系的案例
有些進程在運行時具有前趨關系。例如,進程C完成數據處理后進程P才可以進行結果打印,則進程C和P之間存在前趨關系,即C→P。利用信號量可以實現進程間的前趨關系。
(一)基本方法
在實現前趨關系時,可以為進程C和P定義一個公用信號量S,并設置初始值0。進程C完成數據處理后要執行Signal(S)操作向進程P發一個信號,而進程P在打印之前要執行Wait(S)操作,即收到信號后才可以打印。
(二)案例分析
在操作系統中也有很多有趣的進程同步問題可以歸為這一類,如公共汽車問題、圍棋問題、抽煙問題、4×100接力賽問題等。下面以公共汽車問題為例進行介紹。
1. 案例介紹
在公共汽車上,司機和售票員各行其職,司機負責開車和到站停車;售票員負責售票和開、關車門,當售票員關好車門后,駕駛員才能開車行駛。試用Wait、Signal操作實現司機與售票員間的同步。
小編推薦優秀的電子類期刊 《中國信息安全》
《中國信息安全》堅持為社會主義服務的方向,堅持以馬克思列寧主義、毛澤東思想和鄧小平理論為指向,貫徹“百花齊放、百家爭鳴”和“古為今用、洋為中用”的方針,堅持實事求是、理論與實際相結合的嚴謹學風,傳播先進的科學文化知識,弘揚民族優秀科學文化,促進國際科學文化交流,探索防災科技教育、教學及管理諸方面的規律,活躍教學與科研的學術風氣,為教學與科研服務。
聲明:
①文獻來自知網、維普、萬方等檢索數據庫,說明本文獻已經發表見刊,恭喜作者.
②如果您是作者且不想本平臺展示文獻信息,可聯系學術顧問予以刪除.