比思論壇

標題: 什么是上下文切换? [打印本頁]

作者: 642377962    時間: 2021-12-7 10:30
標題: 什么是上下文切换?
多线程编程中一般线程的个数都大于 CPU 核心的个数,而一个 CPU 核心在任意时刻只能被一个线程使用,为了让这些线程都能得到有效执行,CPU 采取的策略是为每个线程分配时间片并轮转的形式。当一个线程的时间片用完的时候就会重新处于就绪状态让给其他线程使用,这个过程就属于一次上下文切换。


概括来说就是:当前任务在执行完 CPU 时间片切换到另一个任务之前会先保存自己的状态,以便下次再切换回这个任务时,可以再加载这个任务的状态。任务从保存到再加载的过程就是一次上下文切换。


上下文切换通常是计算密集型的。也就是说,它需要相当可观的处理器时间,在每秒几十上百次的切换中,每次切换都需要纳秒量级的时间。所以,上下文切换对系统来说意味着消耗大量的 CPU 时间,事实上,可能是操作系统中时间消耗最大的操作。


Linux 相比与其他操作系统(包括其他类 Unix 系统)有很多的优点,其中有一项就是,其上下文切换和模式切换的时间消耗非常少。

作者: jf222    時間: 2022-7-28 02:29
提示: 作者被禁止或刪除 內容自動屏蔽
作者: zhaoxu1991    時間: 2023-8-21 02:13
这个贴不错
作者: @@@714180Yym    時間: 2023-9-13 03:54
这个贴不错
作者: ta504384421    時間: 2023-11-5 05:42
提示: 作者被禁止或刪除 內容自動屏蔽
作者: as1987072009    時間: 2023-11-10 21:29
提示: 作者被禁止或刪除 內容自動屏蔽
作者: qa423693263    時間: 2024-4-2 04:16
提示: 作者被禁止或刪除 內容自動屏蔽
作者: call911    時間: 2024-4-8 02:00
可爱小美女!




歡迎光臨 比思論壇 (http://asicrs.com/) Powered by Discuz! X2.5