




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系1第第2 2章章 進程管理進程管理山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系2知識體系框架圖知識體系框架圖2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系3主要知識點主要知識點1.1. 進程與線程進程與線程2.2. 處理機調(diào)度處理機調(diào)度3.3. 進程同步與互斥進程同步與互斥4.4. 死死 鎖鎖進程概念進程概念進程的狀態(tài)與轉(zhuǎn)換進程的狀態(tài)與轉(zhuǎn)換 進程控制進程控制進程組織進程組織進程通信進程通信線程概念與多線程模型線程概念與多線程模型調(diào)度的基本概念調(diào)度的基本概念調(diào)度時機、切換與過程調(diào)
2、度時機、切換與過程 調(diào)度的基本準則調(diào)度的基本準則調(diào)度方式調(diào)度方式典型調(diào)度算法典型調(diào)度算法 進程同步的概念進程同步的概念實現(xiàn)臨界區(qū)互斥的基本方法實現(xiàn)臨界區(qū)互斥的基本方法 信號量信號量經(jīng)典同步算法經(jīng)典同步算法死鎖概念死鎖概念死鎖處理策略死鎖處理策略 死鎖預防死鎖預防死鎖避免死鎖避免死鎖檢測與解除死鎖檢測與解除2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系42.1 2.1 進程與線程進程與線程在多道程序設計的環(huán)境下,為了描在多道程序設計的環(huán)境下,為了描述程序在計算機系統(tǒng)內(nèi)的執(zhí)行情況,述程序在計算機系統(tǒng)內(nèi)的執(zhí)行情況,必須引人新的概念必須引人新的概念進程進程。1.1.進程的定義:進程的定義:可
3、并發(fā)執(zhí)行的程序在一可并發(fā)執(zhí)行的程序在一個數(shù)據(jù)集合上的一次執(zhí)行過程個數(shù)據(jù)集合上的一次執(zhí)行過程, ,是系統(tǒng)進行是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。資源分配和調(diào)度的一個獨立單位。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系5進程的組成進程的組成操作系統(tǒng)表示、管理進程的操作系統(tǒng)表示、管理進程的PCBPCB表以及:表以及: 執(zhí)行的執(zhí)行的程序程序及處理的及處理的數(shù)據(jù)數(shù)據(jù); 一片存放程序和數(shù)據(jù)的空間一片存放程序和數(shù)據(jù)的空間; 一個棧區(qū)一個棧區(qū)(一個用戶棧一個用戶棧,一個核心棧一個核心棧); 進程使用的其它系統(tǒng)資源。進程使用的其它系統(tǒng)資源。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機
4、系6練習題練習題 “程序狀態(tài)字寄存器內(nèi)容程序狀態(tài)字寄存器內(nèi)容”屬于進程屬于進程控制塊的控制塊的( )A、標識信息、標識信息 B、控制信息、控制信息C、現(xiàn)場信息、現(xiàn)場信息 D、調(diào)度信息、調(diào)度信息C程序和數(shù)據(jù)的地址程序和數(shù)據(jù)的地址進程同步和通信機制進程同步和通信機制資源清單資源清單鏈接指針鏈接指針進程優(yōu)先級進程優(yōu)先級進程調(diào)度所需其他信進程調(diào)度所需其他信息息事件事件進程狀態(tài)進程狀態(tài)2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系7l進程上下文(進程上下文(process context)是進程執(zhí)行活動全過程的靜態(tài)描述。是進程執(zhí)行活動全過程的靜態(tài)描述。進程的物理實體與支持進程運行的物理環(huán)境統(tǒng)稱
5、為進程的物理實體與支持進程運行的物理環(huán)境統(tǒng)稱為進程上下文進程上下文lPCB+程序程序l系統(tǒng)環(huán)境:地址空間,系統(tǒng)棧,打開文件表,系統(tǒng)環(huán)境:地址空間,系統(tǒng)棧,打開文件表,l上下文切換(上下文切換(context switch)由一個進程的上下文轉(zhuǎn)到另外一個進程的上下文由一個進程的上下文轉(zhuǎn)到另外一個進程的上下文l系統(tǒng)開銷(系統(tǒng)開銷(system overhead)運行操作系統(tǒng)程序完成系統(tǒng)管理工作所花費的時間運行操作系統(tǒng)程序完成系統(tǒng)管理工作所花費的時間和空間和空間進程上下文進程上下文2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系8進程上下文進程上下文2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)
6、業(yè)大學計算機系9核心態(tài)和用戶態(tài)核心態(tài)和用戶態(tài)用戶態(tài)時不可直接訪問受保護的用戶態(tài)時不可直接訪問受保護的OS代碼;代碼;核心態(tài)時可執(zhí)行全部核心態(tài)時可執(zhí)行全部OS代碼代碼.(處理機運行時的兩種狀態(tài))(處理機運行時的兩種狀態(tài))2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系10 進程核心棧:進程核心棧:處理機狀態(tài)信息保存區(qū)。處理機狀態(tài)信息保存區(qū)。保存進程核心態(tài)運行現(xiàn)場信息:保存進程核心態(tài)運行現(xiàn)場信息: 通用寄存器通用寄存器。這是指用戶程序可以使用的數(shù)。這是指用戶程序可以使用的數(shù)據(jù)、地址寄存器。據(jù)、地址寄存器。 控制和狀態(tài)寄存器控制和狀態(tài)寄存器。如程序計數(shù)器。如程序計數(shù)器(PC);處;處理機狀態(tài)
7、字理機狀態(tài)字(PS) 用戶棧:用戶棧:保存在用戶態(tài)執(zhí)行時函數(shù)調(diào)保存在用戶態(tài)執(zhí)行時函數(shù)調(diào)用的參數(shù)、局部變量和其它數(shù)據(jù)結(jié)構(gòu)。用的參數(shù)、局部變量和其它數(shù)據(jù)結(jié)構(gòu)。用戶棧與核心棧用戶棧與核心棧2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系11用戶棧與核心棧用戶棧與核心棧 一個進程的核心棧和用戶棧是分開的;一個進程的核心棧和用戶棧是分開的; 當一個進程在用戶態(tài)下執(zhí)行時,它的核當一個進程在用戶態(tài)下執(zhí)行時,它的核心棧為空。心棧為空。 進程執(zhí)行過程:進程執(zhí)行過程:用戶態(tài)用戶態(tài) 系統(tǒng)調(diào)用系統(tǒng)調(diào)用 中斷中斷 核心態(tài)核心態(tài) 當進程轉(zhuǎn)換至核心態(tài)時,開始使用核心當進程轉(zhuǎn)換至核心態(tài)時,開始使用核心棧。棧。2022
8、-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系12執(zhí)執(zhí) 行行阻阻 塞塞就就 緒緒時間片完時間片完 I/OI/O請求請求 進程調(diào)度進程調(diào)度 I/OI/O完成完成進程的三種基本狀態(tài)以及各狀態(tài)之間的轉(zhuǎn)換關系進程的三種基本狀態(tài)以及各狀態(tài)之間的轉(zhuǎn)換關系進程的基本狀態(tài)與轉(zhuǎn)換進程的基本狀態(tài)與轉(zhuǎn)換2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系13 任一進程任一時刻有任一進程任一時刻有( )A. 一種狀態(tài)一種狀態(tài) B兩種狀態(tài)兩種狀態(tài) C. 三種狀態(tài)三種狀態(tài) D四種狀態(tài)四種狀態(tài) A練習題練習題2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系14A. 從運行狀態(tài)到阻塞狀態(tài);從運行狀態(tài)到阻塞狀態(tài);
9、B. 從運行狀態(tài)到就緒狀態(tài);從運行狀態(tài)到就緒狀態(tài);C. 從就緒狀態(tài)到運行狀態(tài);從就緒狀態(tài)到運行狀態(tài);D. 從阻塞狀態(tài)到就緒狀態(tài)。從阻塞狀態(tài)到就緒狀態(tài)。A練習題練習題進程自身決定()。進程自身決定()。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系15A. 進程獲得進程獲得CPU運行是通過調(diào)度得到的;運行是通過調(diào)度得到的;B. 優(yōu)先級是進程調(diào)度的重要依據(jù),一旦確定就不能優(yōu)先級是進程調(diào)度的重要依據(jù),一旦確定就不能改變;改變;C. 在單在單CPU的系統(tǒng)中,任意時刻都有一個進程處于的系統(tǒng)中,任意時刻都有一個進程處于運行狀態(tài);運行狀態(tài);D. 進程申請進程申請CPU得不到滿足時,其狀態(tài)變?yōu)樽枞?/p>
10、得不到滿足時,其狀態(tài)變?yōu)樽枞?。A練習題練習題以下關于進程的描述中,正確的是:以下關于進程的描述中,正確的是:2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系16答:答:進程運行完成而終止。進程運行完成而終止。進程因等待而進入阻塞狀態(tài)。進程因等待而進入阻塞狀態(tài)。發(fā)現(xiàn)有比現(xiàn)行進程更高優(yōu)先權(quán)進程。發(fā)現(xiàn)有比現(xiàn)行進程更高優(yōu)先權(quán)進程。進程用完了規(guī)定的時間片。進程用完了規(guī)定的時間片。系統(tǒng)出現(xiàn)異常強行進入進程調(diào)度系統(tǒng)出現(xiàn)異常強行進入進程調(diào)度練習題練習題進程調(diào)度是內(nèi)核的進程控制原語之一,進程調(diào)度是內(nèi)核的進程控制原語之一,該原語在什么情況下被啟動?該原語在什么情況下被啟動?2022-5-3山東農(nóng)業(yè)大學計算
11、機系山東農(nóng)業(yè)大學計算機系1720102010年考研試題之一年考研試題之一26、下列選項中,降低進程優(yōu)先級的合、下列選項中,降低進程優(yōu)先級的合理時機是()。理時機是()。A、進程的時間片用完、進程的時間片用完B、進程剛完成、進程剛完成I/O,進入就緒隊列,進入就緒隊列C、進程長期處于就緒隊列中、進程長期處于就緒隊列中D、進程從就緒狀態(tài)轉(zhuǎn)為運行態(tài)、進程從就緒狀態(tài)轉(zhuǎn)為運行態(tài)2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系18例、某系統(tǒng)的進程狀態(tài)變遷如圖例、某系統(tǒng)的進程狀態(tài)變遷如圖所示(設該系統(tǒng)的進程調(diào)度方式所示(設該系統(tǒng)的進程調(diào)度方式為可剝奪方式):為可剝奪方式):執(zhí)執(zhí) 行行因因I/OI/O
12、阻塞阻塞低優(yōu)先就緒低優(yōu)先就緒首次選擇首次選擇100ms 高優(yōu)先就緒高優(yōu)先就緒其次選擇其次選擇500ms 21345創(chuàng)創(chuàng) 建建2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系19 說明進程發(fā)生變遷說明進程發(fā)生變遷1、3、5的原因;的原因; 當發(fā)生一個變遷時可能引起另一個變遷的當發(fā)生一個變遷時可能引起另一個變遷的發(fā)生,則這兩個變遷稱為因果變遷。下述發(fā)生,則這兩個變遷稱為因果變遷。下述因果變遷是否會發(fā)生,如果有可能的話,因果變遷是否會發(fā)生,如果有可能的話,會在什么情況下發(fā)生?會在什么情況下發(fā)生? (a) 35 (b) 32 (c) 21 (d) 41 (e) 45 根據(jù)狀態(tài)變遷圖說明該系統(tǒng)的
13、調(diào)度策略和根據(jù)狀態(tài)變遷圖說明該系統(tǒng)的調(diào)度策略和調(diào)度效果。調(diào)度效果。請回答請回答2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系20分析分析 本題主要考查對進程狀態(tài)變遷的理解。本題主要考查對進程狀態(tài)變遷的理解。 圖中將傳統(tǒng)的圖中將傳統(tǒng)的3種進程狀態(tài)改成了種進程狀態(tài)改成了4種,種,其實就是將就緒按優(yōu)先級分成了兩級。其實就是將就緒按優(yōu)先級分成了兩級。 但對于進程而言,其最基本的狀態(tài)還是但對于進程而言,其最基本的狀態(tài)還是3個:運行、阻塞、就緒,只是在調(diào)度時,個:運行、阻塞、就緒,只是在調(diào)度時,引入了優(yōu)先級搶占方式。引入了優(yōu)先級搶占方式。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系2
14、1解答解答v系統(tǒng)中當前運行著的進程因中止、結(jié)束或等待某系統(tǒng)中當前運行著的進程因中止、結(jié)束或等待某個個I/O事件而退出運行,并且此時高優(yōu)先就緒隊列事件而退出運行,并且此時高優(yōu)先就緒隊列中沒有等待進程,發(fā)生中沒有等待進程,發(fā)生變遷變遷1;v當運行著的進程發(fā)出當運行著的進程發(fā)出I/O請求,需要等待請求,需要等待I/O事件事件完成才能繼續(xù)進行,發(fā)生完成才能繼續(xù)進行,發(fā)生變遷變遷3;v當有高優(yōu)先級進程進入就緒隊列,并且運行著的當有高優(yōu)先級進程進入就緒隊列,并且運行著的進程是低優(yōu)先級進程時,高優(yōu)先級進程會搶占進程是低優(yōu)先級進程時,高優(yōu)先級進程會搶占CPU,發(fā)生,發(fā)生變遷變遷5. 變遷變遷1、3、5的原因:
15、的原因:2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系22 下述因果變遷的發(fā)生及情況:下述因果變遷的發(fā)生及情況:(a) 35 是因果變遷;是因果變遷;(b) 32 不是;不是;(c) 21 是;是;(d) 41 不是;不是;(e) 45 是。是。此系統(tǒng)采用根據(jù)進程優(yōu)先級分別設置高優(yōu)先就緒隊列和此系統(tǒng)采用根據(jù)進程優(yōu)先級分別設置高優(yōu)先就緒隊列和低優(yōu)先就緒隊列:低優(yōu)先就緒隊列:高優(yōu)先進程運行高優(yōu)先進程運行100ms 后就降為低優(yōu)先就緒隊列,以使后就降為低優(yōu)先就緒隊列,以使短進程優(yōu)先完成;短進程優(yōu)先完成;對低優(yōu)先就緒隊列中的進程采用時間片輪轉(zhuǎn)法(時間片對低優(yōu)先就緒隊列中的進程采用時間片輪轉(zhuǎn)法
16、(時間片程度為程度為500ms),確保每個進程都有運行機會;),確保每個進程都有運行機會;同時,對于進行了同時,對于進行了I/O操作的進程賦予一個高優(yōu)先級,保操作的進程賦予一個高優(yōu)先級,保證對外界事件可以盡快響應。證對外界事件可以盡快響應。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系23不同調(diào)度算不同調(diào)度算法的進程狀法的進程狀態(tài)轉(zhuǎn)換圖態(tài)轉(zhuǎn)換圖2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系24例題:某系統(tǒng)采用可搶占處理機的靜例題:某系統(tǒng)采用可搶占處理機的靜態(tài)優(yōu)先數(shù)調(diào)度算法,請問何時會發(fā)生態(tài)優(yōu)先數(shù)調(diào)度算法,請問何時會發(fā)生搶占處理機的現(xiàn)象搶占處理機的現(xiàn)象? ? 答:當一個新創(chuàng)建
17、的進程或一個被答:當一個新創(chuàng)建的進程或一個被喚醒進程的優(yōu)先數(shù)比正在運行進程喚醒進程的優(yōu)先數(shù)比正在運行進程的優(yōu)先數(shù)高時,可能發(fā)生搶占處理的優(yōu)先數(shù)高時,可能發(fā)生搶占處理機現(xiàn)象。機現(xiàn)象。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系25進程的狀態(tài)與轉(zhuǎn)換進程的狀態(tài)與轉(zhuǎn)換NewNewRunningRunningExitExitReadyReadyBlockedBlocked被調(diào)度被調(diào)度時間片完時間片完事件發(fā)生事件發(fā)生等待事件等待事件結(jié)束結(jié)束進入就緒隊列進入就緒隊列2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系26練習題練習題2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系27
18、練習題 判斷:進程是基于多道程序技術(shù)而提出判斷:進程是基于多道程序技術(shù)而提出來的。其最基本的特性是動態(tài)性和并發(fā)來的。其最基本的特性是動態(tài)性和并發(fā)性;進程的執(zhí)行也即在各種基本狀態(tài)之性;進程的執(zhí)行也即在各種基本狀態(tài)之間多次轉(zhuǎn)換的過程。間多次轉(zhuǎn)換的過程。錯誤。進程在新、死狀態(tài)上只經(jīng)過一次!錯誤。進程在新、死狀態(tài)上只經(jīng)過一次!2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系281.1.活動就緒活動就緒靜止就緒靜止就緒2.2.活動阻塞活動阻塞靜止阻塞靜止阻塞3.3.靜止就緒靜止就緒活動就緒活動就緒4.4.靜止阻塞靜止阻塞活動阻塞活動阻塞引入掛起狀態(tài)引入掛起狀態(tài)2022-5-3山東農(nóng)業(yè)大學計算機系
19、山東農(nóng)業(yè)大學計算機系29具有掛起操作的進程狀態(tài)轉(zhuǎn)換圖具有掛起操作的進程狀態(tài)轉(zhuǎn)換圖創(chuàng)建創(chuàng)建阻塞阻塞喚醒喚醒掛掛起起激活激活活躍活躍阻塞阻塞運行運行靜止靜止阻塞阻塞靜止靜止就緒就緒活躍活躍就緒就緒時間片用完時間片用完調(diào)調(diào)度度掛掛起起喚醒喚醒激活激活活躍活躍靜止靜止掛掛起起2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系30試分析中斷與進程狀態(tài)轉(zhuǎn)換試分析中斷與進程狀態(tài)轉(zhuǎn)換之間的關系之間的關系答:答: 進程狀態(tài)轉(zhuǎn)換是通過原語實現(xiàn)的、由內(nèi)核控制的;進程狀態(tài)轉(zhuǎn)換是通過原語實現(xiàn)的、由內(nèi)核控制的; 如果一個進程的狀態(tài)發(fā)生了改變,則在新舊狀態(tài)之如果一個進程的狀態(tài)發(fā)生了改變,則在新舊狀態(tài)之間一定發(fā)生了處理
20、機狀態(tài)由目態(tài)到管態(tài)的轉(zhuǎn)換;間一定發(fā)生了處理機狀態(tài)由目態(tài)到管態(tài)的轉(zhuǎn)換; 而中斷是處理機狀態(tài)由目態(tài)轉(zhuǎn)換到管態(tài)的必要條件;而中斷是處理機狀態(tài)由目態(tài)轉(zhuǎn)換到管態(tài)的必要條件; 所以所以中斷也是進程狀態(tài)轉(zhuǎn)換的必要條件中斷也是進程狀態(tài)轉(zhuǎn)換的必要條件。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系31進程控制進程控制原語原語(primitive):由若干條指令構(gòu)成由若干條指令構(gòu)成的的“原子操作原子操作(atomic operation)”過程,作為一個整體而不可分割過程,作為一個整體而不可分割要么全都完成,要么全都不做。要么全都完成,要么全都不做。內(nèi)核控制下,由原語實現(xiàn)內(nèi)核控制下,由原語實現(xiàn)!原語是一
21、種特殊的系統(tǒng)調(diào)用。原語是一種特殊的系統(tǒng)調(diào)用。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系32B練習題練習題操作系統(tǒng)中有一組常稱為特殊系統(tǒng)調(diào)用的操作系統(tǒng)中有一組常稱為特殊系統(tǒng)調(diào)用的程序,它不能被系統(tǒng)中斷,在操作系統(tǒng)中程序,它不能被系統(tǒng)中斷,在操作系統(tǒng)中稱為(稱為( )。)。 A.初始化程序初始化程序 B. 原語原語 C.子程序子程序 D. 控制模塊控制模塊2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系33 創(chuàng)建過程:創(chuàng)建過程:(1) (1) 申請空白申請空白PCBPCB(2) (2) 為新進程分配資源為新進程分配資源(3) (3) 初始化初始化PCBPCB(4) (4) 將
22、新進程插入就緒隊列將新進程插入就緒隊列1.1.操作系統(tǒng)發(fā)現(xiàn)要求創(chuàng)建新進程的事件操作系統(tǒng)發(fā)現(xiàn)要求創(chuàng)建新進程的事件后,調(diào)用進程創(chuàng)建原語創(chuàng)建新進程。后,調(diào)用進程創(chuàng)建原語創(chuàng)建新進程。進程的創(chuàng)建進程的創(chuàng)建2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系341 用戶登錄:在分時系統(tǒng)中,用戶在終端鍵入登錄命令后,若 是合法用戶,系統(tǒng)建立一個進程,并插入就緒隊列。2 作業(yè)調(diào)度:批處理系統(tǒng)中,作業(yè)調(diào)度程序調(diào)度到某個作業(yè)以 后,就把這個作業(yè)裝入內(nèi)存,并分配必要的資源, 創(chuàng)建進程,插入就緒隊列。3 提供服務:運行中的用戶向系統(tǒng)提出請求后,系統(tǒng)專門建立一 個進程為用戶服務。(打印請求)4 應用請求:應用進程的
23、需要,由它自己創(chuàng)建一個新進程,使新 進程以并發(fā)運行方式完成特定任務。(輸入數(shù)據(jù)并 將處理結(jié)果輸出到表格上)由操作系統(tǒng)核心(系統(tǒng)程序模塊)創(chuàng)建由操作系統(tǒng)核心(系統(tǒng)程序模塊)創(chuàng)建由父進程創(chuàng)建由父進程創(chuàng)建引起創(chuàng)建進程的事件引起創(chuàng)建進程的事件2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系3520102010年考研試題之一年考研試題之一24、下列選項中,導制創(chuàng)進新進程的操作是()下列選項中,導制創(chuàng)進新進程的操作是()I 用戶登陸成功用戶登陸成功 II 設備分配設備分配 III 啟動程序執(zhí)行啟動程序執(zhí)行A、僅、僅I和和IIB、僅、僅II和和IIIC、僅、僅I和和IIID、I、II、III2022
24、-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系36進程的終止進程的終止 引起進程終止的事件引起進程終止的事件用戶退出用戶退出運行完畢運行完畢因出錯而停止因出錯而停止用戶請求用戶請求2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系37 父進程終止,子進程可以不必父進程終止,子進程可以不必隨之撤銷,對嗎?隨之撤銷,對嗎?錯錯!練習題練習題6種種 進程控制原語主要有哪幾種?進程控制原語主要有哪幾種?2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系38練習題練習題 填空:為了實現(xiàn)進程由等待狀態(tài)轉(zhuǎn)換成填空:為了實現(xiàn)進程由等待狀態(tài)轉(zhuǎn)換成就緒狀態(tài)的狀態(tài)變化,操作系統(tǒng)應提供就緒狀態(tài)的狀態(tài)變化
25、,操作系統(tǒng)應提供_原語。原語。喚醒原語喚醒原語2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系39進程的特征進程的特征 動態(tài)性動態(tài)性 并發(fā)性并發(fā)性 結(jié)構(gòu)性結(jié)構(gòu)性 獨立性獨立性 異步性異步性程序段程序段數(shù)據(jù)段數(shù)據(jù)段進程控制塊進程控制塊PCBPCB獨立運行獨立運行獨立分配資源獨立分配資源獨立接受調(diào)度的基本單位獨立接受調(diào)度的基本單位最基本的特征最基本的特征2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系40進程和程序進程和程序 進程是動態(tài)的,程序是進程是動態(tài)的,程序是靜態(tài)的。靜態(tài)的。 進程是暫時的,程序可進程是暫時的,程序可長久保存。長久保存。 進程和程序的組成不同。進程和程序的組成
26、不同。 進程與程序的對應關系。進程與程序的對應關系。 一個程序可以對應多個進程,一個程序可以對應多個進程,一個進程也可以對應多個程序。一個進程也可以對應多個程序。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系41A練習題練習題進程與程序之間有密切聯(lián)系,但又是不同進程與程序之間有密切聯(lián)系,但又是不同的概念。二者的一個本質(zhì)區(qū)別是(的概念。二者的一個本質(zhì)區(qū)別是( )。)。A程序是靜態(tài)概念,進程是動態(tài)概念程序是靜態(tài)概念,進程是動態(tài)概念 B程序是動態(tài)概念,進程是靜態(tài)概念程序是動態(tài)概念,進程是靜態(tài)概念C程序保存在文件中,進程存放在內(nèi)存中程序保存在文件中,進程存放在內(nèi)存中D程序順序執(zhí)行,進程并發(fā)執(zhí)
27、行程序順序執(zhí)行,進程并發(fā)執(zhí)行2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系42進程切換與進程切換與CPUCPU模式切換模式切換 進程切換進程切換是讓處于運行態(tài)的進程中斷運行,是讓處于運行態(tài)的進程中斷運行,讓出處理器,這時要做一次進程上下文切讓出處理器,這時要做一次進程上下文切換、即保存老進程狀態(tài)而裝入被保護了的換、即保存老進程狀態(tài)而裝入被保護了的新進程的狀態(tài),以便新進程運行。新進程的狀態(tài),以便新進程運行。模式切換是模式切換是當系統(tǒng)調(diào)用(中斷)發(fā)生時,當系統(tǒng)調(diào)用(中斷)發(fā)生時,暫時中斷正在執(zhí)行的用戶進程,把進程從暫時中斷正在執(zhí)行的用戶進程,把進程從用戶狀態(tài)切換到內(nèi)核狀態(tài),去執(zhí)行操作系用
28、戶狀態(tài)切換到內(nèi)核狀態(tài),去執(zhí)行操作系統(tǒng)例行程序以獲得服務。統(tǒng)例行程序以獲得服務。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系43模式切換:模式切換:進程在用戶態(tài)運行進程在用戶態(tài)運行用戶程序用戶程序,在自陷、系統(tǒng)調(diào)用和中斷時轉(zhuǎn)換到核心在自陷、系統(tǒng)調(diào)用和中斷時轉(zhuǎn)換到核心態(tài)運行操作系統(tǒng)態(tài)運行操作系統(tǒng)內(nèi)核程序內(nèi)核程序.進程切換:進程切換:指正在運行的進程因為自身指正在運行的進程因為自身等待事件或有更迫切需要運行的進程就等待事件或有更迫切需要運行的進程就緒而放棄處理機,處理機轉(zhuǎn)去運行其他緒而放棄處理機,處理機轉(zhuǎn)去運行其他進程進程 .模式切換與進程切換模式切換與進程切換2022-5-3山東農(nóng)業(yè)大
29、學計算機系山東農(nóng)業(yè)大學計算機系44模式切換與進程切換的區(qū)別模式切換與進程切換的區(qū)別 模式切換模式切換 不引起進程狀態(tài)變化不引起進程狀態(tài)變化 也不一定引起進程的切換也不一定引起進程的切換 從核心態(tài)返回時可以通過逆向設置返回用戶態(tài)繼續(xù)從核心態(tài)返回時可以通過逆向設置返回用戶態(tài)繼續(xù)執(zhí)行被中斷的進程執(zhí)行被中斷的進程 進程切換進程切換 進程調(diào)度的本質(zhì)進程調(diào)度的本質(zhì) 在核心態(tài)下發(fā)生在核心態(tài)下發(fā)生 引起進程狀態(tài)的變遷引起進程狀態(tài)的變遷 進程上下文的切換進程上下文的切換2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系45例題:例題:若在若在T1T1時刻用戶進程時刻用戶進程P1P1運行,運行,T2T2時刻
30、用戶進程時刻用戶進程P2P2運行,且運行,且P1P2 ,P1P2 ,則在則在時刻時刻T1T1和時刻和時刻T2T2期間之內(nèi)一定發(fā)生過中期間之內(nèi)一定發(fā)生過中斷。這種說法對嗎斷。這種說法對嗎? ? 為什么為什么? ? 答:正確。答:正確。如果在時刻如果在時刻 T1進程進程P1在運行,在時刻在運行,在時刻T2進程進程P2在運行,在運行,且且P1P2,則說明在,則說明在T1和和T2之間發(fā)生了之間發(fā)生了進程切換進程切換。即在即在T1和和T2之間執(zhí)行了處理機之間執(zhí)行了處理機調(diào)度程序調(diào)度程序,而處理機調(diào)度,而處理機調(diào)度程序是操作系統(tǒng)低層中的一個模塊,運行于管態(tài),說明在程序是操作系統(tǒng)低層中的一個模塊,運行于管態(tài)
31、,說明在T1與與T2時刻之間處理機狀態(tài)曾時刻之間處理機狀態(tài)曾由目態(tài)轉(zhuǎn)換到管態(tài)由目態(tài)轉(zhuǎn)換到管態(tài)。由于中斷是系統(tǒng)由目態(tài)轉(zhuǎn)換為管態(tài)的必要條件,所以在時由于中斷是系統(tǒng)由目態(tài)轉(zhuǎn)換為管態(tài)的必要條件,所以在時刻刻T1與時刻與時刻T2之間一定發(fā)生過中斷,也就是說,中斷是進之間一定發(fā)生過中斷,也就是說,中斷是進程切換的必要條件,程切換的必要條件,然而中斷不是進程切換的充分條件。然而中斷不是進程切換的充分條件。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系46上題續(xù)上題續(xù) 例如例如: 一個進程執(zhí)行一個系統(tǒng)調(diào)用命令將一個進程執(zhí)行一個系統(tǒng)調(diào)用命令將一個消息發(fā)給另外一個進程,該命令的一個消息發(fā)給另外一個進程,
32、該命令的執(zhí)行將通過中斷進入操作系統(tǒng),操作系執(zhí)行將通過中斷進入操作系統(tǒng),操作系統(tǒng)處理完消息的發(fā)送工作后可能返回原統(tǒng)處理完消息的發(fā)送工作后可能返回原調(diào)用進程,此時中斷未導致進程切換;調(diào)用進程,此時中斷未導致進程切換;也可能選擇一個新的進程,此時中斷導也可能選擇一個新的進程,此時中斷導致了進程切換。致了進程切換。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系47UNIXUNIX中進程上下文切換和模式切換中進程上下文切換和模式切換系統(tǒng)調(diào)系統(tǒng)調(diào)用或中用或中斷斷( (隱隱含模式含模式切換切換) )模式切換模式切換用戶態(tài)用戶態(tài)運行運行等待等待狀態(tài)狀態(tài)就緒就緒狀態(tài)狀態(tài)發(fā)生事件發(fā)生事件喚醒喚醒調(diào)度進程
33、調(diào)度進程核心態(tài)核心態(tài)運行運行中斷、中斷、中斷返回中斷返回時間片到時間片到2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系48作業(yè)(作業(yè)(Job)Job) 作業(yè)概念作業(yè)概念 用戶要求計算機系統(tǒng)為其完成的計算任務集合。用戶要求計算機系統(tǒng)為其完成的計算任務集合。 作業(yè)步(作業(yè)步(job step) 作業(yè)處理過程中一個相對獨立的步驟作業(yè)處理過程中一個相對獨立的步驟 一般一個作業(yè)步可由一個進程完成一般一個作業(yè)步可由一個進程完成 某些作業(yè)步之間可以并行某些作業(yè)步之間可以并行 作業(yè)分類作業(yè)分類 批處理作業(yè)批處理作業(yè) 交互式作業(yè)交互式作業(yè)2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系49JC
34、LJCL與與JCBJCB 作業(yè)控制語言作業(yè)控制語言(JCL):(JCL):是對用戶作業(yè)的進行組織和管理的各種控制命令的集合.作業(yè)控制說明書作業(yè)控制說明書是用戶用于描述批處理作業(yè)處理過程控制意圖的一種特殊程序, 作業(yè)控制說明書主要包括內(nèi)容: 作業(yè)的基本描述、作業(yè)控制描述和資源要求描述作業(yè)控制塊作業(yè)控制塊是批處理作業(yè)存在的標志,其中保存了系統(tǒng)對于作業(yè)進行管理所需要的全部信息,它們被保存于磁盤區(qū)域中2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系50作業(yè)與進程的關系作業(yè)與進程的關系 作業(yè)作業(yè): :是用戶對計算機的一次獨立的使用是用戶對計算機的一次獨立的使用過程過程 進程進程: :是分配計算機
35、資源的單位是分配計算機資源的單位, ,是用戶任是用戶任務運行的實體務運行的實體, ,作業(yè)可包含多個進程作業(yè)可包含多個進程( (至少至少一個一個) )2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系51批處理系統(tǒng)作業(yè)與進程關系批處理系統(tǒng)作業(yè)與進程關系 作業(yè)調(diào)度程序作業(yè)調(diào)度程序每選擇一道每選擇一道作業(yè)作業(yè)運行時運行時,首首先為該作業(yè)創(chuàng)建一個先為該作業(yè)創(chuàng)建一個根進程根進程,該進程執(zhí)行該進程執(zhí)行作業(yè)控制語言解釋器程序,并可根據(jù)需作業(yè)控制語言解釋器程序,并可根據(jù)需要創(chuàng)建多個子進程要創(chuàng)建多個子進程.2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系52作業(yè)和進程狀態(tài)轉(zhuǎn)換圖作業(yè)和進程狀態(tài)轉(zhuǎn)換圖
36、提交提交后備后備運行運行完成完成作業(yè)輸入作業(yè)輸入作業(yè)調(diào)度作業(yè)調(diào)度創(chuàng)建進程創(chuàng)建進程作業(yè)終止作業(yè)終止就緒就緒執(zhí)行執(zhí)行等待等待進程調(diào)度進程調(diào)度2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系53 把用戶的一次上機過程看成是一個把用戶的一次上機過程看成是一個交互作交互作業(yè)業(yè)( (無論從內(nèi)部表示及外部特征無論從內(nèi)部表示及外部特征, ,它都有別它都有別于批作業(yè)于批作業(yè)) ); 系統(tǒng)為每個終端設備生成一個系統(tǒng)為每個終端設備生成一個進程進程,該進,該進程運行程運行終端命令解釋器終端命令解釋器。該進程根據(jù)需要。該進程根據(jù)需要還可以創(chuàng)建多個子進程還可以創(chuàng)建多個子進程分時系統(tǒng)作業(yè)與進程之關系分時系統(tǒng)作業(yè)與進
37、程之關系2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系54作業(yè)、進程、線程作業(yè)、進程、線程 作業(yè)與進程作業(yè)與進程 作業(yè)進入內(nèi)存后變?yōu)檫M程作業(yè)進入內(nèi)存后變?yōu)檫M程 一個作業(yè)通常與多個進程相對應一個作業(yè)通常與多個進程相對應 進程與線程進程與線程 不支持多線程的系統(tǒng),可視為單線程進程不支持多線程的系統(tǒng),可視為單線程進程 一個進程一般包含多個線程,至少包含一個一個進程一般包含多個線程,至少包含一個線程線程2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系55A練習題練習題進程與程序之間有密切聯(lián)系,但又是不同進程與程序之間有密切聯(lián)系,但又是不同的概念。二者的一個本質(zhì)區(qū)別是(的概念。二者的一
38、個本質(zhì)區(qū)別是( )。)。A程序是靜態(tài)概念,進程是動態(tài)概念程序是靜態(tài)概念,進程是動態(tài)概念 B程序是動態(tài)概念,進程是靜態(tài)概念程序是動態(tài)概念,進程是靜態(tài)概念C程序保存在文件中,進程存放在內(nèi)存中程序保存在文件中,進程存放在內(nèi)存中D程序順序執(zhí)行,進程并發(fā)執(zhí)行程序順序執(zhí)行,進程并發(fā)執(zhí)行2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系56C練習題練習題用戶在一次計算過程中,或者一次事物處用戶在一次計算過程中,或者一次事物處理中,要求計算機完成所做的工作的集合,理中,要求計算機完成所做的工作的集合,這是指(這是指( )。)。A.進程進程 B.程序程序 C.作業(yè)作業(yè) D.系統(tǒng)調(diào)用系統(tǒng)調(diào)用2022-5-3
39、山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系57錯!錯!作業(yè)一共有四種狀態(tài),其中的運行作業(yè)一共有四種狀態(tài),其中的運行狀態(tài)是指被調(diào)度進入內(nèi)存后的狀態(tài),此狀態(tài)是指被調(diào)度進入內(nèi)存后的狀態(tài),此時被稱作進程,因此,不管進程處于什時被稱作進程,因此,不管進程處于什么狀態(tài),都是作業(yè)的運行狀態(tài)。么狀態(tài),都是作業(yè)的運行狀態(tài)。判斷題判斷題當作業(yè)對應的進程阻塞時,該作業(yè)處于等當作業(yè)對應的進程阻塞時,該作業(yè)處于等待狀態(tài)。待狀態(tài)。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系58練習題練習題進程的基本狀態(tài)有執(zhí)行、進程的基本狀態(tài)有執(zhí)行、 和和 。批處理作業(yè)的基本狀態(tài)有運行、批處理作業(yè)的基本狀態(tài)有運行、 和和。其中,
40、。其中,運行運行 狀態(tài)包含了進程的等待狀狀態(tài)包含了進程的等待狀態(tài)。態(tài)。作業(yè)調(diào)度程序?qū)崿F(xiàn)了作業(yè)從作業(yè)調(diào)度程序?qū)崿F(xiàn)了作業(yè)從 狀態(tài)到執(zhí)行狀態(tài)到執(zhí)行狀態(tài)的轉(zhuǎn)換,而進程調(diào)度狀態(tài)的轉(zhuǎn)換,而進程調(diào)度 程序?qū)崿F(xiàn)了進程程序?qū)崿F(xiàn)了進程從從狀態(tài)到執(zhí)行狀態(tài)的轉(zhuǎn)換。狀態(tài)到執(zhí)行狀態(tài)的轉(zhuǎn)換。處于處于狀態(tài)的進程是不會獲得狀態(tài)的進程是不會獲得CPU的。的。 2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系59進程通信進程通信進程通信進程通信低級通信低級通信高級通信高級通信進程間競進程間競爭資源爭資源進程間相進程間相互合作互合作共享存儲共享存儲器系統(tǒng)器系統(tǒng)消息傳消息傳遞系統(tǒng)遞系統(tǒng)管道管道通信通信進程互斥進程互斥進程同步進
41、程同步信號量機制信號量機制信號量信號量集機制集機制記錄型信記錄型信號量機制號量機制整型信號整型信號量機制量機制管程機制管程機制基于基于共享共享數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)方式方式基于基于共享共享存儲存儲區(qū)方區(qū)方式式直接直接通信通信方式方式間接通間接通信方式信方式-信箱信箱通信通信2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系60進程的通信進程的通信低級通信進程同步低級通信進程同步簡單的信號交換(如:鎖、信號簡單的信號交換(如:鎖、信號量等,主要交換的是控制信號)量等,主要交換的是控制信號)高級通信進程通信高級通信進程通信高效、大量數(shù)據(jù)傳遞高效、大量數(shù)據(jù)傳遞2022-5-3山東農(nóng)業(yè)大學計算機系山東
42、農(nóng)業(yè)大學計算機系61進程通信的類型進程通信的類型共享存儲器系統(tǒng)共享存儲器系統(tǒng)消息傳遞系統(tǒng)消息傳遞系統(tǒng)管道通信系統(tǒng)管道通信系統(tǒng)2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系62 在共享存儲器系統(tǒng)中,相互通信的進程在共享存儲器系統(tǒng)中,相互通信的進程共享某些共享某些存儲區(qū)存儲區(qū),進程之間能夠通過這,進程之間能夠通過這些空間進行通信。些空間進行通信。共享存儲器系統(tǒng)共享存儲器系統(tǒng)向系統(tǒng)申請共享存儲區(qū)中的一個分區(qū)向系統(tǒng)申請共享存儲區(qū)中的一個分區(qū)指定該分區(qū)的關鍵字指定該分區(qū)的關鍵字如果已經(jīng)給其他進程分配了這樣的存儲區(qū),如果已經(jīng)給其他進程分配了這樣的存儲區(qū), 將使用分區(qū)的描述符返回給申請者將使用分區(qū)
43、的描述符返回給申請者申請者將申請到的共享分區(qū)掛到本進程上申請者將申請到的共享分區(qū)掛到本進程上2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系63 消息傳遞系統(tǒng):消息傳遞系統(tǒng):進程間的數(shù)據(jù)交換,以格進程間的數(shù)據(jù)交換,以格式化的消息為單位。式化的消息為單位。消息傳遞系統(tǒng)消息傳遞系統(tǒng)計算機網(wǎng)絡:計算機網(wǎng)絡:消息稱為報文。程序員直消息稱為報文。程序員直接利用系統(tǒng)提供的一組通信命令接利用系統(tǒng)提供的一組通信命令( (原語原語) )進行通信。進行通信。直接通信方式(消息緩沖機制)直接通信方式(消息緩沖機制)間接通信方式(信箱通信方式)間接通信方式(信箱通信方式)2022-5-3山東農(nóng)業(yè)大學計算機系山
44、東農(nóng)業(yè)大學計算機系64所謂所謂“管道管道”,是指用于連接,是指用于連接一個讀進程和一個寫進程以實一個讀進程和一個寫進程以實現(xiàn)他們之間通信的一個現(xiàn)他們之間通信的一個共享文共享文件,又名件,又名pipe文件。文件。管道通信管道通信2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系65試比較進程間的低級通信工試比較進程間的低級通信工具與高級通信工具具與高級通信工具 用戶用低級通信工具實現(xiàn)進程通信很用戶用低級通信工具實現(xiàn)進程通信很不方便,因為其效率低,通信對用戶不方便,因為其效率低,通信對用戶不透明,所有的操作都必須由程序員不透明,所有的操作都必須由程序員來實現(xiàn);來實現(xiàn); 高級通信工具則可彌補這
45、些缺陷,用高級通信工具則可彌補這些缺陷,用戶可直接利用操作系統(tǒng)所提供的一組戶可直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量的數(shù)據(jù)。通信命令,高效地傳送大量的數(shù)據(jù)。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系66在單處理機環(huán)境下,進程間在單處理機環(huán)境下,進程間有哪幾種通信方式有哪幾種通信方式? ? 共享存儲器系統(tǒng)通信方式共享存儲器系統(tǒng)通信方式; 消息傳遞系統(tǒng)通信方式消息傳遞系統(tǒng)通信方式; 管道通信方式管道通信方式. 2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系67B練習題練習題在進程通信中,使用信箱方式交換信息的在進程通信中,使用信箱方式交換信息的是(是( )。)
46、。A低級進程通信低級進程通信 B高級進程通信高級進程通信 C共享內(nèi)存方式共享內(nèi)存方式 D管道文件方式管道文件方式2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系68C練習題練習題在間接通信時,用在間接通信時,用Send(N,M)原語發(fā)送信原語發(fā)送信件,其中件,其中N表示:表示:A 發(fā)送信件的進程名發(fā)送信件的進程名B 接收信件的進程名接收信件的進程名C 信箱名信箱名D 信件內(nèi)容信件內(nèi)容2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系69B練習題練習題用信箱實現(xiàn)進程間通信時應該用信箱實現(xiàn)進程間通信時應該( ) A.由發(fā)送信件者設置信箱由發(fā)送信件者設置信箱 B.由接受信件者設置信箱由
47、接受信件者設置信箱 C.當信箱滿時讓接收者等信箱當信箱滿時讓接收者等信箱 D. 在在send原語中指出發(fā)送者名原語中指出發(fā)送者名2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系70消息緩沖通信機制有什么好處?消息緩沖通信機制有什么好處?試述消息緩沖通信的過程。試述消息緩沖通信的過程。 消息緩沖通信機制不僅能較好地解決進程間的同步互斥問消息緩沖通信機制不僅能較好地解決進程間的同步互斥問題,還能交換大量信息,是理想的進程通信工具;題,還能交換大量信息,是理想的進程通信工具; 操作系統(tǒng)隱藏了進程通信的實現(xiàn)細節(jié),即通信過程對用戶操作系統(tǒng)隱藏了進程通信的實現(xiàn)細節(jié),即通信過程對用戶是透明的,簡化了
48、通信程序編制上的復雜性。是透明的,簡化了通信程序編制上的復雜性。 實現(xiàn)過程:實現(xiàn)過程: 當某個進程需要向另一個進程發(fā)送消息時,便向系統(tǒng)申請當某個進程需要向另一個進程發(fā)送消息時,便向系統(tǒng)申請一個消息緩沖區(qū),并把要發(fā)送的數(shù)據(jù)送到消息緩沖區(qū),然一個消息緩沖區(qū),并把要發(fā)送的數(shù)據(jù)送到消息緩沖區(qū),然后把該消息緩沖區(qū)插入到接受進程的消息隊列中;后把該消息緩沖區(qū)插入到接受進程的消息隊列中; 接受進程在接受消息時,只要從本進程的消息隊列中摘下接受進程在接受消息時,只要從本進程的消息隊列中摘下該消息緩沖區(qū),即可從中取下所需的信息,然后把該消息該消息緩沖區(qū),即可從中取下所需的信息,然后把該消息緩沖區(qū)交還給系統(tǒng)。緩沖
49、區(qū)交還給系統(tǒng)。 2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系71試比較消息隊列與管道通信試比較消息隊列與管道通信機制機制 所謂管道,是指用于連接一個讀進程和一所謂管道,是指用于連接一個讀進程和一個寫進程、以實現(xiàn)它們之間通信的共享文個寫進程、以實現(xiàn)它們之間通信的共享文件,又稱件,又稱pipe文件。管道通信是屬于共享文件。管道通信是屬于共享存儲器系統(tǒng)的。存儲器系統(tǒng)的。 消息隊列通信機制屬于消息傳遞系統(tǒng)通信消息隊列通信機制屬于消息傳遞系統(tǒng)通信機制,存在通信鏈路,有消息的格式,有機制,存在通信鏈路,有消息的格式,有若干緩沖隊列,采用獨特的發(fā)送原語和接若干緩沖隊列,采用獨特的發(fā)送原語和接收原
50、語收原語.。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系72引入引入進程進程 的目的:的目的: 使多個程序能并發(fā)執(zhí)行,提高使多個程序能并發(fā)執(zhí)行,提高資源利用率資源利用率和系和系統(tǒng)統(tǒng)吞吐量吞吐量。引入引入線程線程 的目的:的目的: 減少程序在并發(fā)執(zhí)行時所付出的減少程序在并發(fā)執(zhí)行時所付出的時空開銷時空開銷,使,使操作系統(tǒng)具有更好的并發(fā)性。操作系統(tǒng)具有更好的并發(fā)性。線程的引入線程的引入2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系73線程的概念線程的概念 線程:進程中一個相對獨立的執(zhí)行流。線程:進程中一個相對獨立的執(zhí)行流。 進程與線程進程與線程 進程是資源分配單位進程是資源分配
51、單位 線程是線程是CPU執(zhí)行單位執(zhí)行單位 多線程優(yōu)點多線程優(yōu)點 切換速度快(地址空間不變)切換速度快(地址空間不變) 系統(tǒng)開銷小系統(tǒng)開銷小 通訊容易(共享數(shù)據(jù)空間)通訊容易(共享數(shù)據(jù)空間)2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系74資源擁有者資源擁有者執(zhí)行序列執(zhí)行序列進程控制塊進 程用戶地址空間用戶堆棧系統(tǒng)堆棧進程的抽象模型進程的抽象模型2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系75管理和執(zhí)行相分離的進程模型管理和執(zhí)行相分離的進程模型 用戶堆棧系統(tǒng)堆棧執(zhí)行控制進 程進程控制塊用戶地址空間共 享用戶堆棧系統(tǒng)堆棧執(zhí)行控制執(zhí)行序列執(zhí)行序列資源擁有者資源擁有者執(zhí)行序列執(zhí)行
52、序列2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系76進進 程程地址空間地址空間線線程程1 1共共 享享線線 程程空空 間間線線程程2 2線線程程n n線程的內(nèi)存布局線程的內(nèi)存布局2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系77內(nèi)核支持線程和用戶級線程 內(nèi)核支持線程,內(nèi)核支持線程,它們是依賴于內(nèi)核的,它們是依賴于內(nèi)核的,即無論是用戶進程中的線程,還是系統(tǒng)即無論是用戶進程中的線程,還是系統(tǒng)進程中的線程,它們的創(chuàng)建、撤消、切進程中的線程,它們的創(chuàng)建、撤消、切換都由內(nèi)核實現(xiàn)。換都由內(nèi)核實現(xiàn)。 用戶級線程,用戶級線程,對于這種線程的創(chuàng)建、撤對于這種線程的創(chuàng)建、撤消、和切換,都不用
53、系統(tǒng)調(diào)用來實現(xiàn)。消、和切換,都不用系統(tǒng)調(diào)用來實現(xiàn)。內(nèi)核并不知道用戶級線程的存在。內(nèi)核并不知道用戶級線程的存在。2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系78核心級線程(核心級線程(KLTKLT) 所有線程管理由核心完成所有線程管理由核心完成 沒有線程庫,但核心提供沒有線程庫,但核心提供APIAPI 核心維護進程和線程的上下文核心維護進程和線程的上下文 線程之間的切換需要核心支持線程之間的切換需要核心支持 以線程為基礎進行調(diào)度以線程為基礎進行調(diào)度 例子:例子:Windows 2000/XPWindows 2000/XP2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系79進程
54、進程線程線程核心棧核心棧進程表進程表用戶空間用戶空間系統(tǒng)空間系統(tǒng)空間TCB2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系80用戶級線程用戶級線程(ULT)(ULT) 實現(xiàn)方法:實現(xiàn)方法: 基于基于library函數(shù),系統(tǒng)不可見函數(shù),系統(tǒng)不可見 線程創(chuàng)建、撤銷、狀態(tài)轉(zhuǎn)換在目態(tài)完成線程創(chuàng)建、撤銷、狀態(tài)轉(zhuǎn)換在目態(tài)完成 TCB在用戶空間,每個進程一個系統(tǒng)棧在用戶空間,每個進程一個系統(tǒng)棧 優(yōu)點:優(yōu)點: 不依賴于操作系統(tǒng),調(diào)度靈活不依賴于操作系統(tǒng),調(diào)度靈活 切換無須從目態(tài)到管態(tài),速度快切換無須從目態(tài)到管態(tài),速度快 ULTULT可運行在任何操作系統(tǒng)上(只需要線程庫),可以在一個可運行在任何操作系統(tǒng)
55、上(只需要線程庫),可以在一個不支持線程的不支持線程的OSOS上實現(xiàn)上實現(xiàn) 缺點:缺點: 核心只將處理器分配給進程,核心只將處理器分配給進程,在多處理機中同一進程中多個在多處理機中同一進程中多個線程不能真正并行線程不能真正并行 一個線程進入系統(tǒng)受阻,進程中其它線程不能執(zhí)行一個線程進入系統(tǒng)受阻,進程中其它線程不能執(zhí)行2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系81運行時系統(tǒng)運行時系統(tǒng)TCB進程進程線程線程核心棧核心棧進程表進程表用戶空間用戶空間系統(tǒng)空間系統(tǒng)空間用戶級線程用戶級線程運行時系統(tǒng):用于管理和控制線程的函數(shù)集合。運行時系統(tǒng):用于管理和控制線程的函數(shù)集合。2022-5-3山東農(nóng)
56、業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系82線程庫線程庫提供線程運行管理系統(tǒng):提供線程運行管理系統(tǒng): 創(chuàng)建、撤消線程創(chuàng)建、撤消線程 在線程之間傳遞消息和數(shù)據(jù)在線程之間傳遞消息和數(shù)據(jù) 調(diào)度線程執(zhí)行調(diào)度線程執(zhí)行 保護和恢復線程上下文保護和恢復線程上下文2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系83用戶級線程和核心級線程用戶級線程和核心級線程2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系84用戶級線程與核心級線程的比較用戶級線程與核心級線程的比較用戶級線程用戶級線程(ULT)核心及線程核心及線程(KLT)管理管理線程庫線程庫內(nèi)核內(nèi)核調(diào)度單位調(diào)度單位進程進程線程線程切換速度切換速度同
57、一進程諸線程間切換,由線程同一進程諸線程間切換,由線程庫完成,速度較快庫完成,速度較快由內(nèi)核完成,速度較慢由內(nèi)核完成,速度較慢系統(tǒng)調(diào)用行為系統(tǒng)調(diào)用行為內(nèi)核看做是整個用戶進程的行為內(nèi)核看做是整個用戶進程的行為內(nèi)核只看做該線程的行為內(nèi)核只看做該線程的行為阻塞阻塞用戶進程用戶進程線程線程優(yōu)點優(yōu)點線程切換不調(diào)用內(nèi)核,切換速度線程切換不調(diào)用內(nèi)核,切換速度較快,調(diào)度算法可由應用程序定較快,調(diào)度算法可由應用程序定對多處理器,可同時調(diào)度同對多處理器,可同時調(diào)度同一進程的多個線程,速度較一進程的多個線程,速度較快,阻塞是在線程一級快,阻塞是在線程一級缺點缺點阻塞在用戶進程一級阻塞在用戶進程一級同一進程內(nèi)的線程切
58、換速度同一進程內(nèi)的線程切換速度較慢較慢2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系85例題 設進程設進程A擁有擁有1個用戶級線程,進程個用戶級線程,進程B擁有擁有100個用戶級線程,則在系統(tǒng)調(diào)度時各占用幾個時個用戶級線程,則在系統(tǒng)調(diào)度時各占用幾個時間片?間片?答:答:1 1個個 設進程設進程A擁有擁有1個內(nèi)核級線程,進程個內(nèi)核級線程,進程B擁有擁有100個內(nèi)核級線程,則在系統(tǒng)調(diào)度時各占用幾個時個內(nèi)核級線程,則在系統(tǒng)調(diào)度時各占用幾個時間片?間片?答:答:A:1A:1個個;B:100;B:100個個2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系86 在混合式線程系統(tǒng)中,內(nèi)核支
59、持在混合式線程系統(tǒng)中,內(nèi)核支持KLT多線程的多線程的建立、調(diào)度和管理;建立、調(diào)度和管理; 同時同時,也提供線程庫,允許用戶應用程序建立、也提供線程庫,允許用戶應用程序建立、調(diào)度和管理調(diào)度和管理ULT; 一個應用程序的多個一個應用程序的多個ULT映射成一些映射成一些KLT,程序程序員可按應用需要和機器配置調(diào)整員可按應用需要和機器配置調(diào)整KLT數(shù)目,以數(shù)目,以達到較好效果;達到較好效果; 混合式中,一個應用中的多個線程能同時在多混合式中,一個應用中的多個線程能同時在多處理器上并行運行,且阻塞一個線程時并不需處理器上并行運行,且阻塞一個線程時并不需要封鎖整個進程。如果設計得當?shù)脑?,則混合要封鎖整個進
60、程。如果設計得當?shù)脑?,則混合式多線程機制能夠結(jié)合了兩者優(yōu)點,并舍去它式多線程機制能夠結(jié)合了兩者優(yōu)點,并舍去它們的缺點。們的缺點?;旌暇€程混合線程2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系87P P線程庫線程庫P P3 3)混合式線程)混合式線程ULTULTKLTKLTProcessProcessP PP P1 1)內(nèi)核級線程)內(nèi)核級線程內(nèi)核空間內(nèi)核空間用戶空間用戶空間用戶空間用戶空間內(nèi)核空間內(nèi)核空間線程庫線程庫P P2 2)用戶級線程)用戶級線程用戶空間用戶空間內(nèi)核空間內(nèi)核空間線程實現(xiàn)方法線程實現(xiàn)方法2022-5-3山東農(nóng)業(yè)大學計算機系山東農(nóng)業(yè)大學計算機系88練習題練習題1 同一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年02月貴州省文學藝術(shù)界聯(lián)合會所屬事業(yè)單位公開招聘3人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 農(nóng)村地塊出租合同范本
- 2025年02月日照山海天旅游假區(qū)事業(yè)單位初級綜合類崗位人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 酒吧租合同范本
- 銅雕采購合同范本
- 停息掛賬定金合同范本
- 中藥進貨合同范本
- 課題開題報告:大中小學思政課一體化建設研究
- 再生塑料包裝材料行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 便攜式綜合急救藥品箱企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 康復科護士的康復護理計劃的個性化制定
- 2022年南京鐵道職業(yè)技術(shù)學院單招職業(yè)技能題庫及答案解析
- 項目一-旅游概述-(旅游概論課件完美版)
- 10G409預應力管樁圖集
- 《電視節(jié)目制作》課件
- 挖掘機司機培訓服務投標方案(技術(shù)標 )
- 小學生主題班會 愛國主義教育 課件(共35張PPT)
- 雇傭保姆免責協(xié)議7篇(通用)
- 水電站水輪機調(diào)速器及其附屬設備安裝施工技術(shù)方案
- XX大學學科競賽項目申請書
- 03S702鋼筋混凝土化糞池圖集
評論
0/150
提交評論