行程和執行緒
一、行程(process)
- 概念
行程就好比是一個工廠的車間,一個工廠可能有多個車間,每個車間代表cpu正在處理的任務,某一時刻,cpu總是在進行一個行程
工廠=執行緒
工人=執行緒
二、執行緒(thread)
- 概念
在一個車間內,想要完成某一項作業,必須有很多個工人,并且多個工人協同完成任務,每個工人,都可以理解為linux系統中行程的作業執行緒,
工人=執行緒
三、行程執行緒關系
- 執行緒共享行程內容資源
- 某一個記憶體資料可以被多個執行緒同時用
- 某一塊記憶體資料只能給一個執行緒使用
- 如果記憶體正在有執行緒使用,并且容不下其他執行緒,需要等待用完(工人上廁所)
- 執行緒不愿意等待,直接搶奪記憶體資料,可能會引發混亂,造成資料沖突,崩潰
總結:linux是一個多用戶,多任務的作業系統,支持多行程,多執行緒
多行程(linux作業系統,可以同時多個行程在作業)
多執行緒(一個行程中多個執行緒在作業)
單執行緒(一個行程內,只有一個人在干活,效率很低)
行程的狀態轉換

-
創建狀態:行程在創建時需要申請一個空白PCB,向其中填寫控制和管理行程的資訊,完成資源分配,如果創建作業無法完成,比如資源無法滿足,就無法被調度運行,把此時行程所處狀態稱為創建狀態
-
就緒狀態:行程已經準備好,已分配到所需資源,只要分配到CPU就能夠立即運行
-
執行狀態:行程處于就緒狀態被調度后,行程進入執行狀態
-
阻塞狀態:正在執行的行程由于某些事件(I/O請求,申請快取區失敗)而暫時無法運行,行程受到阻塞,在滿足請求時進入就緒狀態等待系統呼叫
-
終止狀態:行程結束,或出現錯誤,或被系統終止,進入終止狀態,無法再執行
注意:1.行程由運行態→阻塞態是行程做出的主動行為
? 2.不能由阻塞態直接轉換為運行態
? 3.不能由就緒態轉換為阻塞態

行程同步和互斥
- 行程同步
同步也稱直接制約關系,它是指為完成某種任務而建立的兩個或者多個行程,這些行程因為需要在某些位置上協調他們的作業次序而產生的制約關系,
- 行程互斥
- 我們把一段時間段只允許一個行程使用的資源稱為臨界資源,許多物理設備(攝像頭、列印機)都屬于臨界資源,此外還有許多變數、資料,記憶體緩沖區都屬于臨界資源
互斥稱間接制約關系,行程互斥指當一個行程訪問某臨界資源時,另一個想要訪問該臨界資源的行程必須等待,當前訪問臨界資源的行程訪問結束,釋放該資源才能去訪問臨界資源
行程互斥,要遵循的原則
- 1.空閑讓進
- 2.忙則等待
- 3.有限等待
- 4.讓權等待
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/441893.html
標籤:Windows
上一篇:SQL函式在呼叫時沒有目的地
