线程上下文切换、多线程频繁上下文切换
在时间片轮转方式下,CPU为每个任务服务一定的时间,保存当前任务的状态,加载下一个任务后,继续服务下一个任务。 这个过程被称为上下文切换。
分片轮换方式允许在同一个CPU上执行多个任务。
1、进程(有时也称为任务)是指一个程序运行的实例。 在Linux系统上,线程是一个轻量级进程,可并行执行,并与父进程(创建它们的进程)共享相同的地址空间(内存空间的一部分)和其他资源。
2、上下文:指某一时刻CPU寄存器和程序计数器的内容。
3、寄存器: CPU内部数量较少但速度较快的存储器(与此相对应的是CPU外部相对较慢的RAM主存储器)。 寄存器通过快速访问常用值,通常是运算的中间值来提高计算机程序的执行速度。
4 .程序计数器:专用寄存器,用于指示CPU在指令序列中运行的位置,存储的值是正在执行的指令的位置或下一个要执行的指令的位置,具体取决于特定的系统。
5.PCB-“切换帧”(上下文切换包括内核(操作系统核心)在CPU上的进程)线程)被认为是可切换的,上下文切换中的信息是进程控制块PCB也称为“帧切换”。 信息将保存在CPU的内存中,直到再次使用。
6 .上下文切换活动
1 )挂起进程,将该进程在CPU内的状态(上下文)保存在内存中的某个位置。
2 )在存储器中搜索下一个城镇的上下文,并将其还原到CPU的寄存器中。
3 )跳转到程序计数器指定的位置(也就是跳转到进程被中断时的代码行)后,便返回到程序内的该进程。
7 .引起线程上下文切换的原因
1 )当前正在运行的任务的时间片用完后,系统CPU照常调度下一个任务;
2 )如果当前正在运行的任务遇到IO块,调度程序将挂起该任务,然后继续下一个任务;
3 )多个任务抢占锁定资源,当前任务未抢占锁定资源,被调度器挂起,进入下一任务;
4 )用户代码挂起当前任务,让出CPU时间;
5 )硬件中断
相关文章还没有相关文章