赛迪网 > IT技术 Linux > 新手学堂
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

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

发布时间:2008.04.09 06:30     来源:赛迪网    作者:korn

一、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段内容的。

(责任编辑:云子)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Linux操作系统httpd启动失败的解决方法 (04-08) · RED HAT AS4 U4下Gssftp服务的配置方法 (04-08)
· 顶尖程序高手Swgo称将开发Linux下的游戏 (04-08) · Linux操作系统中打开文件数量的查看方法 (04-08)
· 英特尔为开源代码研发提供验证服务支持 (04-08) · Ubuntu Linux系统挂载Ext3扩展分区方法 (04-07)
· Linux系统下多线程程序编译makefile文件 (04-07) · Linux系统下使用Crontab修改库表的疑惑 (04-07)
· 实用技巧:使用LoadRunner监控Linux方法 (04-07) · Linux与Unix文件系统备份和恢复方法介绍 (04-07)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 移动信息化市场方兴未艾 企业呼唤标准出台
· 如何把握企业价值差异 避免CRM与SCM脱节
· 齐看四大厂商的SaaS动态 ERP案例分析
· 通方期货CRM解决方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统