上下文切換詳解
1、上下文切換的概念
上下文切換可以認為是核心(作業系統的核心)在 cpu 上對於程序(包括執行緒)進行以下的活動:
(1)掛起乙個程序,將這個程序在 cpu 中的狀態(上下文)儲存於記憶體中的某處,
(2)在記憶體中檢索下乙個程序的上下文並將其在 cpu 的暫存器中恢復
(3)跳轉到程式計數器所指向的位置(即跳轉到程序被中斷時的**行),以恢復該程序。
上下文切換有時被描述為核心掛起 cpu 當前執行的程序,然後繼續執行之前掛起的眾多程序中的某乙個(程序切換)。上下文切換要操作的資訊是儲存在pcb中,方便取用。上下文切換十分頻繁,每秒進行很多次,所以要求我們的作業系統有實時性。實時性就是我們每一次操作時間控制在10ms以內。arm作業系統一般的平均時間位1.5ms。
2、何時發生上下文切換
程序排程
說完了上下文切換,我們說一下程序排程,程序排程有三種方式。
高響應比優先:這種方法是(等待時間 + 服務時間)/ 服務時間 。這個比最高的時候,最先被呼叫,但是必須先計算相應比。
程序排程中還有幾個情況會出現:
上下文切換詳解
上下文切換 有時也稱做程序切換或任務切換 是指cpu 從乙個程序或執行緒切換到另乙個程序或執行緒。程序 有時候也稱做任務 是指乙個程式執行的例項。在 linux 系統中,執行緒就是能並行執行並且與他們的父程序 建立他們的程序 共享同一位址空間 一段記憶體區域 和其他資源的輕量級的程序。上下文是指某一...
上下文切換詳解
上下文切換 有時也稱做程序切換或任務切換 是指cpu 從乙個程序或執行緒切換到另乙個程序或執行緒。程序 有時候也稱做任務 是指乙個程式執行的例項。在 linux 系統中,執行緒就是能並行執行並且與他們的父程序 建立他們的程序 共享同一位址空間 一段記憶體區域 和其他資源的輕量級的程序。上下文是指某一...
上下文切換詳解
上下文切換 有時也稱做程序切換或任務切換 是指cpu 從乙個程序或執行緒切換到另乙個程序或執行緒。程序 有時候也稱做任務 是指乙個程式執行的例項。在 linux 系統中,執行緒就是能並行執行並且與他們的父程序 建立他們的程序 共享同一位址空間 一段記憶體區域 和其他資源的輕量級的程序。上下文是指某一...