




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、進程和線程的關系n線程是進程的一個組成部分,一個進程可以有多個線程,而且至少有一個可執行線程。n進程的多個線程都在進程的地址空間內活動。n資源是分給進程的,而不是分給線程的,線程需要資源時,系統從進程的資源配額中扣除并分配給它。n處理機調度的基本單位是線程,線程之間競爭處理機,真正在處理機上運行的是線程。n線程在執行過程中,需要同步。例題1n有一單向行駛的公路橋,每次只允許一輛汽車通過,當汽車到達橋頭時,若橋上無車,便可上橋;否則需等待,直到橋上的汽車下橋為止,若每一輛汽車為一個進程,請用P、V操作編程實現。 解:設信號量初值S=1 汽車進程Pi(i=1,2,3,) 到達橋頭 P(s) 上橋行
2、駛 到達橋另一端 V(s)例題二n若有一售票廳只能容納300人,當少于300人時,可以進入。否則,需在外等候, 若將每一個購票者作為一個進程,請用P、V操作編程。 解:信號量初值S=300 購票者進程Pi(i=1,2,3,) P(s) 進入售票廳 購票 退出售票廳 V(s) 例題三n有三個進程PA、PB、PC合作解決文件打印問題:PA將文件記錄從磁盤讀入內存的緩沖區1,每執行一次讀一個記錄;PB將緩沖區1的記錄復制到緩沖區2,每執行一次復制一個記錄;PC打印緩沖區2中的記錄,每執行一次打印一個記錄。每個緩沖區只能存放一個記錄。請用信號量機制實現文件的正確打印。解:設置四個信號量empty1、e
3、mpty2、full1、full2,其中empty1、empty2分別表示緩沖區1和2是否為空,初值為1; full1、full2分別表示緩沖區1和2是否有記錄,初值為0。 PA進程 PB進程 PC進程讀一個記錄 P(full1) P(full2)P(empty1) 從緩1取一個記錄 從緩2取一個記錄存入緩沖區1 V(empty1) V(empty2)V(full1) P(empty2) 打印輸出記錄 存入緩沖區2 V(full2)例題四n有一只鐵籠子,每次只能放入一只動物,獵手向籠中放入老虎,農民向籠中放入豬,動物園等待取籠中的老虎,飯店等待取籠中的豬,試用P、V操作寫出能同步執行的程序。解
4、:兩個生產者和兩個消費者共享了一個僅能存放一件產品的緩沖器,生產者各自生產不同的產品,消費者各自取自己需要的產品,P、V操作編程為:獵手進程 農民進程 動物園進程 飯店進程 P(s) P(s) P(s1) P(s2) 放入虎 放入豬 買老虎 買豬 V(s1) V(s2) V(s) V(s) 其中S初值=1,S1=S2=0例題五n桌上有一只盤子,每次只能放入一個水果。爸爸專向盤中放蘋果,媽媽專向盤中放桔子,女兒專等吃盤中的蘋果,兒子專等吃盤中的桔子。用P、V操作寫出它們能正確同步的程序。解:信號量初值S1=0,S2=0,S=1 爸爸進程 媽媽進程 女兒進程 兒子進程 repeat repeat
5、repeat repeat P(s) P(s) P(s1) P(s2) 放蘋果 放桔子 取蘋果 取桔子 V(s1) V(s2) V(s) V(s) until false until false until false until false 例題六n設有兩個優先級相同的進程P1和P2如下,S1和S2初值均為0,求:P1,P2并發執行結束后,x,y,z分別是多少? 進程P1 進程P2 y:=1; x:=1; y:=y+2; x:=x+1; V(s1); P(s1); z:=y+1; x:=x+y; P(s2); V(s2) y:=z+y; z:=x+z;解:因為P1、P2是并發進程,所以P1和
6、P2調度順序不確定。假設P1先執行,當P1執行到P(s2)時,s2=-1,P1阻塞,此時y=3,z=4;當調度程序調度到P2時,由于進程P1巳執行到了V(s1),P2在執行P(s1)時,不阻塞而繼續執行,當執行到V(s2)時,將P1喚醒,然后執行到最后一個語句,此時x=5,z=9;當P1再次被喚醒、調度時,繼續執行P1的最后一處語句,此時y=12.所以最后結果是:x=5,y=12,z=9.如果P2先執行,結果同上。習題1:有三個并發進程使用同一個緩沖區,進程P1負責寫數據到緩沖區,P2負責加工緩沖區中的數據,進程P3負責將緩沖區中加工后的數據輸出.在進程P3沒有輸完之前,進程P1不能讀入新的數
7、據到緩沖區中.請用P、V操作編程.解:信號量初值:S1=0,S2=0,S=1 進程P1 進程P2 進程P3 P(S) P(S1) P(S2) 讀數據到緩沖區 加工 輸出 V(S1) V(S2) V(S) 習題2:設有六個進程P1、P2、P3、P4、P5、P6,它們并發執行。由P1開始執行, P6執行后結束。當進程P1執行后,進程P2、P3才能執行;當進程P2執行后,進程P4才能執行;當進程P3執行后,進程P5才能執行;當進程P4、P5都執行后,進程P6才能執行;請用P、V操作編程.解:這是一個同步問題,信號量初值:S2=0,S3=0,S4=0,S5=0,S6=0 進程P1 進程P2 進程P3
8、執行P1 P(S2) P(S3) V(S2) 執行P2 執行P3 V(S3) V(S4) V(S5) 進程P4 進程P5 進程P6 P(S4) P(S5) P(S6) 執行P4 執行P5 P(S6) V(S6) V(S6) 執行P6 n習題3三個進程P1、P2、P3互斥使用一個包含N(N0)個單元的緩沖區。P1每次用produce()生產廠一個正整數并用put()送入緩沖區某一空單元中;P2每次用getodd()從該緩沖區中取出一個奇數并用countodd()統計奇數個數;P3每次用geteven()從該緩沖區中取出一個偶數并用counteven()統計偶數個數。請用信號量機制實現這3個進程的同步于互斥活動,并說明所定義的信號量的含義。要求用偽代碼描述。解:設資源信號量empty為空緩沖區個數,互斥信號量mutex對緩沖區的使用,s1表示是否有奇數,s2表示是否有偶數。初值為:empty=N, mutex=1, s1=0, s2=0P1 beginx=produce()p(empty)p(mutex)put()if(x%2=0)v(s2)els
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年環境檢測與評估技能考試題及答案
- 導游業務試題及答案電大
- 時鐘測試題目大全圖片及答案
- float面試題及答案
- 三體名著試題及答案
- 焊接加工考試題及答案
- 2025年歷史文化與博物館管理考試試題及答案
- 借款咨詢服務協議書
- 機電工程決策支持試題及答案
- 軟件設計師考試學習策略分享試題及答案
- 干部履歷表填寫范本(中共中央組織部1999年)
- 勞動教育視角下高職院校學生工匠精神培育研究
- 最簡單封陽臺安全免責協議書
- SH/T 3533-2024 石油化工給水排水管道工程施工及驗收規范(正式版)
- 用友人力資源管理HR解決方案樣本
- 北京市西城區三帆中學2023-2024學年七年級下學期期中數學試題(無答案)
- 藥物殘留溶劑分析報告書
- 腫瘤醫院推廣方案
- 動物出血性肺炎預防與治療
- 公路工程安全風險辨識與防控手冊
- 研究生開題報告評審表
評論
0/150
提交評論