進程和線程上下文切換的區別


提一嘴上下文切換 ,上下文切換是一個過程 ,從任務保存到再加載的過程就是一次上下文切換

線程和進程上下文切換的區別

進程切換需要分兩步

1.切換頁目錄以使用新的地址空間
2.切換內核棧和硬件上下文

對於linux來說,線程和進程的最大區別就在於地址空間。
對於線程切換,第一步是不需要做的,第二步是進程和線程切換都要做的,所以進程對此比線程切換代價大。

調度

進程調度,切換進程上下文,包括分配的內存,數據段,堆棧段等
線程調度,切換線程上下文,主要切換堆棧,以及各寄存器(同個進程里的線程 堆棧不同)

協程,(輕量級線程) 每個協程都自帶一個棧,協程就是一個函數和這個函數運行時數據的棧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM