版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第二章 進程管理 第一節(jié):進程的概念前趨圖:是一個有向無循環(huán)圖。 前趨圖用于描述進程之間執(zhí)行的前后關系。 圖中的每個結點可用于描述一個程序段或進程,乃至一條語句; 結點間的有向邊則用于表示兩個結點之間存在的偏序或前趨關系“”。節(jié)點圖21(a) 中存在著這樣的前趨關系:P1P2, P1P3, P1P4, P2P5, P3P5, P4P6, P4P7, P5P8, P6P8, P7P9, P8P9圖 2-1 前趨圖 或表示為: P=P1, P2, P3, P4, P5, P6, P7, P8, P9= (P1, P2), (P1, P3), (P1, P4), (P2, P5), (P3, P5)
2、, (P4, P6), (P4, P7), (P5, P8), (P6, P8), (P7, P9), (P8, P9)應當注意,前趨圖中必須不存在循環(huán),但在圖2-1(b)中卻有著下述的前趨關系:S2S3, S3S2 圖 2-1 前趨圖 1 、程序的順序執(zhí)行圖 2-2 程序的順序執(zhí)行 S1: a=x+y;S2: b=a-5;S3: c=b+1;試想S1、S2、S3三條語句以何順序執(zhí)行?1 、程序的順序執(zhí)行程序順序執(zhí)行時的特征 順序性:(2) 封閉性(運行時候獨占處理機資源,運行結果不受外界影響)程序可再現(xiàn)性: (3) 可再現(xiàn)性(初始條件相同,結果相同)2、程序的并發(fā)執(zhí)行及其特征 2、程序的并發(fā)
3、執(zhí)行及其特征 2.1程序的并發(fā)執(zhí)行 圖 2-3 并發(fā)執(zhí)行時的前趨圖 在該例中存在下述前趨關系: IiCi,IiIi+1, CiPi, CiCi+1,PiPi+1而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之間,可以并發(fā)執(zhí)行。如何實現(xiàn)并發(fā)執(zhí)行?對于具有下述四條語句的程序段: S1: a=x+2 S2: b=y+4 S3: c=a+b S4: d=c+b 請畫出前趨關系圖。2.2 程序并發(fā)執(zhí)行時的特征 間斷性(相互制約性)后面的模塊等待前面的模塊 傳來的結果,然后才執(zhí)行(如打印模塊等待 計算模塊完成)。走走停停。 失去封閉性 :多個程序共享系統(tǒng)中的各種資源, 因而這些資源的
4、狀態(tài)將由多個程序來改變, 致使程序的運行已失去了封閉性。 結果是一個程序運行時會受到另一個程序的 影響。 不可再現(xiàn)性 :程序在并發(fā)執(zhí)行時,由于失去了封 閉性,也將導致失去其可再現(xiàn)性下面看個小例子: 例如,有兩個循環(huán)程序A和B,它們共享一個變量N。程序A每執(zhí)行一次時,都要做N=N+1操作;程序B每執(zhí)行一次時, 都要執(zhí)行Print(N)操作,然后再將N置成“0”。程序A和B以不同的速度運行。 (1) N=N+1在Print(N)和N=0之前,此時得到的N值分別為n+1, n+1, 0。 (2) N=N+1在Print(N)和N=0之后,此時得到的N值分別為n, 0, 1。 (3) N=N+1在Pr
5、int(N)和N=0之間,此時得到的N值分別為n, n+1, 0。 結論:程序在并發(fā)執(zhí)行時,由于失去了封閉性,其計算結果已經和并發(fā)執(zhí)行速度有關, 從而使程序失去了可再現(xiàn)性,亦即,程序經過多次執(zhí)行后,雖然他們執(zhí)行時的環(huán)境和初始條件相同,但得到的結果卻不相同。 順序執(zhí)行: 并發(fā)執(zhí)行:程序具有封閉性 程序失去封閉性獨享資源 共享資源(互為存在條件)可再現(xiàn)性 程序與“計算”不再一一對應有相互制約3 、進程(Process)3.1較典型的進程定義有:進程是程序的一次執(zhí)行。進程是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生 的活動。進程是程序在一個數(shù)據(jù)集合上運行的過程,它是系統(tǒng)進 行資源分配和調度的一個獨立
6、單位。進程是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生的活動。進程是程序在一個數(shù)據(jù)集合上運行的過程,它是系統(tǒng)進行資源分配和調度的一個獨立單位; 3.2 進程的組成:進程的實體由: 程序段、 數(shù)據(jù)段、 進程控制塊PCB組成。有人把這三部分稱為”進程映像”. 通常的程序是不能并發(fā)執(zhí)行的,為使程序能并發(fā)執(zhí)行,應為之配置一進程控制塊,即PCB; 所謂創(chuàng)建進程是指創(chuàng)建進程實體中的PCB,撤銷亦如此。1)結構化特征:含代碼段、數(shù)據(jù)段和核心段(在地址空間中) 2)動態(tài)性:進程的實質是進程實體的一次執(zhí)行過程,動態(tài)性是進程的最基本特征。3)并發(fā)性: 指多個進程實體同存于內存中,且能在一段時間內同時運行,它是進程
7、的重要特征,也是操作系統(tǒng)的重要特征。4)獨立性: 各進程的地址空間相互獨立,除非采用進程間通信手段;5)異步性:這是指進程按各自獨立的,不可預知的速度向前推進。導致程序執(zhí)行的不可再現(xiàn)性3.3進程的特征:1)程序是靜態(tài)的,進程是動態(tài)的;(是根本區(qū)別) 程序是有序代碼的集合;進程是程序的執(zhí)行。2)進程和程序不是一一對應的 ; 一個程序可對應多個進程,即多個進程可執(zhí)行同一程序 ; 一個進程可以執(zhí)行一個或幾個程序 3)進程是暫時的,程序的永久的:進程是一個狀態(tài)變化的過程,程序可長久保存。4)進程與程序的組成不同:進程的組成包括程序、數(shù)據(jù)和進程控制塊(即進程狀態(tài)信息)。5)進程具有創(chuàng)建其他進程的功能,而
8、程序沒有。3.4進程與程序的區(qū)別 程序與進程的類比 程 序 進 程 唱歌的曲譜或音樂樂器的樂譜 演出或演奏 劇本 演出 火車 列車 1、判斷題:進程是一個程序在某數(shù)據(jù)集上的一次執(zhí)行,所以不同進程對應不同的程序。分析:進程是程序在某數(shù)據(jù)集上得一次執(zhí)行,但是不同進程可以對應同一程序。2、程序順序執(zhí)行與并發(fā)執(zhí)行有什么不同?3、用戶程序必須在進程中運行。正確4、判斷題:兩次打開Word字處理程序,編輯同一篇文章,因為程序 一樣(Word 2003),數(shù)據(jù)一樣(同一篇文章),所以系統(tǒng)中運行的這兩個Word字處理程序是同一個進程。錯誤,運行的是2個不同的進程3.5處理機調度器(dispatcher)把處理
9、機從一個進程切換到另一個進程;防止某進程獨占處理機;處理機調度器(進程調度):是操作系統(tǒng)中的一段代碼,它完成如下功能:3.6 進程的三種基本狀態(tài) 1)就緒(Ready)狀態(tài):已分配到除CPU以外的所有必要的資源,只要能再獲得處理機,便可立即執(zhí)行的狀態(tài)。多個排成一隊稱為就緒隊列。 2) 執(zhí)行狀態(tài):指進程已獲得處理機,其程序正在執(zhí)行; 在單處理機系統(tǒng)中,只能有一個進程處于執(zhí)行狀態(tài); 在多處理機系統(tǒng)中,則可能多個進程處于執(zhí)行狀態(tài)。 3) 阻塞狀態(tài) :進程因發(fā)生某事件(如請求IO、申請緩沖空間等)而暫停執(zhí)行時的狀態(tài),亦即進程的執(zhí)行受到阻塞,故稱這種暫停狀態(tài)為阻塞狀態(tài),有時也稱為“等待”狀態(tài)或“睡眠”狀
10、態(tài)。 通常將處于阻塞狀態(tài)的進程排成一個隊列,稱為阻塞隊列。在有的系統(tǒng)中,按阻塞原因的不同而將處于阻塞狀態(tài)的進程排成多個隊列。圖 2-5 進程的三種基本狀態(tài)及其轉換(教材講5種) 結束新進程接納完成作業(yè)后備隊列進程就緒隊列 外存 內存 作業(yè)調度一些處理器(CPU)阻塞隊列阻塞隊列3.7五狀態(tài)進程模型五狀態(tài)進程模型(狀態(tài)變遷)五狀態(tài)進程模型(單隊列結構)五狀態(tài)進程模型(多隊列結構)3.8 進程狀態(tài)的轉換 新(New)狀態(tài)就緒狀態(tài)。 (2)就緒(Ready)狀態(tài)執(zhí)行狀態(tài)。 (3)執(zhí)行狀態(tài)阻塞狀態(tài)。 (4)阻塞狀態(tài)就緒狀態(tài)。(5)執(zhí)行狀態(tài)就緒狀態(tài)3.9掛起進程模型這個問題的出現(xiàn)是由于進程優(yōu)先級的引入,
11、一些低優(yōu)先級進程可能等待較長時間,從而被對換至外存。這樣做的目的是:提高處理機效率:就緒進程表為空時,要提交新進程,以提高處理機效率;為運行進程提供足夠內存:資源緊張時,暫停某些進程,如:CPU繁忙(或實時任務執(zhí)行),內存緊張用于調試:在調試時,掛起被調試進程(從而對其地址空間進行讀寫)單掛起進程模型雙掛起進程模型內存外存3.9.1 狀態(tài)就緒狀態(tài)(Ready):進程在內存且可立即進入運行狀態(tài);阻塞狀態(tài)(Blocked):進程在內存并等待某事件的出現(xiàn);阻塞掛起狀態(tài)(Blocked, suspend):進程在外存并等待某事件的出現(xiàn);就緒掛起狀態(tài)(Ready, suspend):進程在外存,但只要進
12、入內存,即可運行;注:這里只列出了意義有變化或新的狀態(tài)。3.9.2轉換掛起(Suspend):把一個進程從內存轉到外存;可能有以下幾種情況:阻塞到阻塞掛起:沒有進程處于就緒狀態(tài)或就緒進程要求更多內存資源時,會進行這種轉換,以提交新進程或運行就緒進程;就緒到就緒掛起:當有高優(yōu)先級阻塞(系統(tǒng)認為會很快就緒的)進程和低優(yōu)先級就緒進程時,系統(tǒng)會選擇掛起低優(yōu)先級就緒進程;運行到就緒掛起:對搶占式分時系統(tǒng),當有高優(yōu)先級阻塞掛起進程因事件出現(xiàn)而進入就緒掛起時,系統(tǒng)可能會把正運行的進程轉到就緒掛起狀態(tài);激活(Activate):把一個進程從外存轉到內存;可能有以下幾種情況:就緒掛起到就緒:沒有就緒進程或掛起就
13、緒進程優(yōu)先級高于就緒進程時,會進行這種轉換;阻塞掛起到阻塞:當一個進程釋放足夠內存時,系統(tǒng)會把一個高優(yōu)先級阻塞掛起(系統(tǒng)認為會很快出現(xiàn)所等待的事件)進程變成阻塞狀態(tài);事件出現(xiàn)(Event Occurs):進程等待的事件出現(xiàn);如:操作完成、申請成功等;可能的情況有:阻塞到就緒:針對內存進程的事件出現(xiàn);阻塞掛起到就緒掛起:針對外存進程的事件出現(xiàn);收容(Admit):收容(提交)一個新進程,進入就緒狀態(tài)或就緒掛起狀態(tài)。1、進程由就緒態(tài)轉為運行態(tài)是因為()引起的?A、中斷事件 b、進程狀態(tài)轉換c、進程調度的d、為程序創(chuàng)建進程C2、分配到必要的資源并獲得處理機的進程狀態(tài)是( )。 運行態(tài)3、當( ),進
14、程從執(zhí)行狀態(tài)轉變?yōu)榫途w狀態(tài)。 a、進程被調度程序選中 b、時間片到 c、等待某一事件 d、等待的時間發(fā)生B4、判斷題:兩次打開Word字處理程序,編輯同一篇文章,因為程序 一樣(Word 2003),數(shù)據(jù)一樣(同一篇文章),所以系統(tǒng)中運行的這兩個Word字處理程序是同一個進程。3.10、進程控制塊 3.10.1. 進程控制塊的作用 或者說:OS是根據(jù)PCB來對并發(fā)執(zhí)行的進程進行控制和管理的。簡單題:進程控制塊的作用(要擴展)?判斷題:進程控制塊是進程存在的唯一標志。進程控制塊是由OS維護的用來記錄進程相關信息的一塊內存。正確3.10.2進程控制塊的內容(數(shù)據(jù)結構很復雜)進程標識符:內部進程標識
15、符(process ID),唯一,通常是一個整數(shù);進程名(外部標識符),通?;诳蓤?zhí)行文件名(不唯一);用戶標識符(user ID);進程組關系(process group)進程控制信息:當前狀態(tài);優(yōu)先級(priority);代碼執(zhí)行入口地址;程序的外存地址;運行統(tǒng)計信息(執(zhí)行時間、頁面調度);進程間同步和通信;阻塞原因進程調度信息:進程狀態(tài)、進程優(yōu)先級、資源信息等處理機狀態(tài):寄存器值(通用、程序計數(shù)器PC、狀態(tài)PSW,地址包括棧指針)3.10.3 PCB的組織方式鏈表:同一狀態(tài)的進程其PCB成一鏈表,多個狀態(tài)對應多個不同的鏈表各狀態(tài)的進程形成不同的鏈表:就緒鏈表、阻塞鏈表索引表:同一狀態(tài)的進
16、程歸入一個index表(由index指向PCB),多個狀態(tài)對應多個不同的index表各狀態(tài)的進行形成不同的索引表:就緒索引表、阻塞索引表把具有相同狀態(tài)的PCB,用其中的鏈接字,鏈接成一個隊列。4、進程控制返回4.1 進程控制的功能:完成進程狀態(tài)的轉換。原語(primitive):由若干條指令構成的“原子操作(atomic operation)”過程,作為一個整體而不可分割要么全都完成,要么全都不做。許多系統(tǒng)調用就是原語。注意:系統(tǒng)調用并不都是原語。進程A調用read(),因無數(shù)據(jù)而阻塞,在read()里未返回。然后進程B調用read(),此時read()被重入。系統(tǒng)調用不一定一次執(zhí)行完并返回該
17、進程,有可能在特定的點暫停,而轉入到其他進程。4.2.1 進程圖(Process Graph) 圖 2-9 進程樹 用于描述進程家族關系的有向樹。圖中的結點代表進程 。父進程 :在進程Pi創(chuàng)建了進程Pj后,稱Pi是Pj的父進程。子進程:在進程Pi創(chuàng)建了進程Pj后,稱Pj是Pi的子進程。4.2 進程的創(chuàng)建4.2.2 引起創(chuàng)建進程的事件 用戶登錄。 (2) 作業(yè)調度。 (3) 提供服務。 (4) 應用請求。 4.2.3 進程的創(chuàng)建(Creation of Progress)過程 (1)申請空白PCB。 (2) 為新進程分配資源。 (分配內存空間) (3) 初始化進程控制塊。 (4) 將新進程插入就
18、緒隊列,如果進程就緒隊列能夠接納新進程, 便將新進程插入就緒隊列。 4.3 進程退出也稱為“終止”或主程序返回:調用exit()可終止進程。釋放資源:釋放內外存空間關閉所有打開文件釋放共享內存段和各種鎖定lock4.4 進程的阻塞與喚醒4.4.1 引起進程阻塞和喚醒的事件請求系統(tǒng)服務 2) 啟動某種操作 3) 新數(shù)據(jù)尚未到達 4) 無新工作可做 4.4.2. 進程阻塞過程 正在執(zhí)行的進程,當發(fā)現(xiàn)上述某事件時,無法繼續(xù)執(zhí)行,于是進程調用阻塞原語block把自己阻塞??梢?,進程的阻塞是進程自身的一種主動行為。進入block過程后,由于此時該進程還處于執(zhí)行狀態(tài),所以應先立即停止執(zhí)行,把進程控制塊中的
19、現(xiàn)行狀態(tài)由“執(zhí)行”改為阻塞,并將PCB插入阻塞隊列。如果系統(tǒng)中設置了因不同事件而阻塞的多個阻塞隊列,則應將本進程插入到具有相同事件的阻塞(等待)隊列。 最后,轉調度程序進行重新調度,將處理機分配給另一就緒進程,并進行切換。 4.4.3 進程喚醒過程 當被阻塞進程所期待的事件出現(xiàn)時,如I/O完成或其所期待的數(shù)據(jù)已經到達,則由有關進程(比如,用完并釋放了該I/O設備的進程)調用喚醒原語wakeup( ),將等待該事件的進程喚醒。喚醒原語執(zhí)行的過程是:首先把被阻塞的進程從等待該事件的阻塞隊列中移出,將其PCB中的現(xiàn)行狀態(tài)由阻塞改為就緒,然后再將該PCB插入到就緒隊列中。 4.5 進程的掛起與激活 引
20、起進程掛起的事件:4.5.1. 進程的掛起掛起原語的執(zhí)行過程是:首先檢查被掛起進程的狀態(tài),若處于活動就緒狀態(tài),便將其改為靜止就緒;對于活動阻塞狀態(tài)的進程,則將之改為靜止阻塞。 最后,若被掛起的進程正在執(zhí)行,則轉向調度程序重新調度。-或父進程請求將自己的某個子進程掛起,-系統(tǒng)將利用掛起原語suspend( )將指定進程或處于阻塞狀態(tài)的進程掛起。-用戶進程請求將自己掛起;4.5.2. 進程的激活過程系統(tǒng)將利用激活原語active( )將指定進程激活。 激活原語先將進程從外存調入內存,檢查該進程的現(xiàn)行狀態(tài),若是靜止就緒,便將之改為活動就緒;若為靜止阻塞便將之改為活動阻塞。例: NT線程的掛起和激活N
21、T中處理機的分配對象為線程,一個線程可被多次掛起和多次激活。在線程內有一個掛起計數(shù)(suspend count),掛起操作使該計數(shù)加1,激活操作將該計數(shù)減1;當掛起計數(shù)為0時,線程恢復執(zhí)行。(1) 掛起:Windows NT中的SuspendThread可掛起指定的線程; DWORD SuspendThread( HANDLE hThread / handle to the thread ); (2) 激活:Windows NT中的ResumeThread可恢復指定線程的執(zhí)行; DWORD ResumeThread( HANDLE hThread / identifies thread to
22、restart ); 例子NT_thread.cpp#include #include #include #include void SubThread(void)int i;for (i=0;i5;i+)cout SubThread i endl;Sleep(2000);void main(void) cout CreateThread endl;/ Create a thread;DWORD IDThread; HANDLE hThread;hThread = CreateThread(NULL, / no security attributes 0, / use default stac
23、k size (LPTHREAD_START_ROUTINE) SubThread, / thread function NULL, / no thread function argument 0, / use default creation flags &IDThread); / returns thread identifier / Check the return value for success. if (hThread = NULL)cout CreateThread error endl;int i;for (i=0;i5;i+)cout MainThread i endl;i
24、f (i=1) if (SuspendThread(hThread)=0 xFFFFFFFF)cout Suspend thread error. endl;elsecout Suspend thread is ok. endl;if (i=3)if (ResumeThread(hThread)=0 xFFFFFFFF)cout Resume thread error. endl;elsecout Resume thread is ok. endl;Sleep(4000);運行結果CreateThreadMainThread0SubThread0SubThread1MainThread1Sus
25、pend thread is ok.MainThread2MainThread3Resume thread is ok.SubThread2SubThread3MainThread4SubThread4例子 NT_thread.cpp#include #include #include #include void SubThread(void)int i;for (i=0;i5;i+)cout SubThread i endl;Sleep(2000);/改一下時間,輸出順序會有變化此處是用戶自己的函數(shù),完成指定功能void main(void) cout CreateThread endl;/
26、 Create a thread;DWORD IDThread; HANDLE hThread;hThread = CreateThread(NULL, / no security attributes 0, / use default stack size (LPTHREAD_START_ROUTINE) SubThread, / thread function NULL, / no thread function argument 0, / use default creation flags &IDThread); / returns thread identifier / Check
27、the return value for success. if (hThread = NULL)cout CreateThread error endl;int i;for (i=0;i5;i+)cout MainThread i endl;if (i=1) if (SuspendThread(hThread)=0 xFFFFFFFF)cout Suspend thread error. endl;elsecout Suspend thread is ok. endl;if (i=3)if (ResumeThread(hThread)=0 xFFFFFFFF)cout Resume thre
28、ad error. endl;elsecout Resume thread is ok. endl;Sleep(4000);/改一下結果會有變化。運行結果CreateThreadMainThread0/輸出后。 Sleep(4000)SubThread0/輸出后,Sleep(2000)SubThread1 /輸出后,Sleep(2000)MainThread1/輸出后。 Sleep(4000)Suspend thread is ok.MainThread2MainThread3Resume thread is ok. /輸出后。 Sleep(4000)SubThread2SubThread3M
29、ainThread4SubThread4進程創(chuàng)建后只要通過進程調度獲得cpu,就自動執(zhí)行!5 線程(THREAD)返回引入線程的目的是簡化進程間的通信,以小的開銷來提高進程內的并發(fā)程度。5.1 線程的引入進程:資源分配單位(存儲器、文件)和CPU調度(分派)單位-未引入線程時。又稱為“任務(task)“ 線程:作為CPU調度單位,而引入線程后進程只作為其他資源分配單位。只擁有必不可少的資源,如:線程狀態(tài)、寄存器上下文和棧同樣具有就緒、阻塞和執(zhí)行三種基本狀態(tài)線程的優(yōu)點:減小并發(fā)執(zhí)行的時間和空間開銷(線程的創(chuàng)建、退出和調度),因此容許在系統(tǒng)中建立更多的線程來提高并發(fā)程度。線程的創(chuàng)建時間比進程短;線
30、程的終止時間比進程短;同進程內的線程切換時間比進程短;由于同進程內線程間共享內存和文件資源,可直接進行不通過內核的通信;進程與線程的關系5.2 線程的屬性 線程具有許多傳統(tǒng)進程所具有的特征,故又稱為輕型進程(1)輕型實體。(線程是進程中的一個實體 )(2) 獨立調度和分派的基本單位。在多線程OS中,線程是能獨立運行的基本單位,因而也是獨立調度和分派的基本單位。而把進程作為資源擁有的單位。由于線程很“輕,故線程的切換非常迅速且開銷小。(3) 可并發(fā)執(zhí)行。 (4) 共享進程資源。5.3 OS對線程的實現(xiàn)方式內核維護進程和線程的上下文信息;線程切換由內核完成;一個線程發(fā)起系統(tǒng)調用而阻塞,不會影響其他
31、線程的運行。時間片分配給線程,所以多線程的進程獲得更多CPU時間。依賴于OS核心,由內核的內部需求進行創(chuàng)建和撤銷,用來執(zhí)行一個指定的函數(shù)。Windows NT和OS/2支持內核線程;1)內核線程(kernel-level thread)2)用戶線程(user-level thread)用戶線程的維護由應用進程完成;內核不了解用戶線程的存在;用戶線程切換不需要內核特權;用戶線程調度算法可針對應用優(yōu)化;不依賴于OS核心,應用進程利用線程庫提供創(chuàng)建、同步、調度和管理線程的函數(shù)來控制用戶線程。如:數(shù)據(jù)庫系統(tǒng)informix,圖形處理Aldus PageMaker。調度由應用軟件內部進行,通常采用非搶先
32、式和更簡單的規(guī)則,也無需用戶態(tài)/核心態(tài)切換,所以速度特別快。一個線程發(fā)起系統(tǒng)調用而阻塞,則整個進程在等待。時間片分配給進程,多線程則每個線程就慢。 例:線程執(zhí)行時間 對于只設置了用戶級線程的系統(tǒng),調度是以進程為單位的,在采用輪轉調度算法時,各個進程輪流執(zhí)行一個時間片,這對諸進程而言,看似公平的,但假如在A進程中包含了一個用戶級線程,而在另一個進程B中含有100個線程,這樣,進程A中線程的運行時間,將是進程B中線程運行時間的100倍;相應地,速度就快100倍。 假如系統(tǒng)中是設置的內核支持線程,其調度是以線程為單位進行的,這樣,進程B可以獲得的CPU時間是進程A的100倍,進程B可使100個系統(tǒng)調用并發(fā)工作。5.3 Solaris操作系統(tǒng)中的線程同時實現(xiàn)了用戶級線程與內核支持線程。 SUN Solaris OS在用戶級線程和內核級線程之間,定義了一種輕型進程LWP(內核控制線程,也稱為輕權進程),一個進程中至少有一個LWP。Solaris支持內核線程(Kernel threads)、輕權進程(Lightweight Processes)和用戶線程(User Level Threads)。一個進程可有大量用戶線程;大量用戶線程復用少量的輕權進程,不同的輕權進程分別對應不同的內核線程。用戶級線程在使用系統(tǒng)調用時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代網絡技術企業(yè)管理的重要支撐
- 18《書湖陰先生壁》說課稿-2024-2025學年統(tǒng)編版語文六年級上冊
- Unit1 Nature Grammar in Use 3說課稿-2024-2025學年高中英語上外版必修第二冊
- Unit 2 Different families Part B Let's learn(說課稿)-2024-2025學年人教PEP版(2024)英語三年級上冊001
- 8 我們離不開呼吸 說課稿-2023-2024學年科學三年級下冊粵教粵科版
- 7我是班級值日生 第一課時 ( 說課稿)統(tǒng)編版道德與法治二年級上冊
- 2024年九年級化學上冊 5.1 質量守恒定律說課稿(pdf)(新版)新人教版
- 2024年五年級英語上冊 Unit 1 My family Again,Please說課稿 冀教版(三起)
- 27我的伯父魯迅先生(說課稿)-2024-2025學年統(tǒng)編版語文六年級上冊
- 2025勞動合同變更的條件
- 江蘇省蘇州市2024-2025學年高三上學期1月期末生物試題(有答案)
- 銷售與銷售目標管理制度
- 特殊教育學校2024-2025學年度第二學期教學工作計劃
- 2025年第一次工地開工會議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭課件-人教版高中歷史必修一
- 對口升學語文模擬試卷(9)-江西省(解析版)
- 糖尿病高滲昏迷指南
- 【公開課】同一直線上二力的合成+課件+2024-2025學年+人教版(2024)初中物理八年級下冊+
- 南京信息工程大學《教師領導力》2021-2022學年第一學期期末試卷
- 信息科技大單元教學設計之七年級第三單元便捷的互聯(lián)網服務
- 急性心梗課件
評論
0/150
提交評論