- 1.什麼是上下文?
答:上下文是由CPU寄存器和程序計數器組成
- 2.CPU爲何進行上下文切換?
答:CPU上下文切換,是保證Linux系統正常工做的核心功能之一
- 3.什麼是CPU上下文切換?
答:CPU上下文切換,就是先把前一個任務的CPU上下文保存起來,而後加載新任務的上下文到這些寄存器和程序計數器中,最後跳轉到程序計數器所指的新位置,運行任務
- 4.什麼是cpu寄存器?
答:cpu寄存器是cpu內置很小、但速度極快的內存
- 5.什麼是程序計數器?
答:是用來存儲CPU正在執行的指令位置、或者即將執行的下一條指令位置
- 6.cpu保存的上下文會存儲在哪裏?
答:存儲在系統內核中
- 8.cpu上下文切換有哪些場景?
答:進程上下文切換、線程上下文切換、中斷上下文切換
- 9.ring0和ring3分別是什麼?
答:ring0是內核態、ring3是用戶態
- 10.特權模式切換是經過什麼進行完成的?
答:系統調用
- 11.特權模式切換的步驟是什麼?
答:CPU寄存器裏原來的用戶指令須要先保存起來,爲了執行內核態代碼,CPU寄存器須要更新爲內核態指令的新位置,最後跳轉到內核運行內核任務
- 12.一次特權模式切換髮生了幾回CPU上下文切換?
答:2次
- 13.什麼是進程上下文切換?
答:是指從一個進程切換到另外一個進程
- 14.進程上下文切換與特權模式切換有什麼區別?
答:進程上下文切換,是指一個進程切換到另外一個進程
特權模式切換是一直運行同一個進程
- 15.何時會切換進程上下文?
答:只有在進程調度時,才須要切換上下文
- 16.進程在何時纔會被調度到 CPU 上運行?
答:
(1)當某個進程時間片耗盡
(2)進程在系統資源不足時
(3)當進程經過sleep主動掛起時
(4)當有優先級更高的進程運行時
- 19.線程與進程最大的區別是什麼?
答:
(1)當進程只有一個線程時,能夠認爲進程等於線程
(2)當進程擁有多個線程時,這些線程會共享相同的虛擬內存和全局變量等資源。這些資源上下文切換時是不須要修改的
- 20.線程上下文切換有哪幾種狀況?
答:先後線程不屬於同一進程、先後線程屬於同一進程
- 21.什麼是中斷上下文切換?
答:爲了快速響應硬件事件,中斷處理會打斷進程的正常調度和執行
注:有哪些減小上下文切換的技術用例?
答:數據庫鏈接池(複用鏈接)、合理設置應用的最大進程,線程數、直接內存訪問DMA、零拷貝技術數據庫