999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

深入淺出信號量機制

2009-04-29 00:00:00馬玉玲
電腦知識與技術(shù) 2009年36期

摘要:《操作系統(tǒng)》是高校計算機專業(yè)的一門非常重要的專業(yè)課程,理論性較強,尤其信號量機制一直是大家公認的學(xué)習(xí)操作系統(tǒng)的難點之一。學(xué)生不好懂,也不愿意學(xué)。該文從生活中常見的比較有意思的互斥同步的實例出發(fā),介紹了使用信號量機制解決互斥和同步關(guān)系的方法。簡單易懂,趣味性較強,寓教于樂,輕輕松松掌握抽象難懂的理論知識。

關(guān)鍵字:進程;互斥;同步;信號量;P操作;V操作

中圖法分類號:TP301.6 文獻標(biāo)識碼:A文章編號:1009-3044(2009)36-10480-02

Several Ways of Learning Semaphore Mechanism

MA Yu-ling

(School of Computer Science, Shandong Yingcai University, Jinan 250100, China)

Abstract: \"Operating system\" is very important professional courses to the students of studying computer science in university. It is very theoretical. Especially, semaphore mechanism has been recognized to be one of the difficulties in learning \"Operating system\". It is difficult to understand, and some students are unwilling to learn. In this paper, some examples of mutual exclusion synchronization are introduced. They come from the common life and interesting. These examples are simple and easy to understand. By these examples, it turning easy for students to master abstract and difficult theory in \"Operating system\".

Key words: process; mutex; synchronization; semaphore; P(S); V(S)

系統(tǒng)中各進程間存在著互斥和同步關(guān)系,如果處理不當(dāng),會導(dǎo)致系統(tǒng)性能下降甚至系統(tǒng)紊亂。如何保證進程間的這兩種關(guān)系呢?目前,操作系統(tǒng)中普遍采用荷蘭科學(xué)家Edsger Dijistra 提出的信號量機制。

信號量(singnal):初值為非負的整型變量,往往和一個隊列相關(guān)聯(lián)。在其上只有兩種操作,P操作和V操作,定義如下:

P(S): 順序執(zhí)行下述兩個動作:

① 信號量的值減1,即S=S-1;

② 如果S>=0,則當(dāng)前進程繼續(xù)執(zhí)行;如果S<0,則把當(dāng)前進程的狀態(tài)置為阻塞態(tài),把相應(yīng)的PCB連入該信號量隊列的末尾,并放棄處理機,進行等待。

V(S): 順序執(zhí)行下述兩個動作:

① S值加1,即S=S+1;

② 如果S>0,則該進程繼續(xù)運行;如果S<=0,則釋放信號量隊列上的第一個PCB,并把所對應(yīng)的進程由阻塞態(tài)改為就緒態(tài),執(zhí)行V操作的進程繼續(xù)運行。

1 教學(xué)實例

1) 用信號量機制實現(xiàn)互斥關(guān)系

解決方案:設(shè)一個互斥信號量S,其初值為1。然后在各進程進入臨界區(qū)前執(zhí)行P(S)操作,退出臨界區(qū)時做V(S)操作。

實例:顧客在商店買衣服,假設(shè)只有一個試衣間,試衣間每次只允許一個人進入試衣,如何用信號量機制實現(xiàn)其對試衣間的互斥使用。

方法:設(shè)互斥信號量S初值為1(可表示試衣間空閑,為0表示“試衣間忙”即有人在試衣間試衣服)

在每個顧客進程試圖進入試衣間前加一個P(S)操作,出試衣間后加V(S)操作,便可以保證顧客們對試衣間的互斥使用,如下所示:

Guest 進程

挑選衣服

P(S)

進入試衣間試衣

試衣完畢

出試衣間

V(S)

2) 信號量機制實現(xiàn)同步關(guān)系

同步是進程間的一種合作關(guān)系,往往需要傳遞一個信息(數(shù)據(jù))。具有同步關(guān)系的進程執(zhí)行時往往要求有一定的先后次序。

解決方案:首先確定具有同步關(guān)系的進程執(zhí)行的先后次序,設(shè)置信號量初始值S=0,在需要先執(zhí)行的進程臨界區(qū)后加V(S)操作, 在后執(zhí)行進程的臨界區(qū)前加P(S)操作。

實例:廟里有一老一少兩個和尚,每天小和尚負責(zé)去河邊打水,老和尚負責(zé)洗菜做飯,若小和尚沒有打水回來,老和尚需要等待。使用進程的觀念描述,并保證兩人間的這種同步關(guān)系。

方法:設(shè)同步信號量S,初值為0

小和尚打水 進程老和尚洗菜 進程

出發(fā)摘菜

打水回來P(S)

V(S) 洗菜

… 洗菜完畢

3) 信號量機制實現(xiàn)資源分配

如果把信號量的初始值,比如n,理解為是系統(tǒng)中某種資源的數(shù)目,那么,在它的上面做P操作,即是申請一個資源;在它的上面做V操作,即釋放一個用完的資源。與該信號量有關(guān)的隊列,是資源等待隊列。

實 例:一間理發(fā)店只能容納5個人,當(dāng)少于5人時,可以進入,否則,需在外等候。若將有理發(fā)需要的客人視為進程,請用信號量機制實現(xiàn)。

解決方案:設(shè)信號量初值S為5(5個空間資源,每個空間能容納一個人),在客人進店前加P(S)操作,意為申請一個空間資源,離開后V(S)意為釋放所占的空間資源,進程描述如下:

Customer 進程

P(S)

進入理發(fā)店

理發(fā)

完畢,出理發(fā)店

V(S)

4) 綜合實例

最好弄清楚單個的互斥關(guān)系和同步關(guān)系之后,才分析多種關(guān)系的情況,否則如果一開始就分析多種關(guān)系的話,極有可能越分析越糊涂。

下面我們以一個即含有互斥又含有同步關(guān)系的多個進程為例,來看一下解決方案。

分桔子蘋果問題:

桌上有一個空盒,盒內(nèi)只允許放一個水果,媽媽向盒內(nèi)放蘋果或桔子。兒子專等吃盒中的桔子,女兒專等吃盒中的蘋果,若盒內(nèi)已有水果,放者必須等待,若盒內(nèi)沒有自己要吃的水果,吃者必須等待。用PV操作來協(xié)調(diào)三人的關(guān)系。

解決方案:首先分析存在四個進程:媽媽放蘋果進程、媽媽放桔子進程、兒子吃桔子進程、女兒吃蘋果進程。關(guān)系如下:

互斥關(guān)系:媽媽放蘋果進程和媽媽放桔子進程

同步關(guān)系:媽媽放蘋果進程 和 女兒吃蘋果進程

媽媽放桔子進程 和 兒子吃桔子進程

我們設(shè)信號量S用于保證互斥關(guān)系,初值S=1

設(shè)信號量S1用于保證媽媽與兒子之間的同步,S2保證媽媽與女兒之間的同步,且初值S1=S2=0

具體實現(xiàn)如下:

媽:準(zhǔn)備:

P(S)

向盒內(nèi)放水果(蘋果或桔子)

if水果==桔子then V(S1) elseV(S2)

兒:P(S1)

拿盒中的桔子

V(S)

吃桔子

女:P(S2)

拿盒中的蘋果

V(S)

吃蘋果

2 結(jié)束語

學(xué)習(xí)信號量時,關(guān)鍵是資源信號量和互斥信號量,把這兩個量想清楚,分清楚。另外就是寓教于樂,興趣是最好的老師。

參考文獻:

[1] 沈祥玖.操作系統(tǒng)原理及應(yīng)用[M].北京:高等教育出版社,2001.

[2] 湯子贏.計算機操作系統(tǒng)[M].西安:西安電子科技大學(xué)出版社,2006.

[3] 陳向群.Windows操作系統(tǒng)原理[M].北京:機械工業(yè)出版社,2005.

[4] 鄧勝蘭.操作系統(tǒng)基礎(chǔ)[M].北京:機械工業(yè)出版社,2000.

[5] 宗大華,等.操作系統(tǒng)[M].北京:人民郵電出版社,2004.

主站蜘蛛池模板: 三上悠亚在线精品二区| 亚洲男人天堂2020| 男人天堂亚洲天堂| 亚洲AV无码乱码在线观看代蜜桃| 中文字幕久久精品波多野结| 欧美中文字幕一区二区三区| 97精品久久久大香线焦| 操美女免费网站| 国产第一页免费浮力影院| 久久黄色视频影| 久久无码av三级| 亚洲视屏在线观看| 日韩欧美中文| 国内精品小视频福利网址| 日本黄网在线观看| 秋霞午夜国产精品成人片| 久久精品无码一区二区日韩免费| 婷婷久久综合九色综合88| 国产黄网站在线观看| 国产久操视频| vvvv98国产成人综合青青| 精品视频一区在线观看| 欧美日韩va| 亚洲天堂在线免费| 日韩精品欧美国产在线| 亚洲中文字幕av无码区| 国产乱人乱偷精品视频a人人澡| 国产微拍一区二区三区四区| 久久永久视频| 日韩高清无码免费| 国产精品不卡永久免费| 波多野结衣一区二区三区AV| 欧美一级在线看| 国产91无码福利在线| 婷婷五月在线| 国产成人综合亚洲欧美在| 国产a v无码专区亚洲av| 伊人久久大香线蕉影院| 伊人福利视频| 亚洲人成网站在线观看播放不卡| 国产精品久久久久婷婷五月| 婷婷五月在线视频| 中文字幕精品一区二区三区视频| 国产精品一线天| 亚洲色无码专线精品观看| 亚洲一级色| 操美女免费网站| 白浆免费视频国产精品视频| 欧美亚洲国产一区| 久久国产精品波多野结衣| 国产成人三级在线观看视频| 毛片免费在线视频| 88av在线看| 中文字幕在线永久在线视频2020| 制服丝袜一区| 99re热精品视频国产免费| 日本三级精品| 福利在线不卡| 婷婷六月在线| 99尹人香蕉国产免费天天拍| 国产剧情无码视频在线观看| 国产毛片基地| 在线视频一区二区三区不卡| 久久香蕉国产线看观看亚洲片| 亚洲天堂2014| 最新亚洲人成网站在线观看| 国产激情在线视频| 综合亚洲网| a色毛片免费视频| 好吊日免费视频| 国产精品九九视频| 福利视频99| 亚洲天堂.com| 国产激情无码一区二区APP| 久久狠狠色噜噜狠狠狠狠97视色| 思思99热精品在线| 亚洲精品视频网| 55夜色66夜色国产精品视频| 色婷婷狠狠干| 无码网站免费观看| 欧美成人免费午夜全| 日本三级欧美三级|