CPU利用时间片轮询来为每个任务都服务一定的时间,然后把当前任务的状态保存下来,继续服务下一个任务。任务的状态保存及再加载就叫做线程的上下文切换。
在一个进程内部可以有多个线程在同时运行,并与创建它的进程共享同一地址空间和其它资源。
上下文:批线程切换时CPU寄存器和程序计数器所保存的当前线程的信息。
寄存器:指CPU内部容量较小但速度很快的内存区域(与之相对应的是CPU外相对较慢的RAM主内存)。多用户间上下文线程,寄存器通过对常用值(常为运算的中间值)的快速访问来加快计算机程序的速度。
程序计数器:是一个专用的寄存器,用于表明指令序列中CPU正在执行的位置,存储的值为正在执行的指令的位置或下一个将被执行的指令的位置,这依赖于特定的系统。
上下文切换指的是内核(OS的核心)在CPU上对进程或线程进行切换。上下文切换过程中的信息被保存在进程控制块(PCB ,Process Control Block)中。PCB又被称作切换帧(SwitchFrame)。线程和进程的关系。上下文切换的信息会一直被保存在CPU的内存中。直到被再次使用。上下文切换流程如下:
(1)挂起一个进程,将这个进程在CPU中的状态(上下文信息)存储于内存的PCB中。
(2)在PCB中检索下一个进程的上下文并将其在CPU的寄存器中恢复。
(3)跳转到程序计数器所指向的位置(即跳转到进程被中断时的代码),并恢复该进程。检测线程上下文注入,
时间片轮转方式使多个任务在同一CPU上的执行有了可能。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态