上下文切换(Context Switch)
来源:互联网 发布:中超球员数据统计 编辑:程序博客网 时间:2024/05/21 06:40
上下文切换
上下文切换定义(Context Switch)
上下文切换指的是CPU从一个进程(线程)切换到另一个进程(线程)。
进程是正在执行的一个程序的实例,在Linux中,线程可以算作轻量级进程,线程可以并发执行,并且同一进程创建的线程可以共享同一片地址空间及其它资源,即该进程的进程地址空间及属于该进程的其它资源。
上下文定义(Context)
上下文指的是CPU各个寄存器(register)的内容及程序计数器(PC)在此时记录的内容。
寄存器是CPU内部,容量非常小的高速存储设备,不同于RAM是在CPU外部,RAM读写速度比寄存器慢得多,寄存器容量又非常小,一般只用来存储一些程序中使用频率较高的数据,以加速程序的执行。
程序计数器则是一个专用的寄存器,它仅用于存储CPU正在执行的指令的地址或CPU下一条将要执行的指令的地址,具体是哪种情况要看特定的系统。
上下文切换所做的工作(Context Switch)
- 暂停当前进程执行流程,将各个寄存器内容存到内存中;
- 从内存中取出下一个将要执行的进程的上下文,存进各个寄存器中;
- 返回程序计数器记录的指令地址,用于恢复进程执行。
上下文切换的代价
上下文切换一般是计算密集型的。它需要大量的处理器时间,也可以说是时钟周期,时钟周期一般单位以毫微秒计算,但在1秒时间内,上下文切换大概能执行上千次或者更多一点,毫微秒是10的-9次方秒,而对于单次上下文切换,其所用时间也不过10的-3到-4次方秒,通过其间间隔的数量级就可以了解到上下文切换的代价在操作系统中绝对算是一个可以显著发觉的巨大消耗。
即便现代计算机正在逐渐降低上下文切换所占用的CPU时间,但那也仅是在CPU时钟周期降低,处理速度加快的情况下,而不是提升了上下文切换的效率。
0 0
- 上下文切换(Context Switch)
- Context Switch Definition:上下文切换的定义
- Linux进程上下文切换(process context switch)
- 测试Context Switch time(进程上下文切换时间)
- 从Java视角理解CPU上下文切换(Context Switch)
- CPU上下文切换的次数和时间(context switch)
- 从Java视角理解CPU上下文切换(Context Switch)
- 操作系统重点双语阅读 - 上下文切换 Context Switch
- 从Java视角理解CPU上下文切换(Context Switch)
- 从Java视角理解CPU上下文切换(Context Switch)
- java 从Java视角理解CPU上下文切换(Context Switch)
- 从Java视角理解CPU上下文切换(Context Switch)
- 从Java视角理解CPU上下文切换(Context Switch)
- 从Java视角理解CPU上下文切换(Context Switch)
- 从Java视角理解CPU上下文切换(Context Switch)
- 从Java视角理解CPU上下文切换(Context Switch)
- lmbench的使用方法 与CPU上下文切换的次数和时间(context switch)
- 查看 CPU上下文切换的次数和时间(context switch)
- python添加环境变量
- python 不是内部或外部命令
- 方法
- Eclipse窗口总是在最前的解决办法
- Xamarin.Android编译提示找不到mscorlib.dll.so文件
- 上下文切换(Context Switch)
- OI小记
- struts2学习笔记(接收参数——域模型、DTO)
- 在ubantu14下搭建lamp的再次记录
- 面向对象特征
- Android UI设计——ViewPager中设置底部显示圆点焦点
- 第三周项目2-建设“顺序表”算法库
- 《Clean Code》代码的整洁之道(一)
- AS2.2打包:release-stripped.ap_' specified for property 'resourceFile' does not exist