linux內核態和用戶態的區別?
主要區別:是代碼執行的層級;性能損失來源于緩沖區的復制。
首先內核態和用戶態的堆和棧是不一樣的,所以必然會發生寄存器狀態的切換,其實單純切換寄存器影響倒不是特別大,大概就是會影響 CPU 方面的一些比如指令流水,分支預測等
最大的問題是用戶態程序發生系統調用相當于把控制權交給內核,內核甚至會剝奪當前進程的執行,去執行另一個進程,那這個時候要發生 TLB flush,這個對性能影響非常大不說,整個進程的執行都會停止
linux內核態和用戶態的區別?
主要區別:是代碼執行的層級;性能損失來源于緩沖區的復制。
首先內核態和用戶態的堆和棧是不一樣的,所以必然會發生寄存器狀態的切換,其實單純切換寄存器影響倒不是特別大,大概就是會影響 CPU 方面的一些比如指令流水,分支預測等
最大的問題是用戶態程序發生系統調用相當于把控制權交給內核,內核甚至會剝奪當前進程的執行,去執行另一個進程,那這個時候要發生 TLB flush,這個對性能影響非常大不說,整個進程的執行都會停止