Linux性能优化——CPU上下文切换
通过阅读文本你将了解到以下内容:
- CPU上下文切换的原理
- CPU上下文切换的种类
- CPU上下文切换对性能的影响
1. 原理
Linux是一个支持多任务的操作系统,它能够让大于CPU核心数的任务同时运行。当然,这里所说的同时有时候并不是真正意义上的同时,而是系统在很短时间内,将CPU时间片轮流分配给任务,让他们看起来像是同时运行。
系统在调度每一个任务运行时,都要知道该任务从哪里加载,从哪里开始运行,这就涉及到系统为这些任务设置CPU寄存器和程序计数器(Program Counter,PC)。这两者是CPU在运行任何任务前,必须依赖的环境,因此被称为CPU上下文。系统在切换任务时需要先保存前一个任务的CPU上下文,然后加载(或恢复)下一个任务的CPU上下文,最后跳转到PC所指位置运行任务。这一过程被称为CPU上下文切换。CPU上下文切换,是保证Linux系统正常工作的核心功能之一。
这里提到的任务到底指的是什么呢?其实任务具体分为三种:进程、线程和中断。根据任务的不同,CPU上下文切换也分为三种,即进程上下文切换、线程上下文切换和中断上下文切换。
2. 进程上下文切换
按照特权等级,进程的运行空间可分为内核空间和用户空间。进程运行在内核空间,被