李仲生 黃美玲
摘 要: 銀行家算法要解決的通常是并發(fā)多進程、多種類資源環(huán)境下的死鎖避免問題,所處環(huán)境有隨機性、動態(tài)性的特點,算法采用的數(shù)據(jù)結構多且復雜,這些因素易讓學生潛意識地產生畏難意識,為調動學生的主觀能動性,基于PBL給出一種團隊教學模式。銀行家算法的實際教學顯示,這種教學模式挖掘學生的潛力,提升教學內容的可理解性。
關鍵詞: PBL 團隊式教學模式 死鎖避免 主動學習
一方面,進程的同步與互斥是多進程并發(fā)執(zhí)行的基石,位于執(zhí)行的核心位置,是操作系統(tǒng)課程教學重點。另一方面,由于是多進程并發(fā)執(zhí)行,進程對資源的要求是動態(tài)的,難以預知,要避免死鎖發(fā)生,進程的同步與互斥必須提升到能反映這種動態(tài)性,內容自然成為操作系統(tǒng)課程教學的難點。如果是單一資源的互斥或多個資源一次性分配互斥,采用PV原語利用信號量能可靠實現(xiàn),如果是多進程多資源的異步多次分配,光依靠PV原語和信號量已無法確保死鎖不發(fā)生,此時,就需要專門死鎖避免算法。銀行家算法就是這樣一種算法。
銀行家算法面對的是多進程多資源的異步分配,算法實現(xiàn)涉及一系列向量和矩陣數(shù)據(jù)結構,抽象且復雜,有相當?shù)慕虒W難度。為降低學生學習難度,總結長期教學實踐,下文給出一種基于PBL(Problem-Based Learning)[1]團隊式教學模式。
1.PBL(Problem-Based Learning)團隊式教學
PBL即以問題為導向的學習模式,是基于現(xiàn)實世界以學生為中心的教育方式[2]。與傳統(tǒng)教師主講的教學方式不同,在PBL學習模式中,學生的行為不再是被動聽課,而是主動沿著問題展開學習; 問題,或者與學習內容相關的任務,是學習者的起點、思路和前進方向; PBL學習模式給出真實性任務,并給出有意義、邏輯性強的一組問題,讓學生融入問題形成的學習氛圍中,自主探究或通過合作解答這些問題,揭示并學習隱含在問題背后的科學知識,潛移默化地提升自主學習能力,獲得解決問題的技能。
當前世界有一個共識,那就是“團隊協(xié)作”能促進發(fā)展,進而取得突破,甚至創(chuàng)造奇跡,科研如此,教學也如此。通過一般性分析可發(fā)現(xiàn),團隊至少能給參與者帶來四方面好處,一是營造氛圍,二是自省,三是互醒,四是成就感。心理學研究表明,人有著強烈的從眾心理,大家在做什么,個體就認為自己也應該做什么,大家穿什么,人就認為自己也該穿什么,等等,這種心理帶來的結果就是:團隊能營造氛圍。個體在團隊中看到別人的情況,比較自己的狀態(tài),在比較中會發(fā)現(xiàn)自己的問題,此為自省。團隊集眾人之力,完成事情的效率肯定高于個體,能做的事情的范疇非個體可比,這種超越個體的收獲足以帶來更強的成就感,高成就感反過來使團體更加高效。
2.PBL團隊教學模式的實施
在銀行家算法教學中引入PBL團隊教學模式有三個基本步驟,一是分析算法面對的環(huán)境,提出一系列環(huán)環(huán)相扣的問題,二是將學生分成適當規(guī)模的團隊,并讓團隊如同電腦一般運行起來;三是反饋,即用銀行家算法理論知識反過來驗證團隊探討的問題。
第一步工作在備課時完成。銀行家算法要做的工作是針對多個進程需求多種資源、每種資源的數(shù)目不一定為一的情形,判定每一步資源分配的安全性,為化抽象為具體,不妨引入實例[3]。設有三個進程,分別是P1、P2、P3,另有兩類互斥資源,分別記為A、B,對應的初始資源數(shù)目記為向量形式Avail0=(10,9), 三個進程初始時未分配資源,它們的資源需求向量分別是P1■=(11,2)、P2■=(7,6)、P3■=(7,5),小團隊組長問:當前狀態(tài)安不安全?很直觀的,有同學發(fā)現(xiàn)P1進程的資源得不到滿足,沒有安全路徑,不安全。組長改一下,寫成P1■=(9,2)、P2■=(7,6)、P3■=(7,5),再問安不安全,同學討論一番,找到了數(shù)條安全路徑,答安全。運行開始,P3提出資源請求P3■=(2,4),問:P3的請求是不是合理?答:小于P3資源最大需求,合理。問:當前資源能不能滿足P3的請求?答:小于現(xiàn)有資源數(shù)量,能滿足。問:能不能進行分配?討論后答:分配后存在安全路徑,處于安全狀態(tài),能分配。第一次分配后的資源需求向量變?yōu)镻1■=(9,2)、P2■=(7,6)、P3■=(5,1),三個進程得到資源的向量變?yōu)镻1■=(0,0)、P2■=(0,0)、P3■=(2,4),剩余資源數(shù)Avail■=(8,5)。接下來,P1提出請求P1■=(4,2),做合理性檢查,過;做能否滿足檢查,也過;做安全性檢查,發(fā)現(xiàn)一旦實施分配,剩余資源給三個進程中的任何一個都沒法執(zhí)行完,不存在安全路徑,不安全,阻塞P1進程……就這樣不斷重復,三項檢查通過時分配,不過時阻塞,直到完畢。
第二步工作是分組工作,為節(jié)省課時,可在課前由班干部預安排。根據(jù)設計的實例規(guī)模,每組六人,其中三人代表三個進程,兩人代表兩類資源,一人任組長,控制全程運行。課前需準備鉛筆和紙,以便以變化數(shù)據(jù)形式顯示執(zhí)行過程。協(xié)調六人動作,如同軟件測試中的模擬執(zhí)行一樣,讓三個進程動起來。
第三步是反饋,在分組執(zhí)行完成后進行,是理論上的反饋,相當于略詳細些的課后總結。具體內容主要是根據(jù)剛才動態(tài)演示的過程,對比銀行家算法的各項數(shù)據(jù)結構,加以映射比較,達到深化之效,比如:可利用資源向量,即最初始的資源向量;最大需求矩陣,即將每個進程的初始資源需求拼成一個矩陣;分配矩陣,即將每個進程得到的資源向量拼成一個矩陣;需求矩陣,即最大需求矩陣減去分配矩陣。在明確這些數(shù)據(jù)結構后,進一步對進行安全檢測的臨時數(shù)據(jù)結構加以歸納。
3.結語
為調動學生的學習主動性,降低銀行家算法的教學復雜度,基于以問題為導向的學習模式(PBL),給出了一種團隊教學模式。在該教學模式下,每個同學都相當于一個計算機組件,每個問題相當于一條機器指令,整個學習過程在嚴密邏輯中、在同學們的主動參與下步步向前推進。從本質上說,這種團隊教學模式并不僅限于銀行家算法教學,在操作系統(tǒng)的其他知識環(huán)節(jié)如PV原語、請求頁式調度算法中,都有這種PBL團隊教學模式的用武之地。更一般的,這種教學模式甚至不局限于操作系統(tǒng)這門課程,在未來教研工作中我們將證實這一點。
參考文獻:
[1]Howard S Barrows.How to design a problem-based curriculum for the preclinical years[M].New York: Springer Pub Co,1985.
[2]陳慶章,古輝,王子仁,等.PBL理論探討及教師角色認識[J].計算機教育,2011(9):103-107.
[3]岳溥庥.實例教學法在操作系統(tǒng)原理教學中的應用[J].考試周刊,2013,94:173-174.
基金項目:湖南省教育科學“十二五”規(guī)劃課題(項目號:XJK015BXX007