?

啟發式教學在進程同步中的應用

2019-04-25 08:51王春梅濱州學院信息工程學院
數碼世界 2019年3期
關鍵詞:接力賽進程跑步

王春梅 濱州學院信息工程學院

引言

進程同步問題既是操作系統課程的重點也是其難點,進程同步是由進程之間的前趨關系造成的直接制約關系。在進程同步問題中,既包含進程的并發性、進程間前趨關系,還包含如何利用記錄型信號量解決進程間的制約關系,多個概念交織在一起,往往令學生望而生畏,理解和掌握的程度較低,打擊了學生的學習積極性。

啟發式教學,是20世紀60年代中期創建的教學方法,根據課程教學目標、知識內容邏輯和學生知識水平,采用多種方式,以啟發學生的思維為核心,通過調動學生的學習主動性和積極性,從而促進學生知識理解、能力培養和身心發展的一種教學方法。

1 進程同步的基本概念及解決機制

(1)進程同步

某些應用程序,為了完成某任務而建立了兩個或多個進程。這些進程將為完成同一項任務而相互合作。進程間的直接制約關系就是源于它們之間的相互合作。有向無循環圖(DAG,Directed Acyclic Graph)可以更好的描述進程之間的執行次序。圖中的結點用來表示一個進程,結點間的有向邊表示兩個進程之間的前趨關系。一般表示為PiPj,表示Pj開始執行之前Pi必須完成。

(2)記錄型信號量機制

進程同步機制的主要任務是對多個相關進程在執行次序上進行協調,使并發執行的諸進程之間能按照一定的規則共享系統資源,并能很好地相互合作,從而使程序的執行具有可再現性。

記錄型信號量的定義及相應的wait(S)和signal(S)操作如下:

在該信號量中,S.value的初值表示系統中某類資源數量,list鏈表用來指向由于申請資源不成功而阻塞的進程。由以上wait(S)代碼可知,wait操作是指進程申請一個資源,并且當申請資源不成功時,調用block原語主動阻塞,并插入到S.list中,并且list中阻塞的進程數為|S.value|。signal操作代表進程釋放一個資源,若釋放一個資源后S.value=<0,則表示在list中仍有等待資源的進程,所以應該調用wakeup原語,喚醒S.list中的第一個進程,所以記錄型號量機制遵循空閑讓進、忙則等待、有限等待和讓權等待四條準則,是比較完善的同步機制。

2 進程同步的啟發式教學過程

2.1 現實中的教學實例

進程同步的例子廣泛存在于現實生活中,例如將蓋一棟教學樓分為①設計圖紙,②打地基,③蓋樓,④裝修四個環節,那么它們之間就存在①②③④的前趨關系,還有就是大家比較熟悉的4*100米接力賽如果派出A、B、C、D四名同學分別跑第一棒、第二棒、第三棒和第四棒,那么這四名同學之間就存在ABCD的前趨關系。

2.2 啟發式教學思路

關于進程同步問題,課程教學目標是掌握利用記錄型信號量機制解決進程的同步問題。選取大家都非常熟悉的4*100米接力賽為例,提出思考問題;然后引導學生對該問題進行思考以及尋找解決問題的方案。之后啟發學生將現實中的問題解決方案應用與進程同步問題;最后進行反饋和總結。

2.3 啟發式教學過程

首先提出問題一:在4*100米接力賽中,班內派出四名同學A、B、C、D分別跑第一棒、第二棒、第三棒及第四棒,那么四名同學在跑步的過程中能不能停下來?

大多數同學都會想到,同學在跑步過程中不會主動停下來,但是如果摔倒的話,那么他們是必須要停下來的。

問題二:如果是A同學在跑步過程中摔倒停了下來,如果保證B不搶跑?

大多數同學都會想到,B同學沒有拿到接力棒就跑,那么就會被判為成績無效。以此類推,對于C、D同學也是需要拿到接力棒才可以起跑。

問題三:在4*100米接力賽中,接力棒起到了什么作用?

通過思考,大多數同學會想到,接力棒是為了保證四名同學按照4*100米接力賽規則完成比賽,防止出現搶跑等現象,也就是只有A跑完第一棒,B才可以起跑,以此類推。

以上利用一個用于表示資源數目的整型變量S以及wait(S)和signal(S)操作稱為整型信號量機制,很明顯,整型信號量機制比鎖機制更有效。

問題四:4*100米接力賽和進程同步問題的對應關系是什么?

引導思考:四名同學要執行跑步這個任務,所以對應于操作系統中的進程;四名同學在跑步過程中摔倒停下來,對應于進程的并發性。只有A同學跑完第一棒,將接力棒傳遞給B,B才可以起跑,所以A、B同學之間關系對應于進程之間的前趨關系AB。以此類推,四名同學之間存在ABCD的前趨關系。

問題五:怎樣利用記錄型信號量來實現接力棒的作用,也就是既要保證進程的并發性(同學在跑步過程中摔倒停下來)還要保證進程之間的前趨關系(既是A停下來,B也不能跑,除非A跑完第一棒)。

引導思考:接力棒可以看做是同學起跑的信號或者條件,對于B同學來說,只有A跑完第一棒,B同學起跑的條件才成立。所以在A、B同學之間可以設置一個信號量SAB表示A跑完第一棒,B起跑的條件,所以SAB初值為0,只有A跑完第一棒,才能將該條件釋放,對應的B在起跑前要申請該條件,如果成立才能起跑。

3 結束語

通過啟發式教學,同學們對進程同步問題的掌握明顯提高,學習操作系統的信心也進一步增強,有效的提高了課程教學質量,也培養了學生發現問題、思考問題以及解決問題的思維和能力。

猜你喜歡
接力賽進程跑步
一場別開生面的接力賽
讓我成長的一場接力賽
做到七點跑步不傷膝
熱天跑步防中暑
債券市場對外開放的進程與展望
改革開放進程中的國際收支統計
跑步的時候我們在想些什么
3D機械昆蟲游戲接力賽
社會進程中的新聞學探尋
八戒跑步等4則
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合