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

學(xué)生在理解信號量實現(xiàn)進程同步與互斥時常見問題

2014-10-21 14:56:52李暢
科技視界 2014年36期

【摘 要】在計算機教學(xué)過程中,利用信號量實現(xiàn)進程同步與互斥既是重點也是難點。本文重點討論在教學(xué)過程中發(fā)現(xiàn)學(xué)生用信號量時的常見問題并給出這些問題的解決方法。

【關(guān)鍵詞】進程互斥;進程同步;信號量

0 引言

操作系統(tǒng)作為計算機專業(yè)學(xué)生的必修課程,是非常重要的一門核心課程。筆者在操作系統(tǒng)教學(xué)過程中發(fā)現(xiàn)在所有的章節(jié)中,進程的互斥與同步是學(xué)生最難掌握的部分。本文詳細分析了學(xué)生在進程互斥與同步學(xué)習(xí)過程中遇到的常見問題,并提出解決方法。

1 進程互斥與同步概念

現(xiàn)代操作系統(tǒng)的三個主要特征是并發(fā)性、資源共享和異步性。所謂并發(fā)性是指兩個或多個活動在同一時間間隔內(nèi)發(fā)生,在多道程序環(huán)境下是指在一段時間內(nèi)可有多道程序同時運行。正是由于并發(fā)機制才導(dǎo)致了程序的執(zhí)行不可預(yù)測,并發(fā)性又是系統(tǒng)能夠?qū)崿F(xiàn)資源共享的必要條件。系統(tǒng)中的多個并發(fā)進程之間因為共享資源而形成兩種相互制約關(guān)系:間接制約關(guān)系——互斥,直接制約關(guān)系——同步。[5]

1.1 進程互斥

是進程間的一種間接制約關(guān)系,他們并不知道其他進程的存在。例如,在批處理系統(tǒng)中,系統(tǒng)分別為各個作業(yè)建立了進程;在分時系統(tǒng)中,系統(tǒng)分別為每個用戶建立了一個進程。這些進程同處于一個系統(tǒng)中,必然存在資源共享的關(guān)系。由于某些資源的屬性要求一次只能有一個進程訪問,我們稱這樣的資源為臨界資源。[3]由于系統(tǒng)不能允許多個進程同時訪問臨界資源,所以進程間必然產(chǎn)生對資源的競爭。因此,互斥直觀理解就是一種競爭關(guān)系。例如一個學(xué)生宿舍房間內(nèi)的洗漱間使用問題;顯然,洗漱間在沒有人使用時(可以看成初始狀態(tài)),對于任何一個同學(xué)都是可用的,其洗漱間的信號量初值應(yīng)當(dāng)為1(表達一種狀態(tài),也可以看成資源的數(shù)目,不過作為一種狀態(tài)更恰當(dāng)),見圖1。(誰的速度快的問題)。

圖1 互斥的事例

圖2 同步的事例

1.2 進程同步

多個進程知道彼此的存在,更多的表現(xiàn)出一種合作關(guān)系。此時要保證相互合作的多個進程在執(zhí)行次序上的協(xié)調(diào),不能出現(xiàn)與時間有關(guān)的錯我。系統(tǒng)中多個進程間發(fā)生的時間存在某種時序關(guān)系,需要相互合作,共同完成一項任務(wù)。進程間的這種關(guān)系稱為進程同步。例如學(xué)校運動會中接力競賽問題;見圖2.,顯然,任何一組由4人組成的參賽隊只有在發(fā)令員發(fā)令(看成初始狀態(tài))之后,第1個人才能跑,其他3人是順序接力的,不可能是4個人都可以同時跑,4個人之間是同步關(guān)系,即在初始狀態(tài)(各就位)只有第1個人可以跑,其他人是不可以的,要等待(“通知”)。

2 信號量的概念和含義

信號量是一個記錄型的數(shù)據(jù)結(jié)構(gòu),它有兩個數(shù)據(jù)項。

Struc semaphore

{

int value;

pointer_PCB queue;

}S;

信號量的物理含義:在進程互斥的情況下,信號量可以看成是一把鎖;在進程同步的情況下,信號量可以代表一種資源的使用權(quán),信號量的值大于0時表示系統(tǒng)中某類可用的資源的數(shù)目,當(dāng)其值小于0時,其絕對值表示系統(tǒng)中因請求該類資源而被阻塞的進程數(shù)目。除了初始化外,對信號量只能有兩個操作:P(S)操作和V(S)操作。這兩操作定義為:

其中P操作物理含義為申請資源的操作,每執(zhí)行一次P操作,信號量的值就會減一,表明可用的資源少了一個;V操作的物理含義為釋放資源的操作,每執(zhí)行一次V操作,信號量的值就會加一,表明可用的資源數(shù)增加了一個。

3 學(xué)生在運用信號量解決問題時常見問題

3.1 分不清楚進程之間的關(guān)系

進程之間的關(guān)系是要解決的根本問題,如果前期進程之間的關(guān)系分析不清楚,后續(xù)解題過程一定的錯誤的。

例題1:某條河上只有一座獨木橋,以便行人過橋。現(xiàn)在河的兩邊都有人要過橋,過橋規(guī)則:同一方向的可以連續(xù)過橋;一方有人過橋另一方的人要等待。該問題是非常明顯的讀者寫著問題的同類例題。橋兩邊的人是一種競爭關(guān)系,競爭的是橋這個臨界資源。同理,同一方向的人之間也是競爭關(guān)系,競爭修改“人數(shù)”這個變量。在此要讓學(xué)生明白多個競爭的進程之間是沒有固定的先后順序的,可能一面的人先過橋,也可能另一面的人先過橋。

例題2:有一倉庫可以存放A,B兩種物品,每次只能存入一物品(A或B)存儲空間無限大, 只是要求-n

3.2 對信號量的概念及意義不清楚

在信號量概念學(xué)習(xí)過程中首先要讓學(xué)生清楚信號量和整型變量的根本區(qū)別。整型變量在內(nèi)存中占有4個字節(jié),僅能存放數(shù)值;而信號量類型不僅能表示資源數(shù)量,更重要在于為申請資(下轉(zhuǎn)第323頁)(上接第192頁)源而得不到滿足的進程提供阻塞鏈接隊頭指針。其次要不斷強化信號量類型數(shù)據(jù)僅僅能夠進行P,V操作,不可以進行除了P,V之外的任何操作。例如上面例題2:有同學(xué)寫出如下代碼:

Semophere counta=countb=0,mutex=1;

存入A:

{

A生產(chǎn)產(chǎn)品;

P(mutex);

If(counta-countb-n)

存入A;

V(mutex);

}

在這段代碼中,第一個問題是沒有搞清楚信號量的基本操作只能是P,V,不能有其他的加減及判斷;第二個問題是沒有搞清楚信號量的含義,當(dāng)申請存入A而得不到滿足的時候,進程是要阻塞的。按照上述程序,如果不符合判斷條件,則產(chǎn)品拋棄,繼續(xù)下一個進程。這明顯是錯誤的。本題目正確的做法是:

Semophere counta=m-1,//當(dāng)B產(chǎn)品一個都不放,A最多可以放m-1個產(chǎn)品;

countb=n-1,//當(dāng)A產(chǎn)品一個都不放,B最多可以放N-1個產(chǎn)品;

mutex=1;

存入A: 存入B:

{ {

A生產(chǎn)產(chǎn)品; B生產(chǎn)產(chǎn)品;

P(counta) ;

p(countb);

P(mutex); p(mutex);

存入A;

存入B;

V(countb);

V(counta);

} }

3.3 信號量命名不清楚,不明確

這個問題是從教科書上生產(chǎn)者消費者問題延續(xù)而來。在生產(chǎn)者消費者問題中設(shè)置的full,empty信號量其實含義不是特別清楚明了。如果改成buffer和product則明了很多,無論從資源的角度看還是從前驅(qū)關(guān)系的角度看都特別清楚明了。學(xué)生們在計算機基礎(chǔ)中學(xué)過變量的命名規(guī)則,作者認為變量的命名規(guī)則同樣適用信號量的命名規(guī)則。

4 結(jié)束語

操作系統(tǒng)設(shè)計的目標(biāo)之一就是資源的充分利用,進程的并發(fā)是實現(xiàn)這一目標(biāo)的重要方法,而并發(fā)又離不開進程的同步和互斥。信號量是實現(xiàn)進程間的互斥與同步既方便又高效的工具。在操作系統(tǒng)課程的教學(xué)中, 利用信號量實現(xiàn)進程同步與互斥的問題還將繼續(xù)研究下去。

【參考文獻】

[1][美]William Stallings.操作系統(tǒng)-精髓與設(shè)計原理[M].5版.陳渝,等,譯.北京:電子工業(yè)出版社,2006.

[2]湯子瀛,哲風(fēng)屏,湯小丹,編.計算機操作系統(tǒng)(修訂版)[M].西安:西安電子科技大學(xué)出版社,2002.

[3]范策,許憲成,黃紅桃,李暢.計算機操作系統(tǒng)教程:核心與設(shè)計原理[M].北京:清華大學(xué)出版社.

[4]李芳,夏宇.簡析操作系統(tǒng)中進程間的相互制約關(guān)系[J].湖北:黃石理工學(xué)院 2007-8.

[5]李暢,范策.進程互斥與同步解析[J].廣州:現(xiàn)代計算機,2010,12.

[責(zé)任編輯:薛俊歌]

主站蜘蛛池模板: 国产女人在线视频| 亚洲AV无码一区二区三区牲色| 久久精品这里只有国产中文精品| 久久夜夜视频| 精品国产www| 欧美专区在线观看| 91人妻日韩人妻无码专区精品| 久久99久久无码毛片一区二区| 欧美日韩精品综合在线一区| 亚洲成人免费在线| 91九色国产porny| 人妻精品全国免费视频| 久久精品这里只有精99品| 亚洲第一视频网| 成人韩免费网站| 日本在线亚洲| 欧美一级特黄aaaaaa在线看片| 成人午夜视频免费看欧美| 亚洲人成成无码网WWW| 18黑白丝水手服自慰喷水网站| 亚洲av无码成人专区| 婷婷久久综合九色综合88| 欧美日一级片| 国产精品无码制服丝袜| 国产乱子伦视频在线播放 | 视频二区欧美| 黄色网在线免费观看| 真实国产乱子伦视频| 欧美人与性动交a欧美精品| 精品福利视频导航| 成人午夜亚洲影视在线观看| 久久综合五月| 欧美 国产 人人视频| AV不卡在线永久免费观看| 国产精品成人一区二区不卡 | 欧美亚洲国产精品第一页| 久久精品国产精品青草app| 婷婷亚洲视频| 全部无卡免费的毛片在线看| 极品国产在线| 午夜在线不卡| 午夜毛片免费观看视频 | 热re99久久精品国99热| 欧美一区二区三区欧美日韩亚洲 | 97国产精品视频自在拍| 青青草a国产免费观看| 黄色片中文字幕| 亚洲无码精彩视频在线观看 | 久久久久免费看成人影片| 欧美日韩在线亚洲国产人| 亚洲天堂视频在线观看免费| 久久香蕉国产线看观看亚洲片| 久久伊人操| 日韩精品成人网页视频在线| 久久99蜜桃精品久久久久小说| 国产日本欧美在线观看| 福利视频一区| 日本欧美一二三区色视频| 午夜a视频| 亚洲制服中文字幕一区二区 | 日韩成人在线一区二区| 91视频国产高清| 久久毛片网| 99精品伊人久久久大香线蕉| 91 九色视频丝袜| 久久久久久久久久国产精品| 国产成人乱无码视频| 在线观看无码av免费不卡网站| 国产精品亚洲精品爽爽| 亚洲综合久久一本伊一区| 免费在线不卡视频| 欧美三级视频在线播放| 91精品亚洲| www.99在线观看| 国产网友愉拍精品视频| 国产精欧美一区二区三区| 精品国产亚洲人成在线| 亚洲午夜天堂| 国产一在线观看| 欧美五月婷婷| 91午夜福利在线观看| 国产精品女熟高潮视频|