最简单的多任务模型.ppt
《最简单的多任务模型.ppt》由会员分享,可在线阅读,更多相关《最简单的多任务模型.ppt(38页珍藏版)》请在三一办公上搜索。
1、5.2 最简单的多任务模型,目 录,任务切换模型范例分析,双任务切换模型,待解决的问题,setTaskJmp()的实现,task 1,双任务切换模型,保存task0上下文,恢复task1上下文并跳转,保存task1上下文,恢复task0上下文并跳转,task 0,任务切换,双任务是多任务最简单的典型情况,而任务切换是学习多任务操作系统的重点和难点。,多任务操作系统核心的基本原理,在源代码层次,任务也是一个函数。,双任务切换模型,双任务是多任务最简单的典型情况,而任务切换是学习多任务操作系统的重点和难点。,任务切换,task 0.1,task 0.2,task 1.1,task 1.2,可将任务
2、函数分成若干程序段。,在源代码层次,任务也是一个函数。,longjmp(jbTask0),setjmp(jbTask1),longjmp(jbTask1),setjmp(jbTask0),双任务切换模型|setjmp和longjmp的作用,保存task0上下文,恢复task1上下文并跳转,保存task1上下文,恢复task0上下文并跳转,双任务是多任务最简单的典型情况,而任务切换是学习多任务操作系统的重点和难点。,任务切换,task 0.1,task 0.2,task 1.1,task 1.2,若要实现函数之间的跳转,可使用非局部跳转函数setjmp()和longjmp()。,双任务切换模型|
3、setjmp和longjmp的作用,保存task0上下文,恢复task1上下文并跳转,保存task1上下文,恢复task0上下文并跳转,双任务是多任务最简单的典型情况,而任务切换是学习多任务操作系统的重点和难点。,任务切换,task 0.1,task 0.2,task 1.1,task 1.2,保存task0上下文,setjmp(jbTask1),longjmp(jbTask1),setjmp(jbTask0),longjmp(jbTask0),若要实现函数之间的跳转,可使用非局部跳转函数setjmp()和longjmp()。,恢复task1上下文并跳转,双任务切换模型|setjmp和long
4、jmp的作用,保存task0上下文,恢复task1上下文并跳转,保存task1上下文,恢复task0上下文并跳转,双任务是多任务最简单的典型情况,而任务切换是学习多任务操作系统的重点和难点。,任务切换,task 0.1,task 0.2,task 1.1,task 1.2,setjmp(jbTask1),longjmp(jbTask1),setjmp(jbTask0),longjmp(jbTask0),若要实现函数之间的跳转,可使用非局部跳转函数setjmp()和longjmp()。,task 0.1,task 1.1,双任务切换模型和程序分析,保存task0上下文,恢复task1上下文并跳转
5、,保存task1上下文,恢复task0上下文并跳转,任务切换,task 0.2,task 1.2,setjmp(jbTask1),longjmp(jbTask1),setjmp(jbTask0),longjmp(jbTask0),task 0,task 1,void task0(void)task0Init();while(1)task0_program1;ctmp=setjmp(jbTask0);if(ctmp=0)longjmp(jbTask1);task0_program2;,void task1(void)task1Init();while(1)task1_program1;ctmp=
6、setjmp(jbTask1);if(ctmp=0)longjmp(jbTask0);task1_program2;,双任务切换模型和程序分析,保存task0上下文,恢复task1上下文并跳转,保存task1上下文,恢复task0上下文并跳转,task 0.2,task 1.2,setjmp(jbTask1),longjmp(jbTask1),setjmp(jbTask0),longjmp(jbTask0),void task0(void)task0Init();while(1)task0_program1;ctmp=setjmp(jbTask0);if(ctmp=0)longjmp(jbTa
7、sk1);task0_program2;,void task1(void)task1Init();while(1)task1_program1;ctmp=setjmp(jbTask1);if(ctmp=0)longjmp(jbTask0);task1_program2;,task 0.1,task 1.1,task 0,task 1,任务0和1都初始化完成,双任务切换模型和程序分析,保存task0上下文,恢复task1上下文并跳转,保存task1上下文,恢复task0上下文并跳转,task 0.2,task 1.2,setjmp(jbTask1),longjmp(jbTask1),setjmp
8、(jbTask0),longjmp(jbTask0),void task0(void)task0Init();while(1)task0_program1;ctmp=setjmp(jbTask0);if(ctmp=0)longjmp(jbTask1);task0_program2;,void task1(void)task1Init();while(1)task1_program1;ctmp=setjmp(jbTask1);if(ctmp=0)longjmp(jbTask0);task1_program2;,task 0.1,task 1.1,task 0,task 1,任务0和1都已运行,并
9、保存了各自的上下文,双任务切换模型和程序分析,保存task0上下文,恢复task1上下文并跳转,保存task1上下文,恢复task0上下文并跳转,task 0.2,task 1.2,setjmp(jbTask1),longjmp(jbTask1),setjmp(jbTask0),longjmp(jbTask0),void task0(void)task0Init();while(1)task0_program1;ctmp=setjmp(jbTask0);if(ctmp=0)longjmp(jbTask1);task0_program2;,void task1(void)task1Init();
10、while(1)task1_program1;ctmp=setjmp(jbTask1);if(ctmp=0)longjmp(jbTask0);task1_program2;,task 0.1,task 1.1,task 0,task 1,则使用longjmp(jbTask1)后,切换到setjmp(jbTask1)保存的位置,0,运行task0.1,保存task0上下文,双任务切换模型和程序分析,task 0.2,task 1.2,setjmp(jbTask1),longjmp(jbTask1),longjmp(jbTask0),void task0(void)task0Init();whil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 任务 模型

链接地址:https://www.31ppt.com/p-5820135.html