單道程序設計技術
是指內存一次只能裝載一個程序運行,在這次程序運行結束前,其他程序不允許使用內存。這是早期的操作系統所使用的技術。
多道程序設計技術
是現代操作系統普遍使用的,它可以允許多個程序進駐內存,系統通過某種調度策略交替執行程序.所有多道程序設計操作系統都建立在進程的基礎上。
單核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上運行,都是時斷時續的。當一個資源被占用時,其他需要該資源的程序不得不暫停,待資源被釋放時方可執行。相互制約將導致並發程序具有“執行—暫停—執行”這種間斷性的活動規律。
- 失去封閉性
- 程序正在並發執行時,由於它們共享資源或者合作完成同一項任務,系統的狀態不再受其中一個程序的控制和改變,所以就失去了封閉性。比如淘寶賣商品,每賣出一件庫存都要減去1,而進貨又可以對庫存進行增加,所以庫存已經不是某個程序特有的了。
- 不可再現性
- 因為程序在並發執行時失去了封閉性,所以任何一個程序都有可能對系統的狀態進行改變,這也意味着程序執行的結果可能會不相同。例如兩個程序同時往一個文件追加內容,在執行數次之后,每個文件所展現出的內容可能各不相同。