当前位置: 首页 >> 科技 >
任务等待状态该如何理解?关于任务的寄存器保存是什么操作?
来源:创视网     时间:2023-01-06 15:51:24

任务等待状态:

多任务系统中,很多资源都是所有任务共享的。当任务试图获取某项资源失败后,都会进入到等待状态。在等待状态中,该任务会释放CPU资源,进入被等待资源的等待队列中。当被等待资源被释放后,ucos会从等待队列中,找到优先级最高的等待任务恢复到运行状态继续执行。

同时,ucos系统也提供了另一种等待策略:任务延时等待。即运行状态下的任务,可以通过延时等待功能进入到等待状态,此时释放CPU资源。当等待超时后,会重新抢夺CPU资源,至于那个时候能不能抢到,就看超时后调度的时刻是否有优先级更高的任务了。

任务问题寄存器保存区域

寄存器保存区域位于TSS内偏移20H至5FH处,用于保存通用寄存器、段寄存器、指令指针和标志寄存器。当TSS对应的任务正在执行时,保存区域是未定义的;在当前任务被切换出时,这些寄存器的当前值就保存在该区域。当下次切换回原任务时,再从保存区域恢复出这些寄存器的值,从而,使处理器恢复成该任务换出前的状态,最终使任务能够恢复执行。

从上图可见,各通用寄存器对应一个32位的双字,指令指针和标志寄存器各对应一个32位的双字;各段寄存器也对应一个32位的双字,段寄存器中的选择子只有16位,安排再双字的低16位,高16位未用,一般应填为0。

推荐新闻 +
猜您喜欢 +