




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
濱江學(xué)院os期末第二章習(xí)目錄CONTENCT進(jìn)程與線程基本概念進(jìn)程狀態(tài)與控制進(jìn)程同步與通信方法死鎖問(wèn)題分析及解決方法線程實(shí)現(xiàn)方式及優(yōu)缺點(diǎn)比較多線程編程技巧與注意事項(xiàng)01進(jìn)程與線程基本概念進(jìn)程的特性包括動(dòng)態(tài)性(進(jìn)程是程序的執(zhí)行過(guò)程,有生命周期)、并發(fā)性(多個(gè)進(jìn)程實(shí)體同存于內(nèi)存中,能在一段時(shí)間內(nèi)同時(shí)運(yùn)行)、獨(dú)立性(進(jìn)程是系統(tǒng)中獨(dú)立存在的實(shí)體)、異步性(進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn))以及結(jié)構(gòu)特征(進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成)。進(jìn)程是操作系統(tǒng)中進(jìn)行資源分配和調(diào)度的基本單位,它是程序的執(zhí)行過(guò)程,具有動(dòng)態(tài)性、并發(fā)性、獨(dú)立性、異步性和結(jié)構(gòu)特征。進(jìn)程的狀態(tài)信息存儲(chǔ)在進(jìn)程控制塊PCB中,這包括進(jìn)程標(biāo)識(shí)符、處理機(jī)狀態(tài)、進(jìn)程調(diào)度信息和進(jìn)程控制信息。進(jìn)程定義及特性線程是操作系統(tǒng)能夠進(jìn)行調(diào)度的最小單位,它被包含在進(jìn)程內(nèi),是進(jìn)程中的實(shí)際運(yùn)作單位。一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù)。線程的特性包括輕型實(shí)體(線程中的實(shí)體基本上不擁有系統(tǒng)資源)、獨(dú)立調(diào)度和分派的基本單位(線程是獨(dú)立調(diào)度的基本單位,線程切換比進(jìn)程切換快)、可并發(fā)執(zhí)行(同一進(jìn)程的多個(gè)線程之間可以并發(fā)執(zhí)行)、共享進(jìn)程資源(同一進(jìn)程內(nèi)的各個(gè)線程共享該進(jìn)程的地址空間)。010203線程定義及特性一個(gè)線程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線程,但至少有一個(gè)線程。資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。處理機(jī)分給線程,即真正在處理機(jī)上運(yùn)行的是線程。線程在執(zhí)行過(guò)程中,需要協(xié)作同步。不同進(jìn)程的線程間要利用消息通信的辦法實(shí)現(xiàn)同步。進(jìn)程與線程關(guān)系02進(jìn)程狀態(tài)與控制0102030405就緒狀態(tài)進(jìn)程已獲得除CPU外的所有必要資源,只等待CPU時(shí)的狀態(tài)。執(zhí)行狀態(tài)進(jìn)程獲得CPU,正在執(zhí)行程序的狀態(tài)。阻塞狀態(tài)正在執(zhí)行的進(jìn)程由于某種原因而暫時(shí)無(wú)法繼續(xù)執(zhí)行,便放棄處理機(jī)而處于暫停狀態(tài),即進(jìn)程執(zhí)行受阻。創(chuàng)建狀態(tài)進(jìn)程正在被創(chuàng)建時(shí)的狀態(tài)。結(jié)束狀態(tài)進(jìn)程正在從系統(tǒng)中消失時(shí)的狀態(tài)。進(jìn)程狀態(tài)轉(zhuǎn)換圖進(jìn)程創(chuàng)建方法進(jìn)程終止方法進(jìn)程創(chuàng)建與終止方法系統(tǒng)通過(guò)創(chuàng)建原語(yǔ)創(chuàng)建一個(gè)新進(jìn)程。創(chuàng)建原語(yǔ)首先申請(qǐng)一個(gè)空閑的PCB,并填寫(xiě)一些控制和管理進(jìn)程的信息,然后由系統(tǒng)分配該進(jìn)程所需的資源,最后將其轉(zhuǎn)入就緒狀態(tài)并插入就緒隊(duì)列中。進(jìn)程完成任務(wù)后,通過(guò)調(diào)用結(jié)束原語(yǔ)來(lái)終止自身。結(jié)束原語(yǔ)將回收該進(jìn)程所占用的所有資源,并撤銷其PCB。進(jìn)程阻塞機(jī)制當(dāng)進(jìn)程需要等待某種條件滿足時(shí),它會(huì)將自己阻塞,并放棄CPU。阻塞原語(yǔ)將進(jìn)程的PCB狀態(tài)改為阻塞狀態(tài),并將其插入到相應(yīng)事件的等待隊(duì)列中。進(jìn)程喚醒機(jī)制當(dāng)?shù)却氖录l(fā)生時(shí),相應(yīng)的進(jìn)程會(huì)被喚醒。喚醒原語(yǔ)將進(jìn)程的PCB狀態(tài)改為就緒狀態(tài),并將其插入到就緒隊(duì)列中,等待CPU的調(diào)度。進(jìn)程阻塞與喚醒機(jī)制03進(jìn)程同步與通信方法信號(hào)量是一個(gè)整型變量,用于表示資源的可用數(shù)量。進(jìn)程通過(guò)執(zhí)行P操作和V操作來(lái)申請(qǐng)和釋放資源,實(shí)現(xiàn)進(jìn)程間的同步和互斥。信號(hào)量機(jī)制原理信號(hào)量機(jī)制可應(yīng)用于解決生產(chǎn)者-消費(fèi)者問(wèn)題、哲學(xué)家進(jìn)餐問(wèn)題等經(jīng)典同步問(wèn)題。通過(guò)合理設(shè)置信號(hào)量的初始值和P、V操作的順序,可實(shí)現(xiàn)進(jìn)程間的協(xié)同工作。信號(hào)量機(jī)制應(yīng)用信號(hào)量機(jī)制原理及應(yīng)用消息傳遞方式消息傳遞是進(jìn)程間通信的一種方式,包括直接通信和間接通信兩種方式。直接通信是指發(fā)送進(jìn)程直接把消息發(fā)送給接收進(jìn)程,而間接通信則是通過(guò)共享的數(shù)據(jù)結(jié)構(gòu)(如消息隊(duì)列)進(jìn)行消息的發(fā)送和接收。消息傳遞實(shí)現(xiàn)在操作系統(tǒng)中,消息傳遞通常通過(guò)系統(tǒng)調(diào)用或庫(kù)函數(shù)來(lái)實(shí)現(xiàn)。發(fā)送進(jìn)程調(diào)用發(fā)送原語(yǔ)將消息發(fā)送到目標(biāo)進(jìn)程的消息隊(duì)列中,接收進(jìn)程調(diào)用接收原語(yǔ)從消息隊(duì)列中取出消息進(jìn)行處理。消息傳遞方式及實(shí)現(xiàn)共享內(nèi)存是進(jìn)程間通信的另一種方式,通過(guò)在內(nèi)存中開(kāi)辟一塊共享區(qū)域,多個(gè)進(jìn)程可以訪問(wèn)和修改該區(qū)域的內(nèi)容,從而實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)交換和協(xié)同工作。共享內(nèi)存通信原理在Linux系統(tǒng)中,可以使用shmget、shmat和shmdt等系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)共享內(nèi)存通信。首先使用shmget函數(shù)創(chuàng)建一塊共享內(nèi)存區(qū)域,然后使用shmat函數(shù)將共享內(nèi)存區(qū)域映射到進(jìn)程的地址空間中,最后通過(guò)指針訪問(wèn)共享內(nèi)存區(qū)域進(jìn)行讀寫(xiě)操作。當(dāng)不再需要共享內(nèi)存時(shí),可以使用shmdt函數(shù)將共享內(nèi)存從進(jìn)程中分離。共享內(nèi)存通信實(shí)例共享內(nèi)存通信原理及實(shí)例04死鎖問(wèn)題分析及解決方法死鎖概念及產(chǎn)生條件死鎖概念死鎖是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,由于競(jìng)爭(zhēng)資源或者由于彼此通信而造成的一種阻塞的現(xiàn)象,若無(wú)外力作用,它們都將無(wú)法向前推進(jìn)。產(chǎn)生條件死鎖的產(chǎn)生必須滿足以下四個(gè)必要條件,也稱為“死鎖的四個(gè)必要條件”,即互斥條件、請(qǐng)求和保持條件、不剝奪條件和環(huán)路等待條件。破壞互斥條件破壞請(qǐng)求和保持條件破壞不剝奪條件破壞環(huán)路等待條件死鎖預(yù)防策略探討通過(guò)允許多個(gè)進(jìn)程同時(shí)訪問(wèn)某些資源來(lái)預(yù)防死鎖。但是,有些資源是不能被多個(gè)進(jìn)程同時(shí)訪問(wèn)的,如打印機(jī)等。采用靜態(tài)分配方法,即進(jìn)程在運(yùn)行前一次申請(qǐng)完它所需要的全部資源,在它的資源未滿足前,不把它投入運(yùn)行。一旦投入運(yùn)行后,這些資源就一直歸它所有,也不再提出其他資源請(qǐng)求,直到它完成任務(wù)為止。當(dāng)某個(gè)進(jìn)程請(qǐng)求新的資源得不到滿足時(shí),它必須立即釋放保持的所有資源,待以后需要時(shí)再重新申請(qǐng)。這意味著進(jìn)程已占用的資源會(huì)被暫時(shí)釋放,從而破壞了不可剝奪條件。采用資源有序分配法,即把資源事先分類編號(hào),按號(hào)分配,使進(jìn)程在申請(qǐng)、占用資源時(shí)不會(huì)形成環(huán)路。所有進(jìn)程對(duì)資源的請(qǐng)求必須嚴(yán)格按資源序號(hào)遞增的順序提出。01020304銀行家算法饑餓問(wèn)題安全性算法資源分配圖算法死鎖避免算法介紹該算法通過(guò)判斷系統(tǒng)是否處于安全狀態(tài)來(lái)決定是否分配資源。如果系統(tǒng)處于安全狀態(tài),則可以分配資源;否則,不分配資源以避免死鎖的發(fā)生。銀行家算法雖然可以避免死鎖的發(fā)生,但也可能導(dǎo)致某些進(jìn)程長(zhǎng)時(shí)間得不到服務(wù),即產(chǎn)生饑餓現(xiàn)象。因此,在實(shí)際應(yīng)用中,還需要結(jié)合其他算法或策略來(lái)解決饑餓問(wèn)題。該算法是由艾茲格·迪杰斯特拉在1965年為T(mén).H.E.系統(tǒng)設(shè)計(jì)的一種避免死鎖產(chǎn)生的算法。它以一個(gè)銀行借貸系統(tǒng)的模擬來(lái)實(shí)現(xiàn)資源的分配和回收,保證系統(tǒng)的安全運(yùn)行。該算法利用有向圖來(lái)表示系統(tǒng)中資源和進(jìn)程的狀態(tài)及其之間的關(guān)系。通過(guò)對(duì)資源分配圖的分析和化簡(jiǎn)來(lái)判斷系統(tǒng)是否會(huì)發(fā)生死鎖。05線程實(shí)現(xiàn)方式及優(yōu)缺點(diǎn)比較01020304用戶級(jí)線程完全在用戶空間中實(shí)現(xiàn),不需要內(nèi)核支持。用戶級(jí)線程實(shí)現(xiàn)原理用戶級(jí)線程完全在用戶空間中實(shí)現(xiàn),不需要內(nèi)核支持。用戶級(jí)線程完全在用戶空間中實(shí)現(xiàn),不需要內(nèi)核支持。用戶級(jí)線程完全在用戶空間中實(shí)現(xiàn),不需要內(nèi)核支持。內(nèi)核級(jí)線程由操作系統(tǒng)內(nèi)核管理和調(diào)度,線程的創(chuàng)建、撤銷和切換都由內(nèi)核負(fù)責(zé)。內(nèi)核為每個(gè)線程分配獨(dú)立的??臻g和寄存器上下文,確保線程之間的隔離性。內(nèi)核級(jí)線程可以充分利用多核處理器并行執(zhí)行,提高系統(tǒng)吞吐量。但是,內(nèi)核級(jí)線程的創(chuàng)建、撤銷和切換開(kāi)銷較大,且需要處理同步和互斥問(wèn)題。內(nèi)核級(jí)線程實(shí)現(xiàn)原理同步和互斥調(diào)度策略用戶級(jí)線程可以采用非搶占式或搶占式調(diào)度策略,內(nèi)核級(jí)線程通常采用搶占式調(diào)度策略。并行能力用戶級(jí)線程無(wú)法利用多核處理器并行執(zhí)行,內(nèi)核級(jí)線程可以充分利用多核處理器并行執(zhí)行。系統(tǒng)開(kāi)銷用戶級(jí)線程創(chuàng)建、撤銷和切換開(kāi)銷較小,內(nèi)核級(jí)線程創(chuàng)建、撤銷和切換開(kāi)銷較大。用戶級(jí)線程在用戶空間實(shí)現(xiàn),內(nèi)核級(jí)線程在內(nèi)核空間實(shí)現(xiàn)。實(shí)現(xiàn)方式切換速度用戶級(jí)線程切換速度快,內(nèi)核級(jí)線程切換速度相對(duì)較慢。用戶級(jí)線程需要自行處理同步和互斥問(wèn)題,內(nèi)核級(jí)線程由操作系統(tǒng)內(nèi)核提供同步和互斥機(jī)制。用戶級(jí)與內(nèi)核級(jí)線程比較06多線程編程技巧與注意事項(xiàng)線程創(chuàng)建與啟動(dòng)線程生命周期管理線程間通信使用適當(dāng)?shù)木€程創(chuàng)建方法(如繼承Thread類或?qū)崿F(xiàn)Runnable接口),并正確啟動(dòng)線程。理解線程的生命周期(新建、就緒、運(yùn)行、阻塞、終止),并合理管理線程的狀態(tài)轉(zhuǎn)換。通過(guò)共享內(nèi)存、消息傳遞等方式實(shí)現(xiàn)線程間通信,確保線程間協(xié)作順暢。多線程程序設(shè)計(jì)方法使用synchronized關(guān)鍵字修飾方法,確保同一時(shí)刻只有一個(gè)線程可以執(zhí)行該方法,避免數(shù)據(jù)不一致問(wèn)題。同步方法使用synchronized關(guān)鍵字修飾代碼塊,實(shí)現(xiàn)更細(xì)粒度的同步控制,減少線程等待時(shí)間。同步塊利用Java中的Lock接口及其實(shí)現(xiàn)類(如ReentrantLock),實(shí)現(xiàn)更靈活的線程同步控制。鎖機(jī)制使用Condition接口及其實(shí)現(xiàn)類,結(jié)合鎖機(jī)制實(shí)現(xiàn)線程間的等待/通知機(jī)制,解決線程間的協(xié)作問(wèn)題。條件變量多線程同步和互斥處理技巧利用并發(fā)工具類Java并發(fā)包中提供了許多高級(jí)并發(fā)工具類(如CountDownLatch、CyclicBarrier、Semaphore等),可以簡(jiǎn)化多線程編程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025海南樂(lè)東縣機(jī)關(guān)事務(wù)服務(wù)中心招聘保安人員2人考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(奪冠系列)
- 森林里的朋友們童話作文12篇
- 2025年度春季浦發(fā)銀行校園招聘考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(名校卷)
- 數(shù)據(jù)隱秘保護(hù)用戶權(quán)益承諾書(shū)(8篇)
- 文檔編寫(xiě)與協(xié)作管理平臺(tái)
- 商務(wù)合同審查及管理標(biāo)準(zhǔn)化流程
- 2025遼寧盤(pán)錦建設(shè)投資有限責(zé)任公司招聘工作人員和模擬試卷附答案詳解(模擬題)
- 《全球變暖現(xiàn)象解析:初中地理教學(xué)教案》
- 技術(shù)型企業(yè)安全措施培訓(xùn)體系清單模板
- 租房安全防范知識(shí)培訓(xùn)課件
- 七年級(jí)生物上《調(diào)查周邊環(huán)境中的生物》課件
- XX醫(yī)院臨床醫(yī)療質(zhì)量考核通用記錄表
- 用藥交代題文檔
- 23秋國(guó)家開(kāi)放大學(xué)《液壓與氣壓傳動(dòng)》形考任務(wù)1-2參考答案
- (完整word版)高中英語(yǔ)3500詞匯表
- 尋常型天皰瘡
- 納溪城市生活垃圾填埋場(chǎng)環(huán)境安全隱患整治應(yīng)急工程環(huán)評(píng)報(bào)告
- 法人車輛租給公司合同范本
- 山東威海旅游介紹PPT模板(推薦)
- 初中畢業(yè)證怎么從網(wǎng)上查詢
- GB/T 32926-2016信息安全技術(shù)政府部門(mén)信息技術(shù)服務(wù)外包信息安全管理規(guī)范
評(píng)論
0/150
提交評(píng)論