国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

操作系統(tǒng)進(jìn)程互斥與同步教學(xué)難點(diǎn)突破

2016-04-14 14:13崔松健
電腦知識與技術(shù) 2016年5期
關(guān)鍵詞:信號量原語預(yù)賽

崔松健

摘要:該文通過一個小型運(yùn)動會實例,通過類比方法讓學(xué)生理解并掌握操作系統(tǒng)中與進(jìn)程相關(guān)的概念,以及如何使用信號量實現(xiàn)進(jìn)步的同步與互斥。

關(guān)鍵詞:操作系統(tǒng);計算機(jī)教學(xué)

中圖分類號:TP3 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)05-0118-02

1 序言

操作系統(tǒng)是計算機(jī)專業(yè)的核心課程,操作系統(tǒng)的教學(xué)主要是讓學(xué)生理解并掌握操作系統(tǒng)的功能及實現(xiàn)原理,理論性很強(qiáng),知識點(diǎn)多,教學(xué)難度大,學(xué)生不易掌握,特別是對于高職院校的學(xué)生。為了讓學(xué)生能很好地學(xué)習(xí)操作系統(tǒng)的理論知識,老師們進(jìn)行的了很多的探討與教學(xué)嘗試,下面就將我多年來在操作系統(tǒng)教中,對進(jìn)程同步與互斥這個教學(xué)難點(diǎn)的教學(xué)方法作一個簡單的論述。

2 相關(guān)概念的突破

教學(xué)時以小型體育運(yùn)動會實例來解釋相關(guān)的概念。

實例描述:一個在半天內(nèi)完成的小型體育運(yùn)動會。比賽項目有:100米,200米,4*100米接力。而這三個項目又分為預(yù)賽和決賽兩個階段進(jìn)行,預(yù)賽先于決賽進(jìn)行。因此總的比賽項目有:100米預(yù)賽,200米預(yù)賽,4*100米接力預(yù)賽,100米決賽,200米決賽,4*100米接力決賽六個子項目。因為運(yùn)動場地只有一塊,所以某一時刻只能有一項體育比賽可以進(jìn)行。某項比賽一旦開始,就必須全部比賽完成,但不同的比賽可以穿插進(jìn)行。

下面通過類比的方法解釋與進(jìn)程相關(guān)的概念。

1)進(jìn)程:具有一定獨(dú)立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運(yùn)行活動。

因為每一個項目都是可以獨(dú)立進(jìn)行的,所以可以將每一個項目看成是一個具有獨(dú)立功能的程序,而將每一項比賽看成是每一個項目在裁判、計時員等支持下的一次獨(dú)立運(yùn)行活動。因此六個項目的比賽過程可以看成六個進(jìn)程的運(yùn)行。

2)并發(fā):同一個時間段內(nèi)幾個進(jìn)程都處于已經(jīng)開始運(yùn)行和運(yùn)行完畢之間,且這幾個進(jìn)程都是在同一個處理機(jī)上運(yùn)行,但在任一時刻,只能有一個進(jìn)程在處理機(jī)上運(yùn)行。我們就說這幾個進(jìn)程處于并發(fā)狀態(tài)。

運(yùn)動會的三個項目是交替進(jìn)行的,我們認(rèn)為這三個項目都處于進(jìn)行當(dāng)中,因為他們都沒有結(jié)束。這種狀態(tài)就稱之為并發(fā)狀態(tài)。因為運(yùn)動場地只有一個,所以同一時刻只能有一個項目在進(jìn)行當(dāng)中,我們就說比賽并行為1,若有兩個場地可以同時比賽,我們就說并行為2。

3)臨界資源:操作系統(tǒng)把一次僅允許一個進(jìn)程使用的資源稱為臨界資源。

由于競賽場地某一時刻只能進(jìn)行一場比賽,所以場地是臨界資源。

4)臨界區(qū):一個進(jìn)程中訪問臨界資源的那段程序。

由于每場比賽都要使用場地,因此每場比賽都是臨界區(qū)。

5)互斥:是指多個進(jìn)程不能同時使用同一個資源。

由于比賽場地只能輪流使用而不能同時使用,所以使用場地的過程就稱為互斥過程。

6)同步:指多個進(jìn)程之間存在著某種時序關(guān)系,必須協(xié)同動作、相互配合。

4*100接力比賽是4個人協(xié)同完成的,每人跑一棒,而且是第一棒跑完才能跑第二棒,第二棒跑完才能跑第三棒,第三棒跑完才能跑第四棒。這種有嚴(yán)格時序關(guān)系的協(xié)同過程就稱為同步,四個人之間的先后關(guān)系就是同步關(guān)系。

運(yùn)動場地是一個封閉的空間,入口有一道門,要想進(jìn)入運(yùn)動場,必須獲得打開門的鑰匙,而鑰匙只有一把,所以一開始時的Value的初值為1,獲得鑰匙的運(yùn)動項目可以進(jìn)入運(yùn)動場比賽,而沒有獲得鑰匙的運(yùn)動項目則在門外排隊等待。

8)原語:通常由若干條指令組成,用來實現(xiàn)某個特定的操作。通過一段不可分割的或不可中斷的程序?qū)崿F(xiàn)其功能。

信號量只能通過P原語和V原語訪問。

P操作用于申請資源,value值減1,如果資源數(shù)量不夠,則進(jìn)程需要阻塞等待。

V操作用于釋放資源, value值加1,如果此時value<0,表示有其他進(jìn)程等待該資源,則喚醒。

當(dāng)value<0時,| value|表示等待隊列的進(jìn)程數(shù)。

拿到鑰匙,打開門,進(jìn)入場地這三個動作必須一次性完成,中間不可以被中止,這就是原語操作。

3 進(jìn)程互斥的實現(xiàn)

由于運(yùn)動場地是臨界資源,所以哪一個項目可以使用運(yùn)動場地進(jìn)行比賽是需要競爭的,那么如何保證進(jìn)入運(yùn)動場比賽的項目只能是一個呢?我們使用信號量來控制互斥地使用運(yùn)動場地。

信號量就是一把鑰匙,而且鑰匙只有一把,因此設(shè)信號量S的初值為1。

由于100米預(yù)賽,200米預(yù)賽和4*100接力預(yù)賽是可以并發(fā)進(jìn)行的,因此,我們設(shè)計三個并發(fā)程序控制使用運(yùn)動場地進(jìn)行比賽(臨界區(qū))。而哪個項目能夠進(jìn)行(進(jìn)入臨界區(qū)),就看哪個項目獲得了運(yùn)動場地(臨界資源)的使用權(quán),而對使用權(quán)的控制就是看誰能夠進(jìn)入運(yùn)動場地,最終則是誰能獲得入門的鑰匙(信號量),因此只要控制住鑰匙,就能實現(xiàn)互斥進(jìn)入。

結(jié)論:使用信號量實現(xiàn)互斥的方法是在臨界區(qū)前放置一個P原語操作,臨界區(qū)后面放置一個V原語操作。含義為:P原語申請鑰匙,如果成功則獲得資源(運(yùn)動場地),進(jìn)行比賽,比賽結(jié)束后,V原語操作,交出鑰匙(信號量),喚醒等待比賽的項目。

4 進(jìn)程同步的實現(xiàn)

進(jìn)程之間的關(guān)系除了競爭關(guān)系以外,可能還存在時間上的制約關(guān)系,這種關(guān)系就是同步關(guān)系。比如運(yùn)動會中,運(yùn)動項目之間就存在時序上的先后關(guān)系,100米預(yù)賽必須先于100米決賽之前進(jìn)行,而200米決賽則不能早于200米預(yù)賽之前進(jìn)行。4*100米接力賽中的四個人之間也存在著先后關(guān)系。那么如何通過信號量來實現(xiàn)這個同步關(guān)系呢?

我們以100米預(yù)賽和100米決賽之間的時序關(guān)系為例說明如何實現(xiàn)同步。

100米預(yù)賽和100米決賽為兩個并發(fā)程序,100米預(yù)賽早于100米決賽進(jìn)行。則可以將它們之間的時序關(guān)系通過有向圖來表示,圖1說明了100米預(yù)賽先于100米決賽進(jìn)行。

}

說明:由于信號量初值為0,因此只有當(dāng)【100米預(yù)賽】并發(fā)程序執(zhí)行結(jié)束以后,s的值才能為1,也只有當(dāng)s的值為1后,【100米決賽】并發(fā)程序才能夠執(zhí)行,從而實現(xiàn)了兩個并發(fā)程序之間的時序關(guān)系。

綜上所述,我們總結(jié)出進(jìn)程同步中并發(fā)程序的書寫規(guī)則:

1)將問題中的所有有時序關(guān)系的并發(fā)程序找出,用有向圖畫出他們之間的時序關(guān)系;

2)有向圖中有幾個結(jié)點(diǎn),則寫幾個并發(fā)程序;

3)有向圖中有幾個有向箭頭,則設(shè)置幾個信號量,同時將所有信號量的初值設(shè)為0;

4)對于有向圖中的每個結(jié)點(diǎn),如果有一個出向箭頭,則在并發(fā)程序的后面加一個V操作;

5)對于有向圖中的每個結(jié)點(diǎn),如果有一個入向箭頭,則在并發(fā)程序的前面加一個P操作。

舉例說明:如圖2所示的有向圖,請寫出所有進(jìn)程的并發(fā)程序。

}

5 結(jié)論

通過以上的方法,學(xué)生很容易掌握和理解操作系統(tǒng)進(jìn)程的概念,進(jìn)程之間有關(guān)系,以及如何使用信號量來實現(xiàn)進(jìn)程之間的互斥與同步。

猜你喜歡
信號量原語預(yù)賽
測試原語:存儲器故障最小檢測序列的統(tǒng)一特征
基于STM32的mbedOS信號量調(diào)度機(jī)制剖析
一道四川省預(yù)賽題的探究
2018瑞士數(shù)學(xué)奧林匹克(預(yù)賽)
Nucleus PLUS操作系統(tǒng)信號量機(jī)制的研究與測試
第九屆陳省身杯全國高中數(shù)學(xué)奧林匹克預(yù)賽
密碼消息原語通信協(xié)議介紹及安全分析
基于原語自動生成的安全協(xié)議組合設(shè)計策略及應(yīng)用研究
μC/OS- -III對信號量的改進(jìn)
Linux操作系統(tǒng)信號量機(jī)制的實時化改造
陈巴尔虎旗| 四子王旗| 乡宁县| 康马县| 蒙自县| 洞口县| 余干县| 彩票| 来安县| 象州县| 高清| 闽侯县| 碌曲县| 铜山县| 株洲县| 平武县| 河东区| 淳安县| 桑植县| 宁德市| 象山县| 兴文县| 仁怀市| 洞口县| 临安市| 五常市| 施甸县| 安陆市| 扎赉特旗| 永胜县| 涞水县| 宜君县| 林州市| 宁河县| 湖口县| 汉中市| 偏关县| 高邮市| 湖南省| 灵山县| 渝北区|