深入分析CPU上下文切换
我们都知道,Linux 是一个多使命操纵体系,它支持宏大于 CPU 数目的使命同时运行。虽然,这些使命现实上并不是真的在同时运行,而是由于体系在很短的时刻内,将 CPU 轮番分派给它们,造成多使命同时运行的错觉。 而在每个使命运行前,CPU 都必要知道使命从那边加载、又从那边开始运行,也就是说,必要体系事先帮它配置好 CPU 寄存器和措施计数器(Program Counter,PC)。 CPU 寄存器,是 CPU 内置的容量小、但速率极快的内存。而措施计数器,则是用来存储 CPU 正在执行的指令位置、可能即将执行的下一条指令位置。它们都是 CPU 在运行任何使命前,必需的依靠情形,因此也被叫做 CPU 上下文。 而这些生涯下来的上下文,会存储在体系内核中,并在使命从头调治执行时再次加载进来。这样就能担保使命原本的状态不受影响,让使命看起来照旧持续运行。 按照使命的差异,CPU的上下文切换可以分为差异的场景,也就是历程上下文切换、线程上下文切换、间断上下文切换。 历程上下文切换 Linux 凭证特权品级,把历程的运行空间分为内核空间和用户空间,别离对应着下图中, CPU 特权品级的 Ring 0 和 Ring 3。 内核空间(Ring 0)具有***权限,可以直接会见全部资源; 用户空间(Ring 3)只能会见受限资源,不能直接会见内存等硬件装备,必需通过体系挪用陷入到内核中,才气会见这些特权资源 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |