快速业务通道

Linux系统原理知识 进程切换的概念介绍

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-07

一、tast_struct结构

它是一个数据结构,可以说,它代表了一个进程.它有很多字段,大体有一下几种:

标识号:进程标识、用户标识、组标识.

状态: Linux的进程的四种基本状态

调度信息:优先级、时间片等

进程链信息:父进程、子进程的指针

文件信息:打开文件、虚拟文件系统

上下文信息:进程的运行环境

二、I386体系的任务管理和调度

I386体系从硬件上支持任务间的切换.为此目的,增设了一种新段:任务状态段(TSS),它和数据段、代码段一样也是一种段,其次它记录了任务的状态信息.

与其它段一样,也有描述它的结构:TSS描述符表,它记录了一个TSS的信息,同时还有一个TR寄存器,它指向当前任务的TSS.任务切换的时候,cpu会将原寄存器的内容写出到相应的TSS,同时将新TSS的内容填到寄存器中,这样就实现了任务的切换.

三、Linux进程切换

Linux任务切换是通过switch_to这个宏实现的,它利用长跳指令,当长跳指令的操作数是TSS描述符的时候,就会引起CPU的任务的切换,此时,cpu将所有寄存器的状态保存到当前任务寄存器TR所指向的TSS段(当前任务的任务状态段)中,然后利用长跳指令的操作数(TSS描述符)找到新任务的TSS段,并将其中的内容填写到各个寄存器中,,将新任务的TSS选择符更新到TR中.这样系统就正式开始运行新切换的任务了.上面提到的task_struct中的tss成员就是记录TSS段内容的.

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号