版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第3章線程、對稱多處理和微內(nèi)核進程和線程進程的概念資源分配的單位調(diào)度/執(zhí)行的單位解決進程切換開銷大、提高并發(fā)程度線程:一個進程內(nèi)的基本調(diào)度單位線程和進程的主要區(qū)別:1進程是資源管理基本單位2線程是處理機調(diào)度的基本單位(共享進程資源、自己沒有資源)3進程切換涉及資源轉(zhuǎn)移及現(xiàn)場保護,時間長4線程切換不發(fā)生資源變化、切換(線程上下文)時間短5線程沒有單獨的數(shù)據(jù)和程序空間,不能交換到外存6進程調(diào)度大多由操作系統(tǒng)內(nèi)核完成,線程控制可以由操作系統(tǒng)內(nèi)核進行,也可由用戶控制7線程通信效率高:在同一進程內(nèi),無需調(diào)用內(nèi)核,可利用共享的存儲空間線程執(zhí)行狀態(tài)(運行、就緒等)保存的線程上下文(非運行時)一個執(zhí)行棧獨立的用來存儲局部變量的靜態(tài)存儲器對進程的存儲器和其他資源的訪問,與進程的其他線程共享這些資源
一個獨立的程序指令計數(shù)器進程與線程的關系單線程和多線程的進程模型線程應用實例文件服務器每個新文件請求到達,為文件管理器產(chǎn)生一個新線程多線程在多處理器上性能更優(yōu)單用戶多處理系統(tǒng)中線程使用前臺和后臺操作(顯示讀取輸入、執(zhí)行命令更新)異步處理(周期性備份、緩沖區(qū)寫磁盤)加速執(zhí)行(多處理器多線程)模塊化程序結構進程掛起-線程掛起進程終止-線程終止線程功能派生(spawn):又稱創(chuàng)建線程。阻塞(block):又稱線程阻塞或等待。當一個線程等待一個事件時,將變成阻塞態(tài),保護它的用戶寄存器、程序計數(shù)器和堆棧指針等現(xiàn)場。解除阻塞(unblock):又稱恢復線程。當被阻塞線程等待的事件發(fā)生時,線程變成就緒態(tài)結束(finish):又稱撤銷線程。當一個線程正常完成時,便回收它占有的寄存器和堆棧等資源,撤銷線程TCB。當一個線程運行出現(xiàn)異常時,允許強行撤銷一個線程。線程的實現(xiàn)用戶級線程(User-levelThreads,ULT):POSIX的P-threads、Java的線程庫內(nèi)核級線程(Kernel-levelThreads,KLT):Windows2000/XP、OS/2和MachC-thread組合的方法(CombinedApproaches):SolarisSUN最初在Solaris操作系統(tǒng)上實現(xiàn)的虛擬機采用的是用戶級的線程庫,以后改用內(nèi)核線程和用戶線程相結合的方式;Linux系統(tǒng)上的虛擬機kaffe采用的是純用戶級的線程;Krall等人在為DECUnix平臺設計64位Java虛擬機時,采用的也是用戶級的線程.用戶線程(user-levelthread)用戶線程的維護由應用進程完成;內(nèi)核不了解用戶線程的存在;用戶線程切換不需要內(nèi)核特權;用戶線程調(diào)度算法可針對應用優(yōu)化;不依賴于OS核心,應用進程利用線程庫提供創(chuàng)建、同步、調(diào)度和管理線程的函數(shù)來控制用戶線程。如:數(shù)據(jù)庫系統(tǒng)informix,圖形處理AldusPageMaker。特點:應用程序和線程被分配給內(nèi)核管理的進程。線程創(chuàng)建:線程庫派生控制權傳遞:過程調(diào)用線程上下文的保存:用戶寄存器、PC、棧指針內(nèi)核無法知曉用戶空間的活動Java語言的用戶級線程機制線程阻塞導致進程阻塞虛擬感知進程B在線程2中運行進程B時間片到用戶級線程代替內(nèi)核級線程優(yōu)點線程切換不需要模式切換調(diào)度算法可以去適應應用程序,而不會擾亂底層的操作系統(tǒng)調(diào)度程序不需要對底層內(nèi)核進行修改以支持ULT用戶級線程代替內(nèi)核級線程缺點(系統(tǒng)調(diào)用)線程阻塞導致進程中所有線程阻塞一個多線程應用程序不能利用多處理技術一次進程中只有一個線程可以執(zhí)行內(nèi)核維護進程和線程的上下文信息;線程切換由內(nèi)核完成;一個線程發(fā)起系統(tǒng)調(diào)用而阻塞,不會影響其他線程的運行。時間片分配給線程,所以多線程的進程獲得更多CPU時間。依賴于OS核心,由內(nèi)核的內(nèi)部需求進行創(chuàng)建和撤銷,用來執(zhí)行一個指定的函數(shù)。Windows2000/xp和Winnt支持內(nèi)核線程;內(nèi)核線程(kernel-levelthread)優(yōu)點:線程阻塞不會導致進程阻塞可以利用多處理器技術內(nèi)核例程本身也可以使用多線程線程管理使用API函數(shù)缺點:線程切換需要訪問模式效率比用戶級線程低(應用程序性質(zhì))組合方法(Solaris)ULT被映射到KLT多個線程可以在多個處理器上并行運行線程創(chuàng)建、調(diào)度和同步在用戶空間某個會引起阻塞的系統(tǒng)調(diào)用不需要阻塞整個進程其他方案線程:進程描述示例1:1每個線程是一個進程UnixM:1進程中創(chuàng)建多個線程windowsSolaris、linux、os/21:M線程在進程中遷移Ra、EmeraldM:N綜合M:1和1:MTRIX進程和線程的比較①地址空間資源:不同進程的地址空間是相互獨立的,而同一進程的各線程共享同一地址空間。一個進程中的線程在另一個進程中是不可見的。②通信關系:進程間通信必須使用操作系統(tǒng)提供的進程間通信機制,而同一進程中的各線程間可以通過直接讀寫進程數(shù)據(jù)段(如全局變量)來進行通信。③調(diào)度切換:同一進程中的線程上下文切換比進程上下文切換要快得多。使用單線程的RPC每個服務器使用
一個線程的RPC(單處理器)單處理器上的多線程Windows2000/xp的線程狀態(tài)對稱多處理分布式系統(tǒng),每個CPU都擁有自己的高速緩存、RAM、磁盤、圖形子系統(tǒng)、聲卡、監(jiān)視器等,它們是一組普通的計算機,可能具有完全不同的體系結構,但都共同工作在某個網(wǎng)絡之上。SMP,系統(tǒng)所有的CPU都是相同的,且在一個計算機里,它們通過特殊用途的硬件通信,系統(tǒng)除了CPU以外,每樣東西只有一個—一塊圖形卡、一個聲卡等等之類,諸如RAM和磁盤及類似的資源為系統(tǒng)的CPU所共享引入:進程演化線程目的核心級線程—并發(fā)使用處理器資源—滿足SMP主從結構缺點:內(nèi)核在某個特定處理器上運行主處理器失敗導致整個系統(tǒng)失敗主處理器單獨完成所有調(diào)度和進程管理(瓶頸)對稱多處理:內(nèi)核可運行在任一處理器上每個處理器可從可用進程和線程池完成自身的調(diào)度工作內(nèi)核并行運行多處理器操作系統(tǒng)的設計思考多道程序系統(tǒng)+多個處理器關鍵設計問題同時的并發(fā)進程/線程:多處理器同時執(zhí)行相同內(nèi)核代碼,內(nèi)核例程可重入調(diào)度:避免多處理器的調(diào)度沖突同步:鎖存儲器管理:協(xié)調(diào)多處理器分頁機制可靠性和容錯微內(nèi)核體系結構只有最基本操作系統(tǒng)功能放在內(nèi)核中,運行在核心模式不是最基本服務和應用在內(nèi)核之外,運行在用戶模式(設備驅(qū)動程序、文件系統(tǒng)、虛存管理程序、窗口系統(tǒng)、安全)微內(nèi)核組織結構的優(yōu)點一致接口:進程不區(qū)分內(nèi)核還是用戶,所有服務都以消息的形式提供可擴展性:允許增加新的服務、作為用戶級進程實現(xiàn)、無需改動內(nèi)核靈活性:可以增加新的功能、刪除現(xiàn)有功能可移植性:把系統(tǒng)移植到新處理器上只需要對內(nèi)核修改(大部分處理器專用代碼在微內(nèi)核中)可靠性:模塊化、掌握少量API、小的微內(nèi)核可以被嚴格地測試分布式系統(tǒng)支持:消息傳送不需要知道目標機器的位置對面向?qū)ο蟛僮飨到y(tǒng)的支持:組件技術微內(nèi)核性能增大微內(nèi)核:把一些關鍵的服務程序和驅(qū)動程序重新放回操作系統(tǒng)減少用戶-內(nèi)核模式切換的次數(shù)及地址空間進程切換的次數(shù)減少微內(nèi)核:微內(nèi)核構造和發(fā)送信息、接受應答并解碼所花費時間比進行一次系統(tǒng)調(diào)用時間要多一代微內(nèi)核:300KB代碼140個系統(tǒng)調(diào)用接口第二代微內(nèi)核:13KB代碼7個系統(tǒng)調(diào)用接口微內(nèi)核設計低級存儲器管理微內(nèi)核負責把每個虛頁映射到一個物理頁幀核外:包括保護一個進程的地址空間免于另一個進程的干涉、頁替換算法以及分頁邏輯都可以在內(nèi)核外實現(xiàn).進程間通信:消息(消息頭、消息體)I/O和中斷管理:識別中斷、消息處理硬件中斷可如同消息一樣來處理微內(nèi)核將生成一個消息傳送給用戶層中相關的處理中斷的進程內(nèi)核中并不包含特定設備專有中斷處理代碼Windows線程和SMP管理Windows進程作為對象實現(xiàn)一個可執(zhí)行的進程可能包含一個或多個線程進程對象和線程對象都具有同步能力Windows進程和線程對象Windows線程狀態(tài)S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)產(chǎn)品電商銷售合同履約保障與風險控制
- 2025年度留學貸款協(xié)議書模板
- 二零二五年度環(huán)保產(chǎn)業(yè)租賃空地開發(fā)合同
- 二零二五年度信息技術行業(yè)軟件開發(fā)派遣合同書
- 2025版土方外運合同范本:安全施工風險防控協(xié)議6篇
- 2025年度銀行開戶后合規(guī)審查與風險預警服務合同
- 2025年度游樂場電路安全檢測與改造綜合服務協(xié)議
- 二零二五年度解除勞動合同及員工安置方案告知書
- 2025年度解除債權轉(zhuǎn)讓擔保合同標準文本
- 2025年度木材產(chǎn)業(yè)鏈上下游企業(yè)戰(zhàn)略合作合同4篇
- 《色彩基礎》課程標準
- 人力資源 -人效評估指導手冊
- 大疆80分鐘在線測評題
- 2023年成都市青白江區(qū)村(社區(qū))“兩委”后備人才考試真題
- 2024中考復習必背初中英語單詞詞匯表(蘇教譯林版)
- 《現(xiàn)代根管治療術》課件
- 肩袖損傷的護理查房課件
- 2023屆北京市順義區(qū)高三二模數(shù)學試卷
- 公司差旅費報銷單
- 2021年上海市楊浦區(qū)初三一模語文試卷及參考答案(精校word打印版)
- 八年級上冊英語完形填空、閱讀理解100題含參考答案
評論
0/150
提交評論