一、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段内容的。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 系统优化大全 (18460篇文章)
- 系统安全设置 (24015篇文章)
- 电脑知识 (6664篇文章)
- 系统安装手册 (21228篇文章)
- 系统备份专题 (17876篇文章)
- Linux集群技术 (8707篇文章)
- 体验Linux的音影世界 (8378篇文章)
- Linux驱动大全 (9191篇文章)
- Linux下的路由的配置与应用 (12205篇文章)
- Linux命令简介 (10278篇文章)
- 最具影响力的七大GNU/Linux发行版 (158次浏览)
- VMware虚拟机Linux通过NAT方式上网 (124次浏览)
- Linux“装机”一条龙 (91次浏览)
- Linux下安装VMware虚拟机的过程详解 (72次浏览)
- Linux系统命令分类详解 (1) (70次浏览)
- Linux上的偷窺裝置 (1394的使用) (57次浏览)
- 安装qmail全套功略 (52次浏览)
- Linux系统管理员秘技:用快捷命令一招制胜 (52次浏览)
- TurboLinux 入门教程:第七课 TurboLinux简介 (51次浏览)
- Linux服务器ADSL利用NAT实现上网共享 (48次浏览)



