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

?

PV操作解決進程同步問題的難點研究與實現

2017-07-12 06:28魯力韓潔徐琴
電腦知識與技術 2017年13期
關鍵詞:操作系統(tǒng)信號燈

魯力 韓潔 徐琴

摘要:操作系統(tǒng)是計算機系統(tǒng)中的核心系統(tǒng)軟件,它負責控制和管理這個系統(tǒng)資源并協調用戶有效地使用這些資源,使計算機系統(tǒng)高效的工作。進程管理部分是操作系統(tǒng)課程中的重要內容。而進程同步是進程管理中十分重要的部分。怎樣很好的解決進程同步問題,一直是初學者所面臨的難題。該文通過四個簡單易懂的步驟,使初學者可以很快掌握使用信號燈的PV操作來解決進程同步的問題。進而使初學者能夠更好地理解和掌握進程同步問題。

關鍵詞:操作系統(tǒng);進程同步;信號燈;P操作;V操作

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2017)13-0038-02

1概述

操作系統(tǒng)是計算機科學與技術領域中最為活躍的學科之一,因而操作系統(tǒng)課程也自然是該專業(yè)的一門核心的專業(yè)基礎課。操作系統(tǒng)課程內容綜合了基礎理論教學、課程實踐教學、最新技術追蹤等多項內容。操作系統(tǒng)課程的重要性在于教學內容必須兼顧基礎性和前瞻性,同時體現趣味性和時尚性,以激發(fā)學生的學習興趣。

進程同步是操作系統(tǒng)中處理機管理的核心問題。是操作系統(tǒng)的核心知識,也是進程管理當中的重、難點。學生是否能夠很好的掌握進程同步是反映學生是否學習好進程這部分內容的重要指標。

在多年的實際教學經驗中,我發(fā)現在講解進程同步問題時,學生可以很容易理解,但是,一旦使用信號燈的PV操作去解決進程同步的問題候,很多學生都很茫然,很多時候不知所措。

因此,本文將通過使用四步簡單的操作,使學生迅速掌握用PV操作解決進程同步問題的方法。使得學生即使在不完全理解進程同步的原理的情況下,也能解決進程同步問題。進而,能夠加深對進程同步的理解。

2進程同步和信號燈的基本概念

所謂進程同步,就是并發(fā)進程在一些關鍵點上可能需要互相等待和互通消息,這樣的相互制約關系稱為進程同步。同步意味著兩個或多個進程之間根據它們一致同意的協議進行相互作用。

信號燈的概念是由Dijkstra提出的f1968)。他把同步的關鍵概念抽象到信號量這個概念中,信號量是一個被保護的變量,只有P、V操作和一種稱為信號量初始化操作才能訪問和改變它的值。

信號燈是一個確定的二元組(s,q),s是一個具有非負初值的整型變量,q是一個初始狀態(tài)為空的排隊棧。s代表資源的實體。在實際應用中應準確地說明s的意義和初值,每個信號燈都有一個隊列,其初始狀態(tài)為空。

信號燈的值僅能由P、V操作來改變,對信號燈的P操作記為:P(S),P操作是一個原子操作。對信號燈的V操作記為:V(S),V操作也是一個原子操作。在實際操作系統(tǒng)中,一般情況下是由機器硬件提供P、V操作的指令,當然是原子操作,若機器不提供P、V操作的指令,則操作系統(tǒng)提供P、V操作原語。

P操作:

1)s值減1;

2)若相減結果大于等于0,則進程繼續(xù)執(zhí)行;

3)若結果小于0,則該進程掛起。

注:掛起該進程包括:保留調用進程CPU現場;置“等待”狀態(tài);入等待隊列;轉進程調度;

V操作:

1)s值加1;

2)若相加結果大于0,進程繼續(xù)執(zhí)行;

3)否則,喚醒一個(或多個)等待該信號燈的進程,然后本進程繼續(xù)執(zhí)行。

3四步解決進程同步問題

為描述方便,可用一個圖來表示進程集合的執(zhí)行時間軌跡。如圖1所示,圖的連接描述了進程間開始和結束的次序約束。此圖稱為進程流圖。如用s表示系統(tǒng)中某一任務啟動,f表示完成。則圖1是四個并發(fā)程序的進程流圖。根據此圖,我們可以看到四個并發(fā)程序中p1必須先執(zhí)行,p1執(zhí)行完后p2、p3開始執(zhí)行,p2、p3都執(zhí)行完后p4才可以開始執(zhí)行。我們發(fā)現該進程集合的執(zhí)行次序是混合式的,既有順序執(zhí)行,也有并行執(zhí)行的。下面開始用四個簡單步驟,解決PV操作實現進程同步的問題。

1)搭框架

如圖2所示,首先我們按照程序的慣例寫法,將主程序和需要并發(fā)的進程寫好。需要幾個信號燈暫時不用管,我們將在第四步解決這個問題。其中,cobegin和coend之間的進程函數,代表這些進程是并發(fā)的。由于,圖l中有四個進程,所以cobegin和coend之間有四個進程函數。

2)寫PV

框架搭好了以后,我們將要根據同步進程之間的關系來書寫PV操作。在這一步中主函數不用變動,只需要改變進程的函數。在這里,我們可以簡單的把P操作看作申請操作,把v操作看作同意操作。也就是某個進程的開始如果要申請其他進程的同意,就做P操作,同理如果某個進程結束后需要同意其他進程的開始就需要做v操作。如圖3所示p1進程開始不受制約,不需要其他進程同意,所以,pl不用做P操作,但p1運行完后需要同意p2、p3兩個進程開始執(zhí)行,所以p1需要做兩次V操作。同理p2進程開始需要申請p1進程同意,因此,p2需要做一次P操作,p2運行完后需要同意p4進程開始,所以p2需要做一次V操作。p3同p2相同。p4進程需要申請p2、p3兩個進程的同意才能開始,所以p4需要做兩次P操作,p4運行完了后不需要同意任何其他進程開始,因此,p4不需要做v操作。根據以上分析,我們可以在四個進程函數中添加PV操作,如圖3所示。

3)填信號量

在PV操作寫好后,就需要在對應的PV操作函數中進行信號量s的填寫。信號量s的名字直接按照申請和同意兩個進程的名字填寫即可。例如p1進程需同意p2進程的開始申請,則p1的V操作函數和p2的P操作函數中填上參數s12。其他PV操作填寫方法一樣,如圖4所示。

4)賦初值

信號量的個數和名字起好了后,就可以在主函數中進行信號量的定義。本例為了保證在前驅進程沒有同意即做V操作的時候,后繼進程無法開始運行。所有的信號量必須賦值為0。如圖5所示。

至此,所有程序書寫完畢,用信號燈的PV操作實現進程同步的問題已經解決。

4結束語

信號燈是實現程序并發(fā)執(zhí)行,進程之間同步和互斥的非常好的一種方法和手段,初學者有必要很好的掌握其概念和解題方法。

本文根據多年的教學經驗,主要針對初學者在用信號燈解決進程同步問題中,不知所措,無從下手的問題,通過四個簡單步驟讓學生掌握解題方法,進而提高對進程同步問題的理解和掌握。學生普遍反應,此種解題方法容易掌握,解題無壓力,效果良好。

猜你喜歡
操作系統(tǒng)信號燈
交通信號燈
安裝在路面的交通信號燈
交通信號燈控制系統(tǒng)設計
宁安市| 贵阳市| 南开区| 威宁| 苍梧县| 虹口区| 云阳县| 天台县| 东兴市| 米泉市| 新民市| 晋江市| 临沭县| 黑水县| 阿坝县| 巴塘县| 巨野县| 虹口区| 江城| 和平县| 兴仁县| 广饶县| 鄯善县| 德庆县| 阿拉善右旗| 新平| 监利县| 松阳县| 清涧县| 靖安县| 广南县| 海城市| 夏邑县| 曲水县| 灯塔市| 益阳市| 罗江县| 南城县| 图们市| 九台市| 渭南市|