linux进程切换和TSS结构
来源:互联网 发布:高级sql语言哪里能学到 编辑:程序博客网 时间:2024/05/21 13:54
TSS 全称为task state segment,是指在操作系统进程管理的过程中,进程切换时的任务现场信息。
X86体系从硬件上支持任务间的切换。为此目的,它增设了一个新段:任务状态段(TSS),它和数据段、代码段一样也是一种段,记录了任务的状态信息。
与其它段一样,TSS也有描述它的结构:TSS描述符表,它记录了一个TSS的信息,同时还有一个TR寄存器,它指向当前任务的TSS。任务切换的时候,CPU会将原寄存器的内容写出到相应的TSS,同时将新TSS的内容填到寄存器中,这样就实现了任务的切换。
TSS在任务切换过程中起着重要作用,通过它实现任务的挂起和恢复。所谓任务切换是指挂起当前正在执行的任务,恢复或启动执行另一个任务。Linux任务切换是通过switch_to这个宏来实现的,它利用长跳指令,当长跳指令的操作数是TSS描述符的时候,就会引起CPU的任务的切换,此时,CPU将所有寄存器的状态保存到当前任务寄存器TR所指向的TSS段中,然后利用长跳指令的操作数(TSS描述符)找到新任务的TSS段,并将其中的内容填写到各个寄存器中,最后,将新任务的TSS选择符更新到TR中。这样系统就开始运行新切换的任务了。由此可见,通过在TSS中保存任务现场各寄存器状态的完整映象,实现了任务的切换。 task_struct中的tss成员就是记录TSS段内容的。当进程被切换前,该进程用tss_struct保存处理器的所有寄存器的当前值。当进程重新执行时,CPU利用tss恢复寄存器状态。
- linux进程切换和TSS结构
- Linux0.11进程切换和TSS结构
- 进程切换与TSS
- x86体系下linux中的任务切换与TSS
- x86体系下linux中的任务切换与TSS .
- x86体系下Linux中的任务切换与TSS
- Linux进程调度时机和进程切换
- 14-TSS切换实验
- 关于利用任务状态段TSS进行进程切换的一点说明
- Linux进程调度和切换过程分析
- linux进程调度和切换过程
- Linux进程调度和切换过程分析
- TSS----任务切换的核心
- linux tss 断研究
- linux任务切换以及TSS以及内核栈以及寄存器的保存
- linux任务切换以及TSS以及内核栈以及寄存器的保存
- linux进程解析--进程切换
- Linux内核进程切换
- Oracle 构建定制 期间划分段 [类似期间表]
- SHGetFileInfo的用法
- Oracle索引理解
- SqlDataAdapter批量更新数据---实例
- 为什么国外程序员爱用 Mac?
- linux进程切换和TSS结构
- JVM监控工具使用速查手册
- innodb内部结构分析
- 单例模式实际业务理解
- 百钱百鸡问题
- VC++ 关于串口操作的配置参数的设置
- 转载的一篇字符编码简易概念性文章
- apt-get behind a proxy server
- 微软招聘探秘(一)