進程並行的原理

1、程序和進程區別:

程序,編譯好的二進制文件,存儲在磁盤中,不佔用系統資源(cpu,內存。。。),如a.out

進程,活躍的程序,需要佔用系統資源,

a.out可以在多個終端中運行,即同一個程序可以加載爲不同的進程,不同的進程互不影響。又如Qt程序也可以同時打開多個,但二者的id是不同的,

如下圖windows進程圖所示,同一個程序被打開了多次,pid進程號是不同的,即屬於不同的進程,linux下也是如此。

2、併發:並行運行

單道程序設計模式:如DOS系統,一個程序A執行完,再執行下一個程序B;

執行效率低

多道程序設計模式:win7,程序看起來能夠同時運行;

實質:cpu劃分成多個時間輪片;每個進程會劃分成多個任務片段。

cpu將時間片1給進程A的1任務片段,時間片1用完,觸發時鐘中斷

cpu將時間片2給進程B的1任務片段,時間片2用完,觸發時鐘中斷

cpu將時間片3給進程A的2任務片段,依次。。。。。

因爲CPU的執行時納秒級的,人的反應是毫秒級的,所以用戶看起來是在同時執行多個進程,比如同時在聽歌,又在瀏覽網頁。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章