我們都知道 Linux 是一個(gè)多任務(wù)操作系統(tǒng),它支持的任務(wù)同時(shí)運(yùn)行的數(shù)量遠(yuǎn)遠(yuǎn)大于 CPU 的數(shù)量。當(dāng)然,這些任務(wù)實(shí)際上并不是同時(shí)運(yùn)行的(Single CPU),而是因?yàn)橄到y(tǒng)在短時(shí)間內(nèi)將 CPU 輪流分配給任務(wù),造成了多個(gè)任務(wù)同時(shí)運(yùn)行的假象。
CPU 上下文(CPU Context)在每個(gè)任務(wù)運(yùn)行之前,CPU 需要知道在哪里加載和啟動(dòng)任務(wù)。這意味著系統(tǒng)需要提前幫助設(shè)置 CPU 寄存器和程序計(jì)數(shù)器。
CPU 寄存器是內(nèi)置于 CPU 中的小型但速度極快的內(nèi)存。程序計(jì)數(shù)器用于存儲(chǔ) CPU 正在執(zhí)行的或下一條要執(zhí)行指令的位置。
它們都是 CPU 在運(yùn)行任何任務(wù)之前必須依賴的依賴環(huán)境,因此也被稱(chēng)為 “CPU 上下文”。如下圖所示: