程式的順序執行與併發執行

2022-06-09 01:33:11 字數 1008 閱讀 6344

是指記憶體一次只能裝載乙個程式執行,在這次程式執行結束前,其他程式不允許使用記憶體。這是早期的作業系統所使用的技術。

是現代作業系統普遍使用的,它可以允許多個程式進駐記憶體,系統通過某種排程策略交替執行程式.所有多道程式設計作業系統都建立在程序的基礎上。

單核cpu

單核cpu較為死腦,在通電時該cpu就會執行儲存塊中的指定位址的指令,如果你想要執行記憶體塊其他地方的**必須調整匯流排位置才可以讓其執行。單核cpu就相當於阻塞程式,在工作期間只能執行某乙個程式

多核cpu

多核cpu即多個cpu組成,這些cpu整合在乙個晶元裡 。這些cpu通過匯流排來互動資料,並且工作是並行的,資源分配是由作業系統來完成的,作業系統來決定程式cpu的控制權分配,所以乙個多核cpu的工作效率大多體現在作業系統的分配上,因為乙個cpu基本上可以執行很多個程式,通過pcb程序控制塊的方式儲存當前**段,然後來回跳轉,所以當你的cpu核過多時,作業系統在分配時可能會導致部分cpu閒置。

多個cpu

即擁有多個cpu的主機,每個cpu只能用來獨立執行不同的程式,這些cpu都是單核的。但多個cpu只用在特定的機器上,家用的電腦用的都是多核cpu。因為雖然多個cpu執行速度快(單核cpu是100%執行,但雙核cpu也就60%乘2執行,要三核50%乘3 四核40%乘4 這樣的執行速度。),但是難以管理,因為每個cpu有自己的匯流排,一級二級快取,那麼這樣需要更大的占用面積,更多的匯流排,因為這些cpu不是封裝在乙個晶元裡的!

乙個具有獨立功能的程式獨佔處理器直至最終結束的過程稱為程式的順序執行。系統中任意時刻只有乙個程式被載入記憶體,占用cpu等資源在執行,乙個程式執行完後,才能執行另乙個程式。程式順序執行時的特性,將為程式設計師檢測和校正程式的錯誤,帶來極大的方便。

程式的併發執行是指在同一時間間隔內執行多個程式。 也就是在乙個程式執行結束之前,可以執行其它的程式。對於使用者來說,有多個程式在同時向前推進,但是從微觀上來看,任意時刻cpu上都只有乙個程式在執行。

四 程式的併發執行

巨集觀上看是多個程式同時執行,微觀上看是多個程式分時占用cpu。這種程式的執行方式為併發執行。方法執行時的新特徵 間斷性 程式在比併發執行時,由於它們共享系統資源,以及為完成同一項任務而相互合作,致使在這些併發執行的程式之間形成了相互制約的關係。當圖中c1已經資料處理完畢時,i2還沒有輸入那麼c2就...

Python併發執行

使用map簡化併發的複雜度,生產者消費者模型實在看的頭疼 參考這篇帖子說明的很清楚 from multiprocessing.dummy import pool as threadpool import requests import time urls 定義網頁資源集合 for i in rang...

Go 併發執行

需要併發執行的場景有很多 爬蟲 拉取資料 更新資料 go作為天生高併發的語言,在使用併發時是比較方便的。package main import fmt func main description 開啟多執行緒執行 param total 啟動執行緒數 param work 需要執行的方法 func ...