


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng):進(jìn)程/線程同步的方式和機(jī)制,進(jìn)程間通信一、進(jìn)程/線程間同步機(jī)制。臨界區(qū)、互斥區(qū)、事件、信號(hào)量四種方式臨界區(qū)(CriticalSection)、互斥量(Mutex)、信號(hào)量(Semaphore)、事件(Event)的區(qū)別1、臨界區(qū):通過對(duì)多線程的串行化來訪問公共資源或一段代碼,速度快,適合控制數(shù)據(jù)訪問。在任意時(shí)刻只允許一個(gè)線程對(duì)共享資源進(jìn)行訪問,如果有多個(gè)線程試圖訪問公共資源,那么在有一個(gè)線程進(jìn)入后,其他試圖訪問公共資源的線程將被掛起,并一直等到進(jìn)入臨界區(qū)的線程離開,臨界區(qū)在被釋放后,其他線程才可以搶占。2、互斥量:采用互斥對(duì)象機(jī)制。只有擁有互斥對(duì)象的線程才有訪問公共資源的權(quán)限,因?yàn)榛?/p>
2、斥對(duì)象只有一個(gè),所以能保證公共資源不會(huì)同時(shí)被多個(gè)線程訪問。互斥不僅能實(shí)現(xiàn)同一應(yīng)用程序的公共資源安全共享,還能實(shí)現(xiàn)不同應(yīng)用程序的公共資源安全共享.互斥量比臨界區(qū)復(fù)雜。因?yàn)槭褂没コ獠粌H僅能夠在同一應(yīng)用程序不同線程中實(shí)現(xiàn)資源的安全共享,而且可以在不同應(yīng)用程序的線程之間實(shí)現(xiàn)對(duì)資源的安全共享。3、信號(hào)量:它允許多個(gè)線程在同一時(shí)刻訪問同一資源,但是需要限制在同一時(shí)刻訪問此資源的最大線程數(shù)目.信號(hào)量對(duì)象對(duì)線程的同步方式與前面幾種方法不同,信號(hào)允許多個(gè)線程同時(shí)使用共享資源,這與操作系統(tǒng)中的PV操作相同。它指出了同時(shí)訪問共享資源的線程最大數(shù)目。它允許多個(gè)線程在同一時(shí)刻訪問同一資源,但是需要限制在同一時(shí)刻訪問此資
3、源的最大線程數(shù)目。PV操作及信號(hào)量的概念都是由荷蘭科學(xué)家E.W.Dijkstra提出的。信號(hào)量S是一個(gè)整數(shù),S大于等于零時(shí)代表可供并發(fā)進(jìn)程使用的資源實(shí)體數(shù),但S小于零時(shí)則表示正在等待使用共享資源的進(jìn)程數(shù)。P操作申請(qǐng)資源:(1)S減1;(2)若S減1后仍大于等于零,則進(jìn)程繼續(xù)執(zhí)行;(3)若S減1后小于零,則該進(jìn)程被阻塞后進(jìn)入與該信號(hào)相對(duì)應(yīng)的隊(duì)列中,然后轉(zhuǎn)入進(jìn)程調(diào)度。V操作釋放資源:(1)S力口1;(2)若相加結(jié)果大于零,則進(jìn)程繼續(xù)執(zhí)行;(3)若相加結(jié)果小于等于零,則從該信號(hào)的等待隊(duì)列中喚醒一個(gè)等待進(jìn)程,然后再返回原進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)入進(jìn)程調(diào)度。4、事件:通過通知操作的方式來保持線程的同步,還可以方
4、便實(shí)現(xiàn)對(duì)多個(gè)線程的優(yōu)先級(jí)比較的操作.總結(jié):1 .互斥量與臨界區(qū)的作用非常相似,但互斥量是可以命名的,也就是說它可以跨越進(jìn)程使用。所以創(chuàng)建互斥量需要的資源更多,所以如果只為了在進(jìn)程內(nèi)部是用的話使用臨界區(qū)會(huì)帶來速度上的優(yōu)勢并能夠減少資源占用量。因?yàn)榛コ饬渴强邕M(jìn)程的互斥量一旦被創(chuàng)建,就可以通過名字打開它。2 .互斥量(Mutex),信號(hào)燈(Semaphore),事件(Event)都可以被跨越進(jìn)程使用來進(jìn)行同步數(shù)據(jù)操作,而其他的對(duì)象與數(shù)據(jù)同步操作無關(guān),但對(duì)于進(jìn)程和線程來講,如果進(jìn)程和線程在運(yùn)行狀態(tài)則為無信號(hào)狀態(tài),在退出后為有信號(hào)狀態(tài)。所以可以使用WaitForSingleObject來等待進(jìn)程和線程退
5、出。3 .通過互斥量可以指定資源被獨(dú)占的方式使用,但如果有下面一種情況通過互斥量就無法處理,比如現(xiàn)在一位用戶購買了一份三個(gè)并發(fā)訪問許可的數(shù)據(jù)庫系統(tǒng),可以根據(jù)用戶購買的訪問許可數(shù)量來決定有多少個(gè)線程/進(jìn)程能同時(shí)進(jìn)行數(shù)據(jù)庫操作,這時(shí)候如果利用互斥量就沒有辦法完成這個(gè)要求,信號(hào)燈對(duì)象可以說是一種資源計(jì)數(shù)器。二、進(jìn)程間通信方式由于比較容易混淆,我們把進(jìn)程間通信方法也列在這里做比較。程間通信就是在不同進(jìn)程之間傳播或交換信息,那么不同進(jìn)程之間存在著什么雙方都可以訪問的介質(zhì)呢?進(jìn)程的用戶空間是互相獨(dú)立的,一般而言是不能互相訪問的,唯一的例外是共享內(nèi)存區(qū)。但是,系統(tǒng)空間卻是公共場所”,所以內(nèi)核顯然可以提供這樣
6、的條件。除此以外,那就是雙方都可以訪問的外設(shè)了。在這個(gè)意義上,兩個(gè)進(jìn)程當(dāng)然也可以通過磁盤上的普通文廣義上這也是件交換信息,或者通過注冊(cè)表”或其它數(shù)據(jù)庫中的某些表項(xiàng)和記錄交換信息。進(jìn)程間通信的手段,但是一般都不把這算作進(jìn)程間通信”。因?yàn)槟切┩ㄐ攀侄蔚男侍土?,而人們?duì)進(jìn)程間通信的要求是要有一定的實(shí)時(shí)性。進(jìn)程間通信主要包括管道,系統(tǒng)IPC(包括消息隊(duì)列,信號(hào)量,共享存儲(chǔ)),SOCKET.管道分為有名管道和無名管道,無名管道只能用于親屬進(jìn)程之間的通信,而有名管道則可用于無親屬關(guān)系的進(jìn)程之間。消息隊(duì)列用于運(yùn)行于同一臺(tái)機(jī)器上的進(jìn)程間通信,與管道相似;共享內(nèi)存通常由一個(gè)進(jìn)程創(chuàng)建,其余進(jìn)程對(duì)這塊內(nèi)存區(qū)進(jìn)行
7、讀寫。得到共享內(nèi)存有兩種方式:映射/dev/mem設(shè)備和內(nèi)存映像文件。前一種方式不給系統(tǒng)帶來額外的開銷,但在現(xiàn)實(shí)中并不常用,因?yàn)樗刂拼嫒〉氖菍?shí)際的物理內(nèi)存;本質(zhì)上,信號(hào)量是一個(gè)計(jì)數(shù)器,它用來記錄對(duì)某個(gè)資源(如共享內(nèi)存)的存取狀況。一般說來,為了獲得共享資源,進(jìn)程需要執(zhí)行下列操作:(1)測試控制該資源的信號(hào)量;(2)若此信號(hào)量的值為正,則允許進(jìn)行使用該資源,進(jìn)程將進(jìn)號(hào)量減1;(3)若此信號(hào)量為0,則該資源目前不可用,進(jìn)程進(jìn)入睡眠狀態(tài),直至信號(hào)量值大于0,進(jìn)程被喚醒,轉(zhuǎn)入步驟(1);(4)當(dāng)進(jìn)程不再使用一個(gè)信號(hào)量控制的資源時(shí),信號(hào)量值加1,如果此時(shí)有進(jìn)程正在睡眠等待此信號(hào)量,則喚醒此進(jìn)程。套接字通信并不為Linux所專有,在所有提供了TCP/IP協(xié)議棧的操作系統(tǒng)中幾乎都提供了socket,而所有這樣操作系統(tǒng),對(duì)套接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年湖北某國企公開招聘工作人員4人筆試參考題庫附帶答案詳解
- 第11課《答謝中書書》教學(xué)設(shè)計(jì)-2024-2025學(xué)年統(tǒng)編版語文八年級(jí)上冊(cè)
- 5,3細(xì)胞呼吸的原理和應(yīng)用-第一課時(shí)教學(xué)設(shè)計(jì)-2024-2025學(xué)年高一上學(xué)期生物人教版(2019)必修1
- 第八單元《詞義的辨析和詞語的使用》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊(cè)
- 2024年安徽文都控股集團(tuán)有限公司公開招聘15人筆試參考題庫附帶答案詳解
- 2 回延安2024-2025學(xué)年八年級(jí)下冊(cè)語文同步教學(xué)設(shè)計(jì)(統(tǒng)編版)
- Unit 7 Happy birthday Section A Grammar 教學(xué)設(shè)計(jì)2024-2025學(xué)年人教版(2024)七年級(jí)英語上冊(cè)
- 第五單元 貨幣與賦稅制度 單元教學(xué)設(shè)計(jì)-2023-2024學(xué)年高中歷史統(tǒng)編版(2019)選擇性必修1
- 2024年12月江蘇省醫(yī)療器械檢驗(yàn)所工作人員6人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2024年12月交通運(yùn)輸部所屬事業(yè)單位2025年第二批統(tǒng)一(261人)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 教師師德和專業(yè)發(fā)展課件
- 服務(wù)器巡檢報(bào)告模版
- 2023年中國煤化工行業(yè)全景圖譜
- 2023年高中生物新教材人教版(2023年)必修二全冊(cè)教案
- 小學(xué)美術(shù) 四年級(jí) 人教版《造型?表現(xiàn)-色彩表現(xiàn)與創(chuàng)作》“色彩”單元美術(shù)作業(yè)設(shè)計(jì)《色彩的明與暗》《色彩的漸變》《色彩的情感》
- 中國心臟重癥鎮(zhèn)靜鎮(zhèn)痛專家共識(shí)專家講座
- 川教版七年級(jí)生命生態(tài)安全下冊(cè)第1課《森林草原火災(zāi)的危害》教案
- 護(hù)理人員心理健康
- 安全技術(shù)說明書粗苯
- 單招面試技巧范文
- 情報(bào)信息收集報(bào)知
評(píng)論
0/150
提交評(píng)論