版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章線程、對(duì)稱多處理和微內(nèi)核進(jìn)程和線程進(jìn)程的概念資源分配的單位調(diào)度/執(zhí)行的單位解決進(jìn)程切換開銷大、提高并發(fā)程度線程:一個(gè)進(jìn)程內(nèi)的基本調(diào)度單位線程和進(jìn)程的主要區(qū)別:1進(jìn)程是資源管理基本單位2線程是處理機(jī)調(diào)度的基本單位(共享進(jìn)程資源、自己沒有資源)3進(jìn)程切換涉及資源轉(zhuǎn)移及現(xiàn)場(chǎng)保護(hù),時(shí)間長(zhǎng)4線程切換不發(fā)生資源變化、切換(線程上下文)時(shí)間短5線程沒有單獨(dú)的數(shù)據(jù)和程序空間,不能交換到外存6進(jìn)程調(diào)度大多由操作系統(tǒng)內(nèi)核完成,線程控制可以由操作系統(tǒng)內(nèi)核進(jìn)行,也可由用戶控制7線程通信效率高:在同一進(jìn)程內(nèi),無(wú)需調(diào)用內(nèi)核,可利用共享的存儲(chǔ)空間線程執(zhí)行狀態(tài)(運(yùn)行、就緒等)保存的線程上下文(非運(yùn)行時(shí))一個(gè)執(zhí)行棧獨(dú)立的用來(lái)存儲(chǔ)局部變量的靜態(tài)存儲(chǔ)器對(duì)進(jìn)程的存儲(chǔ)器和其他資源的訪問,與進(jìn)程的其他線程共享這些資源
一個(gè)獨(dú)立的程序指令計(jì)數(shù)器進(jìn)程與線程的關(guān)系單線程和多線程的進(jìn)程模型線程應(yīng)用實(shí)例文件服務(wù)器每個(gè)新文件請(qǐng)求到達(dá),為文件管理器產(chǎn)生一個(gè)新線程多線程在多處理器上性能更優(yōu)單用戶多處理系統(tǒng)中線程使用前臺(tái)和后臺(tái)操作(顯示讀取輸入、執(zhí)行命令更新)異步處理(周期性備份、緩沖區(qū)寫磁盤)加速執(zhí)行(多處理器多線程)模塊化程序結(jié)構(gòu)進(jìn)程掛起-線程掛起進(jìn)程終止-線程終止線程功能派生(spawn):又稱創(chuàng)建線程。阻塞(block):又稱線程阻塞或等待。當(dāng)一個(gè)線程等待一個(gè)事件時(shí),將變成阻塞態(tài),保護(hù)它的用戶寄存器、程序計(jì)數(shù)器和堆棧指針等現(xiàn)場(chǎng)。解除阻塞(unblock):又稱恢復(fù)線程。當(dāng)被阻塞線程等待的事件發(fā)生時(shí),線程變成就緒態(tài)結(jié)束(finish):又稱撤銷線程。當(dāng)一個(gè)線程正常完成時(shí),便回收它占有的寄存器和堆棧等資源,撤銷線程TCB。當(dāng)一個(gè)線程運(yùn)行出現(xiàn)異常時(shí),允許強(qiáng)行撤銷一個(gè)線程。線程的實(shí)現(xiàn)用戶級(jí)線程(User-levelThreads,ULT):POSIX的P-threads、Java的線程庫(kù)內(nèi)核級(jí)線程(Kernel-levelThreads,KLT):Windows2000/XP、OS/2和MachC-thread組合的方法(CombinedApproaches):SolarisSUN最初在Solaris操作系統(tǒng)上實(shí)現(xiàn)的虛擬機(jī)采用的是用戶級(jí)的線程庫(kù),以后改用內(nèi)核線程和用戶線程相結(jié)合的方式;Linux系統(tǒng)上的虛擬機(jī)kaffe采用的是純用戶級(jí)的線程;Krall等人在為DECUnix平臺(tái)設(shè)計(jì)64位Java虛擬機(jī)時(shí),采用的也是用戶級(jí)的線程.用戶線程(user-levelthread)用戶線程的維護(hù)由應(yīng)用進(jìn)程完成;內(nèi)核不了解用戶線程的存在;用戶線程切換不需要內(nèi)核特權(quán);用戶線程調(diào)度算法可針對(duì)應(yīng)用優(yōu)化;不依賴于OS核心,應(yīng)用進(jìn)程利用線程庫(kù)提供創(chuàng)建、同步、調(diào)度和管理線程的函數(shù)來(lái)控制用戶線程。如:數(shù)據(jù)庫(kù)系統(tǒng)informix,圖形處理AldusPageMaker。特點(diǎn):應(yīng)用程序和線程被分配給內(nèi)核管理的進(jìn)程。線程創(chuàng)建:線程庫(kù)派生控制權(quán)傳遞:過程調(diào)用線程上下文的保存:用戶寄存器、PC、棧指針內(nèi)核無(wú)法知曉用戶空間的活動(dòng)Java語(yǔ)言的用戶級(jí)線程機(jī)制線程阻塞導(dǎo)致進(jìn)程阻塞虛擬感知進(jìn)程B在線程2中運(yùn)行進(jìn)程B時(shí)間片到用戶級(jí)線程代替內(nèi)核級(jí)線程優(yōu)點(diǎn)線程切換不需要模式切換調(diào)度算法可以去適應(yīng)應(yīng)用程序,而不會(huì)擾亂底層的操作系統(tǒng)調(diào)度程序不需要對(duì)底層內(nèi)核進(jìn)行修改以支持ULT用戶級(jí)線程代替內(nèi)核級(jí)線程缺點(diǎn)(系統(tǒng)調(diào)用)線程阻塞導(dǎo)致進(jìn)程中所有線程阻塞一個(gè)多線程應(yīng)用程序不能利用多處理技術(shù)一次進(jìn)程中只有一個(gè)線程可以執(zhí)行內(nèi)核維護(hù)進(jìn)程和線程的上下文信息;線程切換由內(nèi)核完成;一個(gè)線程發(fā)起系統(tǒng)調(diào)用而阻塞,不會(huì)影響其他線程的運(yùn)行。時(shí)間片分配給線程,所以多線程的進(jìn)程獲得更多CPU時(shí)間。依賴于OS核心,由內(nèi)核的內(nèi)部需求進(jìn)行創(chuàng)建和撤銷,用來(lái)執(zhí)行一個(gè)指定的函數(shù)。Windows2000/xp和Winnt支持內(nèi)核線程;內(nèi)核線程(kernel-levelthread)優(yōu)點(diǎn):線程阻塞不會(huì)導(dǎo)致進(jìn)程阻塞可以利用多處理器技術(shù)內(nèi)核例程本身也可以使用多線程線程管理使用API函數(shù)缺點(diǎn):線程切換需要訪問模式效率比用戶級(jí)線程低(應(yīng)用程序性質(zhì))組合方法(Solaris)ULT被映射到KLT多個(gè)線程可以在多個(gè)處理器上并行運(yùn)行線程創(chuàng)建、調(diào)度和同步在用戶空間某個(gè)會(huì)引起阻塞的系統(tǒng)調(diào)用不需要阻塞整個(gè)進(jìn)程其他方案線程:進(jìn)程描述示例1:1每個(gè)線程是一個(gè)進(jìn)程UnixM:1進(jìn)程中創(chuàng)建多個(gè)線程windowsSolaris、linux、os/21:M線程在進(jìn)程中遷移Ra、EmeraldM:N綜合M:1和1:MTRIX進(jìn)程和線程的比較①地址空間資源:不同進(jìn)程的地址空間是相互獨(dú)立的,而同一進(jìn)程的各線程共享同一地址空間。一個(gè)進(jìn)程中的線程在另一個(gè)進(jìn)程中是不可見的。②通信關(guān)系:進(jìn)程間通信必須使用操作系統(tǒng)提供的進(jìn)程間通信機(jī)制,而同一進(jìn)程中的各線程間可以通過直接讀寫進(jìn)程數(shù)據(jù)段(如全局變量)來(lái)進(jìn)行通信。③調(diào)度切換:同一進(jìn)程中的線程上下文切換比進(jìn)程上下文切換要快得多。使用單線程的RPC每個(gè)服務(wù)器使用
一個(gè)線程的RPC(單處理器)單處理器上的多線程Windows2000/xp的線程狀態(tài)對(duì)稱多處理分布式系統(tǒng),每個(gè)CPU都擁有自己的高速緩存、RAM、磁盤、圖形子系統(tǒng)、聲卡、監(jiān)視器等,它們是一組普通的計(jì)算機(jī),可能具有完全不同的體系結(jié)構(gòu),但都共同工作在某個(gè)網(wǎng)絡(luò)之上。SMP,系統(tǒng)所有的CPU都是相同的,且在一個(gè)計(jì)算機(jī)里,它們通過特殊用途的硬件通信,系統(tǒng)除了CPU以外,每樣?xùn)|西只有一個(gè)—一塊圖形卡、一個(gè)聲卡等等之類,諸如RAM和磁盤及類似的資源為系統(tǒng)的CPU所共享引入:進(jìn)程演化線程目的核心級(jí)線程—并發(fā)使用處理器資源—滿足SMP主從結(jié)構(gòu)缺點(diǎn):內(nèi)核在某個(gè)特定處理器上運(yùn)行主處理器失敗導(dǎo)致整個(gè)系統(tǒng)失敗主處理器單獨(dú)完成所有調(diào)度和進(jìn)程管理(瓶頸)對(duì)稱多處理:內(nèi)核可運(yùn)行在任一處理器上每個(gè)處理器可從可用進(jìn)程和線程池完成自身的調(diào)度工作內(nèi)核并行運(yùn)行多處理器操作系統(tǒng)的設(shè)計(jì)思考多道程序系統(tǒng)+多個(gè)處理器關(guān)鍵設(shè)計(jì)問題同時(shí)的并發(fā)進(jìn)程/線程:多處理器同時(shí)執(zhí)行相同內(nèi)核代碼,內(nèi)核例程可重入調(diào)度:避免多處理器的調(diào)度沖突同步:鎖存儲(chǔ)器管理:協(xié)調(diào)多處理器分頁(yè)機(jī)制可靠性和容錯(cuò)微內(nèi)核體系結(jié)構(gòu)只有最基本操作系統(tǒng)功能放在內(nèi)核中,運(yùn)行在核心模式不是最基本服務(wù)和應(yīng)用在內(nèi)核之外,運(yùn)行在用戶模式(設(shè)備驅(qū)動(dòng)程序、文件系統(tǒng)、虛存管理程序、窗口系統(tǒng)、安全)微內(nèi)核組織結(jié)構(gòu)的優(yōu)點(diǎn)一致接口:進(jìn)程不區(qū)分內(nèi)核還是用戶,所有服務(wù)都以消息的形式提供可擴(kuò)展性:允許增加新的服務(wù)、作為用戶級(jí)進(jìn)程實(shí)現(xiàn)、無(wú)需改動(dòng)內(nèi)核靈活性:可以增加新的功能、刪除現(xiàn)有功能可移植性:把系統(tǒng)移植到新處理器上只需要對(duì)內(nèi)核修改(大部分處理器專用代碼在微內(nèi)核中)可靠性:模塊化、掌握少量API、小的微內(nèi)核可以被嚴(yán)格地測(cè)試分布式系統(tǒng)支持:消息傳送不需要知道目標(biāo)機(jī)器的位置對(duì)面向?qū)ο蟛僮飨到y(tǒng)的支持:組件技術(shù)微內(nèi)核性能增大微內(nèi)核:把一些關(guān)鍵的服務(wù)程序和驅(qū)動(dòng)程序重新放回操作系統(tǒng)減少用戶-內(nèi)核模式切換的次數(shù)及地址空間進(jìn)程切換的次數(shù)減少微內(nèi)核:微內(nèi)核構(gòu)造和發(fā)送信息、接受應(yīng)答并解碼所花費(fèi)時(shí)間比進(jìn)行一次系統(tǒng)調(diào)用時(shí)間要多一代微內(nèi)核:300KB代碼140個(gè)系統(tǒng)調(diào)用接口第二代微內(nèi)核:13KB代碼7個(gè)系統(tǒng)調(diào)用接口微內(nèi)核設(shè)計(jì)低級(jí)存儲(chǔ)器管理微內(nèi)核負(fù)責(zé)把每個(gè)虛頁(yè)映射到一個(gè)物理頁(yè)幀核外:包括保護(hù)一個(gè)進(jìn)程的地址空間免于另一個(gè)進(jìn)程的干涉、頁(yè)替換算法以及分頁(yè)邏輯都可以在內(nèi)核外實(shí)現(xiàn).進(jìn)程間通信:消息(消息頭、消息體)I/O和中斷管理:識(shí)別中斷、消息處理硬件中斷可如同消息一樣來(lái)處理微內(nèi)核將生成一個(gè)消息傳送給用戶層中相關(guān)的處理中斷的進(jìn)程內(nèi)核中并不包含特定設(shè)備專有中斷處理代碼Windows線程和SMP管理Windows進(jìn)程作為對(duì)象實(shí)現(xiàn)一個(gè)可執(zhí)行的進(jìn)程可能包含一個(gè)或多個(gè)線程進(jìn)程對(duì)象和線程對(duì)象都具有同步能力Windows進(jìn)程和線程對(duì)象Windows線程狀態(tài)S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度網(wǎng)絡(luò)安全應(yīng)急響應(yīng)托管服務(wù)合同2篇
- 二零二五年度綠色建筑評(píng)價(jià)標(biāo)識(shí)工程聯(lián)營(yíng)協(xié)議3篇
- 二零二五年度大貨車司機(jī)職業(yè)風(fēng)險(xiǎn)防范合同范本3篇
- 網(wǎng)絡(luò)安全文化傳播與防范意識(shí)強(qiáng)化研究
- 2025版實(shí)訓(xùn)基地學(xué)生實(shí)習(xí)就業(yè)安全保障合同2篇
- 小學(xué)教育中的數(shù)學(xué)創(chuàng)新思維培養(yǎng)
- 清遠(yuǎn)廣東清遠(yuǎn)陽(yáng)山縣紀(jì)委監(jiān)委招聘政府購(gòu)買服務(wù)人員筆試歷年參考題庫(kù)附帶答案詳解
- 杭州浙江杭州市湖墅學(xué)校編外教師招聘筆試歷年參考題庫(kù)附帶答案詳解
- 二零二五年度智能家具制造承包合作協(xié)議3篇
- 2025年牛津譯林版選擇性必修1地理下冊(cè)月考試卷
- 幼兒平衡車訓(xùn)練課程設(shè)計(jì)
- 肩袖損傷的護(hù)理查房課件
- 2023屆北京市順義區(qū)高三二模數(shù)學(xué)試卷
- 公司差旅費(fèi)報(bào)銷單
- 我國(guó)全科醫(yī)生培訓(xùn)模式
- 2021年上海市楊浦區(qū)初三一模語(yǔ)文試卷及參考答案(精校word打印版)
- 八年級(jí)上冊(cè)英語(yǔ)完形填空、閱讀理解100題含參考答案
- 八年級(jí)物理下冊(cè)功率課件
- DBJ51-T 188-2022 預(yù)拌流態(tài)固化土工程應(yīng)用技術(shù)標(biāo)準(zhǔn)
- 《長(zhǎng)津湖》電影賞析PPT
- 銷售禮儀培訓(xùn)PPT
評(píng)論
0/150
提交評(píng)論