摘要:本文主要以操作系統(tǒng)課程中的前趨圖、進程同步問題和哲學家就餐問題三個知識點為基礎,講述采用Flash技術動態(tài)講解操作系統(tǒng)知識的方法,同時闡述Flash技術對操作系統(tǒng)學習的重要意義。
關鍵詞:進程;同步;互斥;信號量;前趨圖;
從20世紀70年代第一代微機操作系統(tǒng)誕生到今天,操作系統(tǒng)的發(fā)展已經有將近40年的歷史了,其更新?lián)Q代也從未停止過:從DOS系統(tǒng)到Windows系列,一直到今天的Windows7,操作系統(tǒng)開發(fā)技術的發(fā)展令人嘆為觀止。同時,世人對操作系統(tǒng)知識的學習和技術提高也在不斷的進行著。然而,由于操作系統(tǒng)知識與現(xiàn)實生活并不貼近,因而理解上難免會有困難,學習起來也就不是那么的容易。在高等院校中,有限的學時安排也直接導致了操作系統(tǒng)知識學習的障礙明顯,所以操作系統(tǒng)的學習方式有待改善。利用Flash技術講解相關的知識點是一個非常重要的手段,其直觀、生動的特點可以有效學習操作系統(tǒng)知識。
1結合Flash解釋知識點
1.1概述
Flash技術最重要的特點就是問題解釋的直觀性和生動性,將該技術用于操作系統(tǒng)課程教學,可以大大降低知識介紹的難度。使用Flash制作的課件,不僅操作簡單,而且交互性強,非常有利于教學的互動[1]。書本上各種原理的闡述,通過一段可控制的動畫來完成,既能簡化教學過程,又能活躍課堂的氣氛、提高學生學習的積極性。下面的2個實例將具體介紹Flash技術闡釋某些原理的過程,從而讓我們清晰的看到該技術的優(yōu)越性。
1.2程序并發(fā)執(zhí)行前趨圖
我們知道,計算機大型程序的運行通常是由若干個小的程序段組成,而在執(zhí)行時,必須按照某種先后順序逐個執(zhí)行,僅當前一個操作執(zhí)行完畢后才可以執(zhí)行后繼操作。故我們可以得出程序順序執(zhí)行時的前趨圖,如圖1所示[2]。
圖1描述的前趨關系為:IiàCiàPi。每個程序段必須按照輸入(I)、計算(C)、打印(P)的順序執(zhí)行,一個程序段執(zhí)行完畢后,下一個程序段才能開始并且按照相同的順序執(zhí)行。
考慮各程序段并發(fā)執(zhí)行,為了減少程序運行的時間,我們應當使整個執(zhí)行過程中的某些步驟并行執(zhí)行,即在執(zhí)行程序1的某個步驟時,使程序2的某個步驟同時執(zhí)行。而在各個程序段執(zhí)行過程中,所占用的計算機資源是不同的。例如:輸入步驟占用輸入設備,如鍵盤;計算步驟占用處理器;打印步驟占用打印機。這樣各個程序段中占用相同計算機設備的步驟顯然不能夠同時執(zhí)行,只能讓占用不同資源的步驟并行執(zhí)行,而程序段內部仍然按照原來的順序進行,如圖2所示[2]。
起初,程序1執(zhí)行其第一個步驟——輸入,當程序1執(zhí)行計算步驟時,計算機的輸入設備處于空閑狀態(tài),故可以讓程序2同時執(zhí)行其輸入操作,這樣程序1的計算步驟就和程序2的輸入步驟并發(fā)執(zhí)行了。同理,當程序1執(zhí)行到打印步驟,程序2并行執(zhí)行到計算步驟時,計算機的輸入設備又一次處于空閑狀態(tài),故可以使程序3的輸入步驟和程序1的打印步驟、程序2的計算步驟并發(fā)執(zhí)行。如此進行下去,就形成了整個程序的并發(fā)執(zhí)行過程。
然而,單純的這樣一張圖,是不能夠讓學習者清楚的了解這個知識點的含義,甚至還會引起誤解,混淆輸入步驟、計算步驟和打印步驟之間的執(zhí)行關系。在筆者制作的Flash解釋材料中,完整演示了各個步驟并行運行的情況。
在每個并行執(zhí)行時刻,并行執(zhí)行步驟都會發(fā)光以提示讀者,如圖3所示[3],程序正好執(zhí)行到三個程序第一次并行執(zhí)行的時刻,三個發(fā)光的進程代表它們同時進行,一方面前趨關系可以通過進程間聯(lián)系的箭頭顯示,另一方面并發(fā)程序塊有哪些也是一目了然的(發(fā)光顯示)。Flash技術在展現(xiàn)動態(tài)發(fā)生過程的直觀性毋庸贅言。
1.3進程同步問題
1.3.1概述
在多道程序環(huán)境下,進程同步問題是一個非常重要的研究對象。進程同步的主要任務是對多個相關進程在執(zhí)行順序上進行協(xié)調,以使并發(fā)執(zhí)行的諸進程之間能夠有效的共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。例如,兩個用戶(可以假設為用戶A和B)同時要求對某個銀行賬戶進行操作時,賬戶內原本存有500元,A欲存入200元,B欲取出100元,下面列舉一種可能出現(xiàn)的情況:
(1)A讀出銀行賬戶存款為500元。
(2)B讀出銀行賬戶存款為500元。
(3)A存入200元,但是處理結果還沒有提交時(即賬戶存款沒有更新為700元),發(fā)生下一步驟。
(4)B取出100元,并提交更新結果,即賬戶存款變?yōu)?00元(因為B讀到的余額為500元)。
(5)A提交處理結果,即賬戶余額更新為500+200 =700元。
顯然最后的結果并不符合實際情況:賬戶應該剩余600元,但實際卻剩余700元。同樣地,如果對進程的同步運行沒有合理的管理,也會出現(xiàn)異常的情況。進程同步的研究意義也就不言而喻了。
1.3.2經典同步問題簡介
在學者們感興趣的進程同步問題中,典型的有:“生產者——消費者問題”、“讀者寫者問題”和“哲學家進餐問題”。筆者將結合Flash技術重點講述“哲學家進餐問題”。
1.4哲學家進餐問題
1.4.1問題描述[4]
該問題是由Dijkstra提出并解決的經典的哲學家就餐問題。該問題是描述有五個哲學家共用一張圓桌,分別坐在周圍的五張椅子上,圓桌上有五個碗和五根筷子,他們的生活方式是交替的進行思考和進餐。平時,一個哲學家進行思考。饑餓時便試圖取用其左右最靠近他的筷子,只有在他拿到兩根筷子時才能進餐,進餐完畢放下筷子繼續(xù)思考。
1.4.2問題分析與解決
經過分析可知,放在桌子上的筷子是臨界資源,在一段時間內只允許一位哲學家使用,為實現(xiàn)對筷子的互斥使用,可以用互斥量表示一根筷子,由這五個信號量構成信號向量組。描述如下:
在以上的描述中,當哲學家饑餓的時候,總是先去拿他左邊的筷子,即執(zhí)行wait(chopstick[i]),成功后,再去拿他右邊的筷子,即執(zhí)行wait(chopstick[ (i + 1) mod 5]),成功后,可以進餐。進餐完畢,又先放下他左邊的筷子,然后再放下他右邊的筷子。雖然以上的方法,可以保證不會有兩個以上的哲學家同時進餐,但是有可能引起死鎖。假如五個哲學家同時拿起左邊的筷子,就會使五個信號量chopstick均為0;當他們再試圖去拿右邊的筷子時,都將因無筷子可拿而無限期等待。對于這樣的死鎖問題,可以采取以下幾種解決方法:
(1) 至多只允許四位哲學家同時去拿左邊的筷子,最終能保證至少有一位哲學家能夠進餐,并在用餐完畢時釋放他所使用的兩根筷子,從而使更多的哲學家可以進餐。
(2) 僅當哲學家左右兩側的筷子均可用時,才允許他拿起筷子進餐。此時,即轉換為AND同步問題。
(3) 規(guī)定奇數(shù)號哲學家先拿他左邊的筷子,然后再去拿他右邊的筷子,而偶數(shù)號的哲學家則相反。按此規(guī)定,將是1、2號哲學家競爭1號筷子;3、4號哲學家競爭3號筷子。即五位哲學家都先競爭奇數(shù)號筷子,獲得后,再去競爭偶數(shù)號筷子,最后總有一位哲學家能夠獲得兩根筷子而進餐。
1.4.3Flash技術講解
筆者制作的哲學家進餐問題的材料是,原始問題的一個變種問題,其中的共享變量變?yōu)橐浑p筷子和一把叉子,對應的,當且僅當哲學家同時獲得了身邊的一雙筷子和一把叉子時,才可以進餐(問題的原理是沒有變化的)。如圖4所示。
筆者在演示過程中考慮了所有可能出現(xiàn)的情況,同時為了便于讀者對Flash的播放進度進行控制,也設置了播放和暫停按鈕。
圖5描述的是第一個場景,即某哲學家準備進餐并且身邊的筷子和叉子都可以獲得,此時,哲學家可以進餐,并且身邊的叉子和筷子屬性更改為不可用,直到該哲學家進餐完畢。
圖6描述的是第二個場景,即某哲學家準備進餐,但是身邊的筷子和叉子不能同時獲得,此時,哲學家不可以進餐,需要等待。即等待執(zhí)行操作[2]:
wait(fork);
wait(chopsticks);
另外,對應還有2個場景是上述2種情況下,當哲學家進餐完成后,需要放回筷子和叉子,使旁邊的哲學家有可能進餐。
通過對所有可能出現(xiàn)情況的解釋,我們理解了整個哲學家就餐問題的過程。在具體操作過程中,教師可以通過交互按鈕對動畫的播放過程進行控制,到了關鍵的步驟可以暫停動畫的播放,讓學生說出接下來發(fā)生的狀況,然后使動畫繼續(xù)播放,以印證學生回答的正誤。
2總結
2.1Flash的特點
Flash課件可以動態(tài)的展現(xiàn)事情發(fā)展的整個過程,對于操作系統(tǒng)中一些抽象的知識,用Flash來進行講解,比書中的圖片解釋效果要好得多。連續(xù)動畫的播放,足夠詳細闡釋某個過程的發(fā)展。適當?shù)奶砑右恍┙换ナ桨粹o(如播放、暫停、繼續(xù)等)可以讓讀者自己控制動畫的播放,有利于讀者的自學。Flash中對色彩、圖形進行合理、巧妙的設計,更能滿足讀者的審美需求。Flash生動具體的表現(xiàn)能力,使抽象的過程能夠生動具體化,這是所有特點中最重要的。
2.2Flash對操作系統(tǒng)課堂教學的意義
在專業(yè)知識的傳授過程中,我們的目標就是先用最容易理解的方式來解釋其中的原理,然后再讓學生結合自己的理解獲得對問題的全面認識。利用Flash技術最顯而易見的好處,是將深奧繁瑣的操作系統(tǒng)原理,用簡單的動畫加以解釋說明,這樣就大大降低了授課的難度。
在各高校中,由于操作系統(tǒng)課程安排的時間普遍比較少,同時學習的內容又增加了,所以就要求在有限的時間里完成更多的教學任務,這對教學方法和教學方式都提出了新的挑戰(zhàn)。傳統(tǒng)的教學模式下,課堂上借助書本、PPT等資料,解釋的過程也只是先前學習過程的重復,很難獲得新的理解;對學生知識點理解的檢查,是通過口頭回答或者上黑板做練習的方式,既浪費時間又不一定能夠達到目的;同時,從前高校的小班教學也隨著班級人數(shù)的增加發(fā)生了變化,要在課堂上讓每個同學都理解所講的知識點也就不太現(xiàn)實了。
然而,通過Flash技術的引進,很好的解決了上述的問題。教師可以合理的控制Flash課件的播放,在關鍵部分重點解釋(也可以調節(jié)Flash動畫播放的速度),在生動的展現(xiàn)過程中,有針對性的解決疑問;Flash課件中添加相關的練習,在播放的過程中提出問題并解答提問,并由播放的結果加以印證,從而高效的達到了教學的目的;對于簡單的知識點,課堂上只需要簡單介紹,節(jié)省時間。課后,學生可以自己演示動畫并結合書本學習,在相同的課堂時間,把更多的時間可以安排在重、難點上。
另外,教師授課過程也隨著Flash技術的引入而發(fā)生了變化。從前,上課前教師必須準備充分的材料,以幫助學生更順利的掌握知識點;課堂上,甚至還需要在黑板上繪制各種表格圖像,以解決疑難;Flash課件的出現(xiàn),讓教師只需要控制交互式按鈕,即可達到教學的目的。
2.3Flash對操作系統(tǒng)學生學習的意義
一般來說,學生掌握知識的過程分為兩個部分,即課堂上的聽講和課后的鞏固。在課堂聽講后,將不理解的部分做上標記,課后可以通過到圖書館中查找資料、向同學、老師請教或者上網等方式來解決疑惑,從而掌握知識點。雖然這種傳統(tǒng)的方式有利于學生自學能力的培養(yǎng),然而畢竟花費了太多的時間。引入Flash課件后,掌握知識的過程仍然是這兩個部分,但是在課堂上不理解的知識點已經有所減少,到了課后,學生可以根據自己的需要控制Flash課件的播放,理解的速度必然會加快,再結合上課老師的講述和自己做的筆記,學習的效率會顯著的提高。
2.4Flash與操作系統(tǒng)知識結合的不足
當然,用最自然的方式闡述專業(yè)化的知識,也不可避免的存在一個問題——生動性的降低。Flash本身就是以圖片場景的組合來表達意思的,但是專業(yè)化的知識,必須考慮到學術的嚴謹性,在場景播放中也不可避免的會出現(xiàn)一些文字說明,有時還是大量的,這對Flash的生動表達無疑是明顯的損害。
綜合來看,F(xiàn)lash技術用于操作系統(tǒng)知識的解釋無疑還是成功的。
參考文獻:
[1] 湯小丹,梁紅兵,哲鳳屏,等. 計算機操作系統(tǒng)[M]. 3版. 西安:西安電子科技大學出版社,2007.
[2] 鄒恒明. 計算機的心智:操作系統(tǒng)之哲學原理[M]. 北京:機械工業(yè)出版社,2009.
[3] 汪國安,侯秀紅,周星,等.計算機操作系統(tǒng)課程及考研輔導[M]. 北京:機械工業(yè)出版社,2004.
[4] Gary Nutt. Operating Systems[M]. 3rd ed. New York:Addison-Wesley,2004.
The Research on Dynamic Teaching Method Based on the Course of Operating System
JU Wei , XU Yun-long
( School of Computer Science and Technology, Soochow University, Suzhou 215006, China)
Abstract: This paper introduces a teaching method in an operating system course with the using of the Flash technology, which can help us display things in a continuous way, based on three concepts, i.e. Precedence Relation Chart, Problems of Synchronization and The Dining-Philosophers Problem, and emphasizes the significance of Flash technology in the study of the Operating System.
Key words: process; synchronization; mutual exclusion; semaphores; precedence relation chart
(編輯:白杰)