




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 前一頁 休息計算機操作系統計算機操作系統第三章第三章 進程管理進程管理 前一頁 休息本章主要內容(續)本章主要內容(續)l3.7進程通信進程通信l3.8死鎖問題死鎖問題l3.9線程線程 前一頁 休息3.7進程通信進程通信l進程通信(進程通信(communicationcommunication):):定義:定義:簡單地說,就是進程間的信息交換。簡單地說,就是進程間的信息交換。分類:分類:低級通信:進程間低級通信:進程間控制控制信息的交換。信息的交換。u信號量及鎖變量只能傳遞信號信號量及鎖變量只能傳遞信號,沒有數據轉送能力。沒有數據轉送能力。高級通信:進程間大批量信息高級通信:進程間大批量信息
2、(數據數據)的交換。的交換。u高級通信的目的不是為了控制進程的執行速度,高級通信的目的不是為了控制進程的執行速度,而是為了交換信息。而是為了交換信息。進程通信進程通信 前一頁 休息進程的通信方式進程的通信方式l 主從式主從式 主進程主進程可自由使用可自由使用從進程從進程的資源或數據;的資源或數據; 從進程動作受主進程的控制;從進程動作受主進程的控制; 主進程和從進程關系固定。主進程和從進程關系固定。 l 會話式 使用進程使用進程在使用在使用服務進程服務進程所提供的服務之所提供的服務之前,必須得到服務進程的許可;前,必須得到服務進程的許可; 服務進程根據使用進程的請求提供服務,服務進程根據使用進
3、程的請求提供服務,但對所提供服務的控制由服務進程自身完成;但對所提供服務的控制由服務進程自身完成; 通信時連接關系固定。通信時連接關系固定。進程通信進程通信 前一頁 休息進程的通信方式進程的通信方式l消息或郵箱機制消息或郵箱機制 消息:消息:區別于命令或指令,一方面表示有大量信息,區別于命令或指令,一方面表示有大量信息,另一方面表示互相通信進程的平等。另一方面表示互相通信進程的平等。只要存在空緩沖區或郵箱,發送進程可發送消息;只要存在空緩沖區或郵箱,發送進程可發送消息;發送進程和接收進程之間沒有直接聯系,與會話式發送進程和接收進程之間沒有直接聯系,與會話式不同;不同;存在緩沖區或郵箱存放消息。
4、存在緩沖區或郵箱存放消息。進程通信進程通信 前一頁 休息進程的通信方式進程的通信方式l共享存儲方式共享存儲方式 不要求數據移動,兩個需要互相交換信息的不要求數據移動,兩個需要互相交換信息的進程通過對同一共享數據區的操作來達到互進程通過對同一共享數據區的操作來達到互相通信的目的。相通信的目的。 這個共享數據區是每個互相通信的進程的組這個共享數據區是每個互相通信的進程的組成部分。成部分。進程通信進程通信 前一頁 休息消息緩沖機制消息緩沖機制l消息緩沖機制的基本思想消息緩沖機制的基本思想:根據生產者與消費者關系原理根據生產者與消費者關系原理,利用內存的共用消息利用內存的共用消息緩沖池實現進程之間的信
5、息交換。緩沖池實現進程之間的信息交換。消息緩沖區是指含有如下信息的緩沖區消息緩沖區是指含有如下信息的緩沖區:指向發送進程的指針指向發送進程的指針指向下一個消息緩沖區的指針指向下一個消息緩沖區的指針消息長度消息長度消息正文消息正文消息緩沖區消息緩沖區作為進程通信的一個基本單位作為進程通信的一個基本單位,即每當發即每當發送進程欲發送消息時送進程欲發送消息時,便申請并形成一個消息緩沖區便申請并形成一個消息緩沖區,并并發送給指定的接收進程。發送給指定的接收進程。進程通信進程通信 前一頁 休息消息緩沖機制消息緩沖機制l消息緩沖機制的實現過程消息緩沖機制的實現過程:發送進程發送進程在發送消息前,先在自己的
6、內存空間設在發送消息前,先在自己的內存空間設置一個置一個始地址為始地址為a a的消息的消息發送區,把欲發送的消息填發送區,把欲發送的消息填入其中,然后再用發送過程入其中,然后再用發送過程send (Bsend (B,a)a)將其發送將其發送到緩沖區。到緩沖區。接收進程接收進程則在接收消息之前,在自己的內存空間則在接收消息之前,在自己的內存空間內設置內設置一個始地址為一個始地址為b b的消息接收區的消息接收區,然后用接收過,然后用接收過程程receive (b)receive (b)接收緩沖區內的消息。接收緩沖區內的消息。注:由于接收進程可能接收到多個進程發來的多個注:由于接收進程可能接收到多個
7、進程發來的多個消息緩沖區消息緩沖區,故它將所有的消息緩沖區連接成一個故它將所有的消息緩沖區連接成一個消息隊列消息隊列,其隊列頭由接收進程其隊列頭由接收進程PCB中的消息隊列中的消息隊列頭指針給出。頭指針給出。進程通信進程通信 前一頁 休息消息緩沖機制消息緩沖機制l消息緩沖機制的實現過程消息緩沖機制的實現過程:進程通信進程通信 消息緩沖通信過程sender:Asize:5text:Hellomqmutexsmsender:Asize:5text:Hellonext:0send (B, a)第一消息緩沖區sender:Asize:5text:Helloreceive (b)a發送區ab接收區b進程
8、BPCB(B)進程A 前一頁 休息消息緩沖機制消息緩沖機制l通信進程通信進程必須滿足如下條件必須滿足如下條件:在發送進程把消息寫入緩沖區和把緩沖區掛入消息隊在發送進程把消息寫入緩沖區和把緩沖區掛入消息隊列時,應禁止其他進程對列時,應禁止其他進程對該消息緩沖區隊列該消息緩沖區隊列的訪問。的訪問。否則,將引起消息隊列的混亂。同理,當接收進程正否則,將引起消息隊列的混亂。同理,當接收進程正從消息隊列中取消息緩沖區消息時,也應禁止其他進從消息隊列中取消息緩沖區消息時,也應禁止其他進程對該隊列的訪問。程對該隊列的訪問。 間接制約間接制約設置公用信號量設置公用信號量: mutex ,其初值為,其初值為1
9、。當當消息緩沖區隊列消息緩沖區隊列中無消息存在時,接收進程不能接中無消息存在時,接收進程不能接收到任何消息。收到任何消息。 直接制約直接制約設置私用信號量設置私用信號量:SM為接收進程的私用信號量,表示等待接收為接收進程的私用信號量,表示等待接收的消息個數,其初值為的消息個數,其初值為0 。進程通信進程通信 前一頁 休息消息緩沖機制消息緩沖機制l進程之間通信的實現進程之間通信的實現:進程通信進程通信向系統申請一個消息緩向系統申請一個消息緩沖區沖區將發送區消息將發送區消息m送入新送入新申請的消息緩沖區申請的消息緩沖區把消息緩沖區掛入接收把消息緩沖區掛入接收進程的消息隊列進程的消息隊列摘下消息隊列
10、中的消息摘下消息隊列中的消息n 將消息將消息n從緩沖區復制到從緩沖區復制到接收區接收區釋放緩沖區釋放緩沖區開始開始結束結束開始開始結束結束臨界區臨界區P(mutex)V(mutex)臨界區臨界區P(mutex)V(mutex)P(SM)V(SM)Send(m):Receive(n): 前一頁 休息郵箱通信郵箱通信進程通信進程通信l郵箱通信的基本思想郵箱通信的基本思想:郵箱通信是由發送進程申請建立一個與接收進程連接郵箱通信是由發送進程申請建立一個與接收進程連接的郵箱的郵箱,發送進程把消息送往郵箱發送進程把消息送往郵箱,接收進程從郵箱取走接收進程從郵箱取走消息消息,從而完成進程間信息交換從而完成進
11、程間信息交換。郵箱由郵箱頭和郵箱體組成。其中郵箱頭描述郵箱名郵箱由郵箱頭和郵箱體組成。其中郵箱頭描述郵箱名稱、郵箱大小、郵箱方向以及擁有該郵箱的進程名等。稱、郵箱大小、郵箱方向以及擁有該郵箱的進程名等。郵箱體主要用來存放消息(如圖)郵箱體主要用來存放消息(如圖) 。設置郵箱的最大好處就設置郵箱的最大好處就是發送進程和接收進程是發送進程和接收進程之間沒之間沒有處理時間上的限制有處理時間上的限制(消息緩沖需要互斥使用消息隊列消息緩沖需要互斥使用消息隊列)。 前一頁 休息郵箱通信郵箱通信進程通信進程通信l注注:一個郵箱可以考慮成發送進程與接收進程之間的大小一個郵箱可以考慮成發送進程與接收進程之間的大
12、小固定的私有數據結構。固定的私有數據結構。它不像緩沖區那樣被系統內所有進程共享。它不像緩沖區那樣被系統內所有進程共享。 前一頁 休息進程通信進程通信l兩通信進程之間的關系兩通信進程之間的關系:發送進程發送消息時,郵箱中至少要有一個空格能發送進程發送消息時,郵箱中至少要有一個空格能存放該消息。存放該消息。接收進程接收消息時,郵箱中至少要有一個消息存接收進程接收消息時,郵箱中至少要有一個消息存在。在。即即發送進程與接收進程間存在著發送進程與接收進程間存在著直接制約直接制約。發送進程的私用信號量發送進程的私用信號量: nullnum表示郵箱中空格表示郵箱中空格個數個數,初值為信箱的空格數初值為信箱的
13、空格數 n 。接收進程的私用信號量接收進程的私用信號量: fullnum表示郵箱中消息個表示郵箱中消息個數數,初值為初值為0 。 前一頁 休息郵箱通信郵箱通信l實現(兩個進程通信):實現(兩個進程通信):設發送進程調用過程設發送進程調用過程 deposit(m)將消息發送到郵箱,接收進程調將消息發送到郵箱,接收進程調用過程用過程remove(m)將消息將消息m 從郵箱中取出。從郵箱中取出。 進程通信進程通信deposit(m):begin local x(nullnum)選擇空格選擇空格x將消息將消息m放入空格放入空格x中中置格置格x的標志為滿的標志為滿(fullnum)endremove(m
14、):begin local x(fullnum)選擇滿格選擇滿格x把滿格把滿格x中的消息取出中的消息取出置格置格x標志為空標志為空(nullnum)end 前一頁 休息3.8死鎖定義死鎖定義l定義:各并發進程彼此互相等待對方所擁有的定義:各并發進程彼此互相等待對方所擁有的資源,且這些進程在得到對方的資源之前不會釋資源,且這些進程在得到對方的資源之前不會釋放自己所擁有的資源,從而造成并發進程不能繼放自己所擁有的資源,從而造成并發進程不能繼續向前推進的狀態。續向前推進的狀態。 若死鎖只存在于部分進程中,稱系統發生了若死鎖只存在于部分進程中,稱系統發生了局部死鎖局部死鎖;若系統中所有進程都出現了死鎖
15、,則;若系統中所有進程都出現了死鎖,則稱系統發生了稱系統發生了全局死鎖全局死鎖。死鎖死鎖 前一頁 休息死鎖的起因死鎖的起因 死鎖的死鎖的起因起因是并發進程的資源競爭是并發進程的資源競爭,而而根本原根本原因因在于系統提供的資源個數少于并發進程所要求的在于系統提供的資源個數少于并發進程所要求的該類資源數。該類資源數。死鎖死鎖S3P3S1P2P1S2P1P3P2請求請求S3S3產生產生S1S1請求請求S2S2產生產生S3S3請求請求S1S1產生產生S2S2l系統資源不足系統資源不足l進程推進順序非法進程推進順序非法 前一頁 休息死鎖發生的必要條件死鎖發生的必要條件l互斥條件互斥條件:一個資源在某一時
16、刻只能分配給一個進程。若一個資源在某一時刻只能分配給一個進程。若一個進程申請某資源時,該資源被另一進程占用,一個進程申請某資源時,該資源被另一進程占用,則申請者等待,直到占有者釋放該資源時才可能則申請者等待,直到占有者釋放該資源時才可能獲得。獲得。l部分分配部分分配:進程在占用部分資源后,運行時還可以申請其進程在占用部分資源后,運行時還可以申請其余的資源,而且在申請其余資源時并不釋放已占余的資源,而且在申請其余資源時并不釋放已占用的資源。用的資源。死鎖死鎖 前一頁 休息死鎖發生的必要條件死鎖發生的必要條件l不剝奪條件:不剝奪條件:已分配給進程的資源不可被剝奪,只能被已分配給進程的資源不可被剝奪
17、,只能被占有者自行釋放。占有者自行釋放。l環路條件:環路條件:系統中存在著一條由兩個系統中存在著一條由兩個或兩個以上的進程組成的循或兩個以上的進程組成的循環鏈,鏈中的每個進程都在環鏈,鏈中的每個進程都在等待相鄰進程已占用的資源。等待相鄰進程已占用的資源。死鎖死鎖S3P3S1P2P1S2 P1P3 P2請求請求S3S3產生產生S1S1請求請求S2S2產生產生S3S3請求請求S1S1產生產生S2S2 前一頁 休息解決死鎖的方法解決死鎖的方法l 預防預防 采用某種策略使得死鎖的必要條件在系統執行的任何采用某種策略使得死鎖的必要條件在系統執行的任何時間都得不到滿足。時間都得不到滿足。l 避免避免 可稱
18、為可稱為動態預防動態預防,是指在系統分配資源時,根據資源,是指在系統分配資源時,根據資源的使用情況提前作出預測,從而避免死鎖發生。的使用情況提前作出預測,從而避免死鎖發生。l 檢查與恢復檢查與恢復 是指系統設有專門的機構,死鎖發生時,該機構能是指系統設有專門的機構,死鎖發生時,該機構能夠檢測到死鎖發生的位置和原因,并能通過外力破環死夠檢測到死鎖發生的位置和原因,并能通過外力破環死鎖發生的必要條件,從而使得并發進程從死鎖狀態中恢鎖發生的必要條件,從而使得并發進程從死鎖狀態中恢復過來。復過來。死鎖死鎖 前一頁 休息解決死鎖的方法解決死鎖的方法l預防死鎖預防死鎖 死鎖產生的必要條件為解決死鎖問題提供
19、了死鎖產生的必要條件為解決死鎖問題提供了思路。思路。限制限制“互斥條件互斥條件”然而對于臨界資源必須互斥訪問,這是某些資然而對于臨界資源必須互斥訪問,這是某些資源使用時所必須要求的(如打印機),不能加源使用時所必須要求的(如打印機),不能加以改變,所以不易有解決方案。以改變,所以不易有解決方案。死鎖死鎖 前一頁 休息解決死鎖的方法解決死鎖的方法l預防死鎖預防死鎖限制限制“部分分配部分分配”一種實現方法是規定所有進程在開始執行前一種實現方法是規定所有進程在開始執行前申請所需的全部資源,當所需資源全部可以使申請所需的全部資源,當所需資源全部可以使用時方可進行分配。這樣,進程對資源的要求用時方可進行
20、分配。這樣,進程對資源的要求得到滿足,它一定能夠運行結束而釋放已經占得到滿足,它一定能夠運行結束而釋放已經占用的全部資源。只要有一種資源不能滿足,則用的全部資源。只要有一種資源不能滿足,則不進行分配,而將該進程阻塞。不進行分配,而將該進程阻塞。 死鎖死鎖 前一頁 休息解決死鎖的方法解決死鎖的方法l預防死鎖預防死鎖限制限制“部分分配部分分配”缺點:缺點:p許多情況下,一個進程執行前不可能提出它需要許多情況下,一個進程執行前不可能提出它需要的所有資源的所有資源p無論所需資源何時使用,一個進程只有在所有需無論所需資源何時使用,一個進程只有在所有需要的資源得到滿足后才開始執行要的資源得到滿足后才開始執
21、行p對于不經常使用的資源,進程的生存過程期間一對于不經常使用的資源,進程的生存過程期間一直占有它是一種浪費直占有它是一種浪費p降低了進程的并發性降低了進程的并發性 死鎖死鎖 前一頁 休息解決死鎖的方法解決死鎖的方法l預防死鎖預防死鎖限制限制“不剝奪條件不剝奪條件”采用剝奪算法,可以預防死鎖的發生。采用剝奪算法,可以預防死鎖的發生。但是系統中的資源有些是可剝奪的,有但是系統中的資源有些是可剝奪的,有些是不可剝奪的,如采用剝奪算法對于些是不可剝奪的,如采用剝奪算法對于CPUCPU與存儲器是可行的,而對于打印機等與存儲器是可行的,而對于打印機等資源則是不合適的,所以只能對系統中資源則是不合適的,所以
22、只能對系統中的一部分資源采用這種方法。的一部分資源采用這種方法。死鎖死鎖 前一頁 休息解決死鎖的方法解決死鎖的方法l預防死鎖預防死鎖限制限制“環路條件環路條件” 把所有資源分類按順序排列,使進程在申請和保持把所有資源分類按順序排列,使進程在申請和保持資源時不形成環路。資源時不形成環路。 一個進程在擁有了某資源的前提下,它只能申請級一個進程在擁有了某資源的前提下,它只能申請級別比所擁有資源更高的資源;同時在一個進程釋放資別比所擁有資源更高的資源;同時在一個進程釋放資源時,必須先釋放級別高的資源(同時也源時,必須先釋放級別高的資源(同時也只有釋放只有釋放了了所擁有的高級別資源,才有可能獲得低級別資
23、源);所擁有的高級別資源,才有可能獲得低級別資源);這樣就避免了環路的出現。這樣就避免了環路的出現。 這種方法限制了進程對資源的請求,對資源的分類這種方法限制了進程對資源的請求,對資源的分類編序也消耗一定的系統開銷。編序也消耗一定的系統開銷。死鎖死鎖 前一頁 休息解決死鎖的方法解決死鎖的方法l避免死鎖避免死鎖 避免死鎖的做法是在進程每次避免死鎖的做法是在進程每次提出資源請求提出資源請求時時加以檢測,若分配后系統可能會引起死鎖,加以檢測,若分配后系統可能會引起死鎖,稱系統處于不安全狀態,這時對該進程的資源稱系統處于不安全狀態,這時對該進程的資源請求不予分配,將它放到等待隊列中去。若分請求不予分配
24、,將它放到等待隊列中去。若分配后系統不會產生死鎖,即系統是安全的,這配后系統不會產生死鎖,即系統是安全的,這時再根據該進程的資源請求予以分配。時再根據該進程的資源請求予以分配。死鎖死鎖銀行家算法銀行家算法 進程申請系統的某種資源時,一次可以申請多個,為了避進程申請系統的某種資源時,一次可以申請多個,為了避免死鎖,可以采用銀行家算法。執行前,各進程給出免死鎖,可以采用銀行家算法。執行前,各進程給出最大的資最大的資源需求源需求,執行中,進程已分配資源與尚需資源之和就是,執行中,進程已分配資源與尚需資源之和就是最大的最大的資源需求資源需求。 例:假設系統有某種設備例:假設系統有某種設備1212臺,在
25、臺,在T T0 0時刻,進程需求與分時刻,進程需求與分配情況如下:配情況如下:進程名進程名已分配設備已分配設備尚需設備尚需設備當前可用設備當前可用設備P1P1P2P2P3P35 52 22 25 52 27 73 前一頁 休息解決死鎖的方法解決死鎖的方法l死鎖的檢測和恢復(實現不作任何限制)死鎖的檢測和恢復(實現不作任何限制)檢測時機:進程等待時;定時檢測;資源利檢測時機:進程等待時;定時檢測;資源利用率下降時。用率下降時。死鎖的恢復辦法較多。最簡單的辦法是終止死鎖的恢復辦法較多。最簡單的辦法是終止各鎖住進程,或按一定的順序中止進程序列,各鎖住進程,或按一定的順序中止進程序列,直至已釋放到有足
26、夠的資源來完成剩下的進程直至已釋放到有足夠的資源來完成剩下的進程時為止。另外,也可以從被鎖住進程強迫剝奪時為止。另外,也可以從被鎖住進程強迫剝奪資源以解除死鎖。資源以解除死鎖。死鎖死鎖 前一頁 休息3.93.9線程的引入線程的引入l引入進程的操作系統引入進程的操作系統特點特點: :在引入進程概念的操作系統中,將進程作為在引入進程概念的操作系統中,將進程作為一個獨立運行的基本單位,這包括兩層含義:只有進一個獨立運行的基本單位,這包括兩層含義:只有進程可以程可以被調度運行被調度運行,只有進程才能,只有進程才能擁有資源擁有資源。資源利用資源利用: :當進程被創建時,系統要為它分配當進程被創建時,系統
27、要為它分配PCBPCB表及其它必要表及其它必要的資源,如內存等;當進程被撤消時,系統要收回這的資源,如內存等;當進程被撤消時,系統要收回這些資源及些資源及PCBPCB表等,因此系統必須付出一定的開銷。表等,因此系統必須付出一定的開銷。當進程運行時,進程的切換現象更會大量存在,由當進程運行時,進程的切換現象更會大量存在,由于要保留當前執行進程的于要保留當前執行進程的CPUCPU現場和為選中執行的進現場和為選中執行的進程重布現場,更需較大的開銷。程重布現場,更需較大的開銷。線程線程 前一頁 休息線程的引入線程的引入l很多時候,用戶要完成的任務具有許多相似的很多時候,用戶要完成的任務具有許多相似的性
28、質。性質。l例如:一個例如:一個WebWeb服務器同時接受不同用戶的頁服務器同時接受不同用戶的頁面請求。服務器處理這些請求是并發進行的,可面請求。服務器處理這些請求是并發進行的,可以用創建父進程和多個子進程的方式來實現。以用創建父進程和多個子進程的方式來實現。l隨著用戶數量增加,子進程數量將增加,進程隨著用戶數量增加,子進程數量將增加,進程的創建和切換過程越多,系統的開銷越多。的創建和切換過程越多,系統的開銷越多。l由于服務器的系統資源有限,服務器可以處理由于服務器的系統資源有限,服務器可以處理和支持的用戶訪問請求就有限。和支持的用戶訪問請求就有限。l如何減少進程的創建和切換多帶來的系統開如何
29、減少進程的創建和切換多帶來的系統開銷?銷?線程線程線程線程 前一頁 休息線程的基本概念線程的基本概念l線程是進程的一部分,又被稱為輕權進程線程是進程的一部分,又被稱為輕權進程或輕量級進程。或輕量級進程。l線程也是線程也是CPU調度的基本單位。調度的基本單位。l一個沒有線程的進程可以看作是單線程的。一個沒有線程的進程可以看作是單線程的。 前一頁 休息線程的基本概念線程的基本概念l一個進程內擁有多個線程,則進程的執行一個進程內擁有多個線程,則進程的執行不再是唯一線狀的,它由多條線狀執行過不再是唯一線狀的,它由多條線狀執行過程組成。程組成。 前一頁 休息線程的引入線程的引入l引入線程的好處引入線程的
30、好處 使用線程的最大好處是在有多個任使用線程的最大好處是在有多個任務需要處理機處理時,減少處理機的切務需要處理機處理時,減少處理機的切換時間;而且,線程的創建和結束所需換時間;而且,線程的創建和結束所需要的系統開銷也比進程的創建和結束要要的系統開銷也比進程的創建和結束要小得多。小得多。最適合使用線程的系統是最適合使用線程的系統是多處理機系統多處理機系統或網絡系統或分布式系統或網絡系統或分布式系統。 前一頁 休息l在多處理機系統中,同一用戶程序可在多處理機系統中,同一用戶程序可以根據不同的功能劃分為不同的線程,以根據不同的功能劃分為不同的線程,放在不同的處理機上執行。放在不同的處理機上執行。l在
31、用戶程序可以按功能劃分為不同的在用戶程序可以按功能劃分為不同的小段時,單處理機系統也可以使用線程小段時,單處理機系統也可以使用線程而簡化程序結構和提高執行效率。而簡化程序結構和提高執行效率。 前一頁 休息線程的引入線程的引入l3 3種典型應用種典型應用l服務器中文件管理或通信控制服務器中文件管理或通信控制l前后臺處理前后臺處理即把一個計算量大實時性要即把一個計算量大實時性要求不高的程序安排在處理機空閑時執行求不高的程序安排在處理機空閑時執行l異步處理異步處理程序中兩個部分在執行上沒有程序中兩個部分在執行上沒有順序規定順序規定 前一頁 休息 前一頁 休息線程的引入線程的引入l引入線程的操作系統引
32、入線程的操作系統將進程看作資源集合與線程集合的復合體。將進程看作資源集合與線程集合的復合體。進程擁有資源,屬于同一個進程的所有線程進程擁有資源,屬于同一個進程的所有線程可以共享這些資源。此外,每個線程僅有較少可以共享這些資源。此外,每個線程僅有較少的私用資源,如程序計數器、寄存器和棧等。的私用資源,如程序計數器、寄存器和棧等。每一個線程是一個動態對象,它表示進程中每一個線程是一個動態對象,它表示進程中的一條控制線索,執行一系列指令操作,是一的一條控制線索,執行一系列指令操作,是一個相對獨立的、可被調度運行的基本單位。個相對獨立的、可被調度運行的基本單位。線程線程 前一頁 休息線程的引入線程的引
33、入l引入線程的操作系統引入線程的操作系統在進程的地址空間中可以有多個線程,它們在進程的地址空間中可以有多個線程,它們可以可以并發執行并發執行,這就需要一張單獨的表來記錄,這就需要一張單獨的表來記錄線程控制與管理等信息,這張表稱為線程控制與管理等信息,這張表稱為線程控制線程控制表表。其中,每個線程占一項,以記錄線程的程。其中,每個線程占一項,以記錄線程的程序計數器、寄存器的值及狀態等信息。程序計序計數器、寄存器的值及狀態等信息。程序計數器可以使線程像進程一樣被暫停執行和恢復數器可以使線程像進程一樣被暫停執行和恢復執行,寄存器的值等可以保存線程暫停執行時執行,寄存器的值等可以保存線程暫停執行時的的
34、CPUCPU狀態。狀態。線程線程 前一頁 休息 前一頁 休息線程的引入線程的引入l引入線程的操作系統引入線程的操作系統線程由創建而產生,由撤消而消亡,在生命線程由創建而產生,由撤消而消亡,在生命期間,線程可以處于就緒狀態、執行狀態和阻期間,線程可以處于就緒狀態、執行狀態和阻塞狀態三個基本狀態中。這三個基本狀態也像塞狀態三個基本狀態中。這三個基本狀態也像進程一樣,會發生變遷,如就緒狀態進程一樣,會發生變遷,如就緒狀態執行狀執行狀態,執行狀態態,執行狀態阻塞狀態,阻塞狀態阻塞狀態,阻塞狀態就緒狀就緒狀態等。(與進程的狀態并不一定一一對應)態等。(與進程的狀態并不一定一一對應)線程線程 前一頁 休息 前一頁 休息線程與進程的比較線程與進程的比較l調度調度在傳統的操作系統中,擁有資源的基本單位和獨在傳統的操作系統中,擁有資源的基本單位和獨立調度運行的基本單位都是進程。在引入線程的操立調度運行的基本單位都是進程。在引入線程的操作系統中,則把線程作為調度運行的基本單位,而作系統中,則把線程作為調度運行的基本單位,而把進程作為擁有資源的基本單位。把進程作為擁有資源的基本單位。在同一個進程中,線程的調度不會引起進程的調在同一個進程中,線程的調度不會引起進程的調度,只有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安影視團隊管理辦法
- 車輛維修質檢管理辦法
- 防輻射安全培訓課件
- 肥東龍城古文化課件
- 股骨骨折護理常規課件
- 肝臟解剖護理課件
- 高二霞數學試卷
- 定遠高一期中數學試卷
- 肝炎病人的護理課件
- 德城區中考題目數學試卷
- 《OSB-單板復合集裝箱底板剛度模型及工藝研究》
- 3.3.1天氣系統-鋒與天氣課件高二地理湘教版(2019)選擇性必修1
- 《重大火災隱患判定規則》知識培訓
- 辦公室主任職業規劃
- 第九章新時代中國特色大國外交與構建人類命運共同體-2024版研究生新中特教材課件
- 出國工作合同范例
- 《執法規范化建設探究的國內外文獻綜述》2700字
- 大學物業服務月考核評價評分表
- 19G522-1鋼筋桁架混凝土樓板圖集
- GB/T 19963.2-2024風電場接入電力系統技術規定第2部分:海上風電
- 2024年廣西南寧市市場監督管理局招聘外聘人員3人歷年高頻500題難、易錯點模擬試題附帶答案詳解
評論
0/150
提交評論