作業系統 上下文切換

2021-10-18 12:22:25 字數 491 閱讀 4432

程序上下文是程序執行活動全過程的靜態描述。

我們把已執行過的程序指令和資料在相關暫存器與堆疊中的內容稱為程序上文,把正在執行的指令和資料在暫存器與堆疊中的內容稱為程序正文,把待執行的指令和資料在暫存器與堆疊中的內容稱為程序下文。

上下文切換的任務是:將cpu切換到另乙個程序需要儲存原來程序的狀態並裝入新程序的儲存狀態。

當發生上下文切換時,核心會將舊程序的關聯狀態儲存在其pcb中,然後裝入經排程要執行的新程序的已儲存的關聯狀態。

上下文切換是純粹的開銷,因為做上下文切換時系統並沒有做任何有意義的工作。

上下文切換速度因機器而不同,它依賴於記憶體速度、必須被複製的暫存器的數量、是否有特殊指令。

上下文切換時間與硬體支援密切相關。os越複雜,所需要的切換就會越多。

為了實現程序的上下文切換,作業系統需要獲得cpu的控制權。

作業系統CPU上下文切換

在切換時,乙個程序儲存在處理器各暫存器中的中間資料叫做程序的上下文,所以程序的切換實質上就是被中止執行程序與待執行程序上下文的切換。在程序未占用處理器時,程序 的上下文是儲存在程序的私有堆疊中的。時間片對於cpu來說是很關鍵的引數,如果時間片太長,就會使系統的互動性能變差,使用者感覺不到並行。如果太...

作業系統之上下文切換

cpu 暫存器裡原來使用者態的指令位置,需要先儲存起來。接著,為了執行核心態 cpu 暫存器需要更新為核心態指令的新位置。最後才是跳轉到核心態執行核心任務。而系統呼叫結束後,cpu 暫存器需要恢復原來使用者儲存的狀態,然後再切換到使用者空間,繼續執行程序。所以,一次系統呼叫的過程,其實是發生了兩次 ...

上下文切換

1 系統呼叫 一次系統呼叫其實是發生了兩次cpu上下文的切換 首先將使用者態的cpu暫存器中的指令儲存在系統核心中。為了執行核心態 需要將暫存器更新為核心態指令的位置,然後跳轉到核心空間去執行任務。當核心態的指令執行完成的時候,cpu暫存器將恢復儲存在系統核心中的上一次執行的使用者態,然後切換到使用...