- 22
- 0
- 约1.69万字
- 约 37页
- 2016-12-18 发布于北京
- 举报
任务的调度(续) 2. 任务切换宏OS_TASK_SW() SP R1 R2 … … Rn PC PSW R1 R2 …… Rn PC PSW R1 R2 …… Rn PC PSW CPU的各寄存器 被中止任务TCB 待运行任务TCB OSTCBStkPtr OSTCBStkPtr 被中止任务堆栈 待运行任务堆栈 图2-11 调度器进行 任务切换时的动作 断点:任务被中止运行时的位置。 断点数据:当时存放在CPU的各寄存器中的数据。 “无缝”接续:当任务恢复运行时,必须在断点处以断点数据作为初始数据接着运行。 正确地恢复断点数据的关键: CPU的堆栈指针SP是否有正确的指向。 在系统中存在多个任务时,如果在恢复断点数据使用另一个任务的任务堆栈指针(存放在TCB的OSTCBStkPtr中)来改变CPU的堆栈指针SP,那么CPU运行的就不是刚才被中止运行的任务,而使另一个任务了,也就是实现任务切换了。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. 任务的调度(续) 2. 任务切换宏OS_TASK_SW()-续 为了完成图2-11的操作,要依次做如下7项工作: 把被中止任务的断点指针保存到任务堆栈中; 把CPU通用寄
原创力文档

文档评论(0)