藏刊網,職稱文章發表、期刊投稿權威機構

投稿咨詢

投稿在線咨詢

專著咨詢

合著&獨著&編委

編輯在線咨詢

專利咨詢

專利申請&轉讓

編輯在線咨詢

軟著版權

軟著版權

編輯在線咨詢

在線溝通

論文&專著&專利

編輯在線咨詢

微信聊

微信掃一掃

首頁 > 計算機論文 > > 學生在運用信號量解決問題時常見問題
學生在運用信號量解決問題時常見問題
>2024-03-23 09:00:01



0引言

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

1進程互斥與同步概念

現代操作系統的三個主要特征是并發性、資源共享和異步性。 所謂并發性是指兩個或多個活動在同一時間間隔內發生,在多道程序環境下是指在一段時間內可有多道程序同時運行。正是由于并發機制才導致了程序的執行不可預測,并發性又是系統能夠實現資源共享的必要條件。系統中的多個并發進程之間因為共享資源而形成兩種相互制約關系:間接制約關系———互斥,直接制約關系———同步。

1.1 進程互斥

是進程間的一種間接制約關系, 他們并不知道其他進程的存在。例如,在批處理系統中,系統分別為各個作業建立了進程;在分時系統中,系統分別為每個用戶建立了一個進程。 這些進程同處于一個系統中,必然存在資源共享的關系。 由于某些資源的屬性要求一次只能有一個進程訪問,我們稱這樣的資源為臨界資源。

由于系統不能允許多個進程同時訪問臨界資源,所以進程間必然產生對資源的競爭。因此,互斥直觀理解就是一種競爭關系。例如一個學生宿舍房間內的洗漱間使用問題;顯然,洗漱間在沒有人使用時(可以看成初始狀態),對于任何一個同學都是可用的,其洗漱間的信號量初值應當為 1(表達一種狀態,也可以看成資源的數目,不過作為一種狀態更恰當),見圖 1。

1.2 進程同步

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

2信號量的概念和含義

信號量是一個記錄型的數據結構,它有兩個數據項。

Struc semaphore

{

int value;

pointer_PCB queue;

}S;

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

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

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

3.1 分不清楚進程之間的關系

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

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

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

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

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

Semophere counta=countb=0,mutex=1;

存入 A:

{

A 生產產品;

P\\(mutex\\);

If\\(counta-countb-n\\)

存入 A;

V\\(mutex\\);

}

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

Semophere counta=m-1,//當 B 產品一個都不放,A 最多可以放

m-1 個產品;

countb=n-1,//當 A 產品一個都不放,B 最多可以放 N-1 個產品;

mutex=1;

存入 A: 存入 B:

{ {

A 生產產品; B 生 產

產品;

P\\(counta\\) ;

p\\(countb\\);

P\\(mutex\\); p

\\(mutex\\);

存入 A;

存入 B;

V\\(countb\\);

V\\(counta\\);

} }

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

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

4結束語

操作系統設計的目標之一就是資源的充分利用, 進程的并發是實現這一目標的重要方法,而并發又離不開進程的同步和互斥。 信號量是實現進程間的互斥與同步既方便又高效的工具。 在操作系統課程的教學中, 利用信號量實現進程同步與互斥的問題還將繼續研究下去。

【參考文獻】

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

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

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

[4]李芳,夏宇.簡析操作系統中進程間的相互制約關系[J].湖北 :黃 石理工學院2007-8.

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

綜合排序
投稿量
錄用量
發行量
教育界

主管:廣西壯族自治區新聞出版局

主辦:廣西出版雜志社

國際:ISSN 1674-9510

國內:CN 45-1376/G4

級別:省級期刊

中國報業

主管:中國報業協會

主辦:中國報業協會

國際:ISSN 1671-0029

國內:CN 11-4629/G2

級別:國家級期刊

中國房地產業

主管:中華人民共和國住房部和...

主辦:中國房地產業協會

國際:ISSN 1002-8536

國內:CN 11-5936/F

級別:國家級期刊

建筑與裝飾

主管:天津出版傳媒集團有限公司

主辦:天津科學技術出版社有限...

國際:ISSN 1009-699X

國內:CN 12-1450/TS

級別:省級期刊

財經界

主管:國家發展和改革委員會

主辦:國家信息中心

國際:ISSN 1009-2781

國內:CN 11-4098/F

級別:國家級期刊

文化月刊

主管:中華人民共和國文化部

主辦:中國文化傳媒集團有限公司

國際:ISSN 1004-6631

國內:CN 11-3120/G2

級別:國家級期刊

期刊在線投稿系統
上傳文件
支持上傳.doc、.docx、.pdf文件
18年國內外學術服務,發表國際文獻請認準藏刊網官網

資深編輯團隊

專業設計投入方案

投稿成功率極高

企業信譽保障

對公交易更安全

人民群眾口碑好

高效投稿流程

審稿快!出刊快!檢索快!

正規刊物承諾

無假刊!無套刊!

投稿成功!

藏刊網提醒您

1.稿件將進入人工審稿階段,審稿后會有編輯聯系您,請保持手機暢通。

2.為避免一稿多投、重刊等現象影響您的發表,請勿再投他刊。

確定

投稿失??!

藏刊網提醒您

由于網絡問題,提交數據出現錯誤,請返回免費投稿頁面重新投稿,謝謝!

確定

藏刊網收錄400余種期刊,15年誠信發表服務。

發表職稱文章,覆蓋教育期刊、醫學期刊、經濟期刊、管理期刊、文學期刊等主流學術期刊。

  投稿郵箱:cangkan@163.com

本站少量資源屬于網絡共享如有侵權請您聯系我們,將在第一時間刪除。

版權 2009-2022 版權所有:河北藏刊文化發展有限公司 工信部備案:ICP備20016223號 冀公網安備13010502002858號

青青青爽不卡一区二区_操婷婷色六月中文字幕_国产精品yjizz视频网_中文无码一级大片_A级毛片100部免费观