12-04 進程的兩大重要概念


進程的並行與並發

並行 : 並行是指兩者同時執行,比如賽跑,兩個人都在不停的往前跑

並發 : 並發是指資源有限的情況下,兩者交替輪流使用資源,比如一段路同時只能過一個人,A走一段后,讓給B,B用完繼續給A ,交替使用,目的是提高效率。

區別:

並行是同時運行,只有具備多個cpu才能實現並行
並發是是偽並行,即看起來是同時運行。單個cpu+多道技術就可以實現並發,(並行也屬於並發)

image-20190919185458693

所有現代計算機經常會在同一時間做很多件事,一個用戶的電腦(無論是單cpu還是多cpu),都可以同時運行多個任務(一個任務可以理解為一個進程)。

    啟動一個進程來殺毒(360軟件)

    啟動一個進程來看電影(暴風影音)

    啟動一個進程來聊天(騰訊QQ)

所有的這些進程都需被管理,於是一個支持多進程的多道程序系統是至關重要的

多道技術概念回顧:內存中同時存入多道(多個)程序,cpu從一個進程快速切換到另外一個,使每個進程各自運行幾十或幾百毫秒,這樣,雖然在某一個瞬間,一個cpu只能執行一個任務,但在1秒內,cpu卻可以運行多個進程,這就給人產生了並行的錯覺,即偽並發,以此來區分多處理器操作系統的真正硬件並行(多個cpu共享同一個物理內存)

同步異步阻塞非阻塞

狀態介紹

image-20190919190516495

在了解其他概念之前,我們首先要了解進程的幾個狀態。在程序運行的過程中,由於被操作系統的調度算法控制,程序會進入幾個狀態:就緒,運行和阻塞。

一、就緒(Ready)狀態

  當進程已分配到除CPU以外的所有必要的資源,只要獲得處理機便可立即執行,這時的進程狀態稱為就緒狀態。

二、執行/運行(Running)狀態

​ 當進程已獲得處理機,其程序正在處理機上執行,此時的進程狀態稱為執行狀態。

三、阻塞(Blocked)狀態

​ 正在執行的進程,由於等待某個事件發生而無法執行時,便放棄處理機而處於阻塞狀態。引起進程阻塞的事件可有多種,例如,等待I/O完成、申請緩沖區不能滿足、等待信件(信號)等。

同步和異步

同步

一個任務的完成需要依賴另外一個任務時,只有等待被依賴的任務完成后,依賴的任務才能算完成,這是一種可靠的任務序列。要么成功都成功,失敗都失敗,兩個任務的狀態可以保持一致。

異步

不需要等待被依賴的任務完成,只是通知被依賴的任務要完成什么工作,依賴的任務也立即執行,只要自己完成了整個任務就算完成了。至於被依賴的任務最終是否真正完成,依賴它的任務無法確定,所以它是不可靠的任務序列。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM