IA-32 Intel手册学习笔记(三)任务切换

本文详细介绍了IA-32架构下任务切换的过程,涉及任务的组成、任务状态段(TSS)、任务切换的触发条件及处理器执行的步骤。内容涵盖任务的执行空间、通用寄存器状态、任务切换中的权限检查、任务状态保存与恢复,以及任务门描述符在任务切换中的作用。
摘要由CSDN通过智能技术生成

一个任务由两部分组成

  • 任务执行空间,由代码段,栈段,和一个或多个数据段组成
  • 任务状态段(TSS)

如果操作系统使用处理器特权级机制,那么任务执行空间会对每个特权级提供不同的栈(实际上是对0, 1, 2三个特权级分别提供不同的栈)

注,用户程序的特权级是3,不是上述三个栈中的任何一个,而是SS : ESP表示的栈

一个正在被执行的任务状态包括

  • 任务当前执行的空间,由各种段选择子决定(CS, DS, SS, ES, FS和GS)。在线性地址空间中,是一个段空间
  • 通用寄存器状态,包括EAX, ECX, EDX, EBX, ESP, ESI和EDI的值
  • EIP寄存器的状态,即EIP的值
  • CR3控制寄存器的值
  • 任务寄存器(TR)的状态
  • LDTR寄存器的状态
  • I/O内存映射的基地址(包含在TSS中),(共享内存?)
  • 三个栈指针,分别指向特权级0, 1, 2的栈地址
  • 上一个被执行的任务的link(地址)

任务状态中”上一个被执行的任务的link”指的是

当任务A使用CALL指令调用任务B时,在任务B的任务状态中会包含任务A的地址,以便于当B执行完成后可以返回到任务A接着执行。很像汇编中CALL指令调用函数时将下一条语句的地址入栈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值