1. 程式人生 > >並發編程中的多道技術

並發編程中的多道技術

調度 都在 執行權 小學 小學數學 內存 物理 ddr 效率

多道技術

多道技術中的多道指的是多個程序,多到技術的實現是為了解決多個程序競爭或者說共享同一個資源(cpu)的有序調度問題,解決方式即多路復用,多路復用分為時間上復用和空間上復用。

空間上復用:將內存分為幾部分,每個部分放入一個程序這樣,同一時間內就有了多道程序( 內存是物理隔離, 其他程序無法直接訪問其他程序 需要IPC進程間協議來互相通訊)

時間上的復用:當一個程序在等待io操作時,另一個程序可以使用cpu,如果內存中可以同時存放足夠多的作業,則cpu的利用率可以接近100%,類似我們小學數學裏面的統籌方法。(操作系統采用了多道技術後,可以控制進程的切換,或者說進程之間去搶奪cpu的執行權限。這種切換不僅會在一個進程遇到io時進行,一個進程占用cpu時間過長也會切換,或者說被操作系統奪走cpu執行權限)

通過切換 和保存程序狀態來實現並發 這就是多道技術

(多道技術也是在不同任務間切換執行,由於計算機的切換速度非常快,所以用戶是沒有任何感覺的,看起來就像是兩個任務都在執行,但是另一個問題是,僅僅是切換還不行,還需要在切換前保存當前狀態,切換回來時恢復狀態,這些切換和保存都是需要花費時間的!在上述案例中由於任務過程中出現了等待即IO操作所以進行了切換,而對於一些不會出現IO操作的程序而言,切換不僅不能提高效率,反而會降低效率)

並發編程中的多道技術