點擊上方藍字談思實驗室
獲取更多汽車網絡安全資訊


01
概念
Linux 是一個多任務的操作系統,可以同時多個任務并發執行,任務數超過CPU核心數。當然同一時刻在執行的任務數,最多也就只能是CPU核心數,只不過CPU時間片在多個任務之間來回切換罷了。上下文切換就是為了保存任務切換時刻的基本信息,當CPU重新執行任務的時候可以加載上下文信息,從當時退出的位置、狀態重新開始執行任務。這里所說的上下文信息,既包括虛擬內存、棧、全局變量等用戶態的資源,也包括內核堆棧、寄存器等內核態的資源。
02
上下文包含什么信息
看下圖,一個進程的信息包含很多,我覺得可以理解為幾個方面:CPU-狀態信息 I/O狀態信息 父子進程信息等:
進程狀態:如就緒、運行、阻塞等,表示進程當前的執行狀態。
程序計數器(PC):記錄進程下一條指令的地址。
寄存器內容:包括通用寄存器、特殊寄存器等,保存進程切換時的 CPU 狀態。
內存管理信息:如頁面表、段表、內存限制等,用于管理進程的內存分配。
調度信息:如進程優先級、調度隊列中的位置等,用于進程調度。
I/O 狀態信息:記錄進程當前所使用的 I/O 設備、文件描述符等。
進程標識符(PID):唯一標識進程的 ID。
父進程和子進程信息:包括父進程 PID、子進程鏈表等。
時間信息:如進程的啟動時間、CPU 時間片消耗等。

這些信息在內核中是通過結構體存儲的,即PCB(Process Control Block)進程控制塊,下圖只是示意,不包含所有內容,在進程讓出CPU的時候,這些上下文信息會保存到內核中,當下次執行的時候再從內核中加載回來。

在Linux源碼中是通過結構體task_struct來存儲的:

03
上下文切換的類型
--1 進程上下文切換:最經常聽到上下文切換,多個進程并發,很好理解。
--2 線程上下文切換:包含了同一個進程內的和不同進程內的,不同進程內的消耗等同于進程上下文切換。
--3 中斷上下文切換:因為外設控制器執行速度通常慢于CPU,比如打印一個數據這個時候需要內核調用顯示設備,很慢怎么辦呢?這個是時候就會觸發中斷,讓CPU先干別的進程,等打印完成了再回來。
分析工具
vmstat:查看整個系統的上下文切換情況

pidstat:查看具體某個進程的上下文切換情況

cswch 表示每秒自愿上下文切換(voluntary context switches)的次數。
nvcswch 表示每秒非自愿上下文切換(non voluntary context switches)的次數。
來源:一口Linux
?end?

?精品活動推薦?



?專業社群?

部分入群專家來自:
新勢力車企:
特斯拉、合眾新能源-哪吒、理想、極氪、小米、賓理汽車、極越、零跑汽車、阿維塔汽車、智己汽車、小鵬、嵐圖汽車、蔚來汽車、吉祥汽車、賽力斯......
外資傳統主流車企代表:
大眾中國、大眾酷翼、奧迪汽車、寶馬、福特、戴姆勒-奔馳、通用、保時捷、沃爾沃、現代汽車、日產汽車、捷豹路虎、斯堪尼亞......
內資傳統主流車企:
吉利汽車、上汽乘用車、長城汽車、上汽大眾、長安汽車、北京汽車、東風汽車、廣汽、比亞迪、一汽集團、一汽解放、東風商用、上汽商用......
全球領先一級供應商:
博世、大陸集團、聯合汽車電子、安波福、采埃孚、科世達、舍弗勒、霍尼韋爾、大疆、日立、哈曼、華為、百度、聯想、聯發科、普瑞均勝、德賽西威、蜂巢轉向、均聯智行、武漢光庭、星紀魅族、中車集團、贏徹科技、濰柴集團、地平線、紫光同芯、字節跳動、......
二級供應商(500+以上):
Upstream、ETAS、Synopsys、NXP、TUV、上海軟件中心、Deloitte、奇安信、為辰信安、云馳未來、信大捷安、信長城、澤鹿安全、紐創信安、復旦微電子、天融信、奇虎360、中汽中心、中國汽研、上海汽檢、軟安科技、浙江大學......
人員占比

公司類型占比

更多文章
關于涉嫌仿冒AutoSec會議品牌的律師聲明
一文帶你了解智能汽車車載網絡通信安全架構
網絡安全:TARA方法、工具與案例
汽車數據安全合規重點分析
淺析汽車芯片信息安全之安全啟動
域集中式架構的汽車車載通信安全方案探究
系統安全架構之車輛網絡安全架構
車聯網中的隱私保護問題
智能網聯汽車網絡安全技術研究
AUTOSAR 信息安全框架和關鍵技術分析
AUTOSAR 信息安全機制有哪些?
信息安全的底層機制
汽車網絡安全
Autosar硬件安全模塊HSM的使用
首發!小米雷軍兩會上就汽車數據安全問題建言:關于構建完善汽車數據安全管理體系的建議