程序間是共享cpu的,所以需要程序切換讓不同的程序都能夠在cpu執行,這個操作就是程序切換。
cpu上下文切換
任務給cpu執行前,cpu需要知道任務從**開始載入執行。
作業系統會事先幫cpu設定好cpu暫存器和程式計數器。
cpu暫存器和程式計數器是cpu在執行任務前所需要的環境,這個環境就是cpu上下文。
cpu上下文切換就是把上乙個任務的cpu上下文儲存起來,然後載入新任務的上下文,跳轉到程式計數器所指的新位置,執行新任務。
程序上下文切換
程序上下文切換就是cpu上下文切換的一種。
程序是由核心排程的,所以程序切換只會發生在核心態。
程序上下文切換包括虛擬記憶體、棧、全域性變數等使用者空間的資源,還包括了核心堆疊、暫存器等核心空間的資源。
程序上下文切換的發生
時間片輪轉,當時間片耗盡就會切換
程序在系統資源不足時需要被掛起
程序通過sleep將自己主動掛起
當有高優先順序程序需要執行時
發生硬體中斷時程序被掛起
python學習筆記 執行緒與程序
執行緒 官方 程序 process 是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。在早期面向程序設計的計算機結構中,程序是程式的基本執行實體 在當代面向執行緒設計的計算機結構中,程序是執行緒的容器。程式是指令 資料及其組織形式的描述,程序是...
多執行緒學習筆記(四)程序與執行緒
程序是程式的一次執行過程,是系統執行程式的基本單位,因此程序是動態的。系統執行乙個程式即是乙個程序從建立,執行到消亡的過程。簡單來說,乙個程序就是乙個執行中的程式,它在計算機中乙個指令接著乙個指令地執行著,同時,每個程序還占有某些系統資源如 cpu 時間,記憶體空間,檔案,輸入輸出裝置的使用權等等。...
作業系統之程序與執行緒4 程序排程
程序排程策略依照不同的應用也有不同的策略,比如衛星導航系統需要實時性強 嵌入式系統需要省電等排程策略具體實現。而且面對不同的情況,有無窮盡的排程策略,因此本文只討論一般普通pc機的幾種一般排程策略。由前邊程序 執行緒切換的知識可知,程序排程策略即是 如何從程序就緒佇列中選取下乙個即將執行的程序 即作...