没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
相信很多人都为多个流程并行执行的问题搞得很头痛吧很多人都是用状态机来解决少数人则用操作系统来解决操作系统可以使
代码跟单任务时一样直观简洁但附带的开销有点大 这样的片子有点吃不消我自已做了好几个操作系统都是超轻量级的其中
最简单的一个整个操作系统只有十几行代码几十个字节却能很好的支持多个任务并行想知道是怎么做的吗跟我来玩玩改改
有一点我必须申明这篇贴子的目的是教会大家如何现场写一个 而不是给大家提供一个 版本提供的所有代码也都是示例
代码所以不要因为它没什么功能就说 之类的话如果把功能写全了一来估计你也不想看了二来也失去灵活性没有价值了
直接进入主题先贴一个操作系统的示范出来大家可以看到原来操作系统可以做得么简单
当然这里要申明一下这玩意儿其实算不上真正的操作系统它除了并行多任务并行外根本没有别的功能但凡事都从简单开始搞懂
了它就能根据应用需求将它扩展成一个真正的操作系统
好了代码来了
将下面的代码直接放到 里编译在每个 函数的那里打上断点就可以看到它们的确是同时在执行的
!"#$"%&
!"'"()*+,,任务槽个数必须和实际任务数一至
!"'"()*-.+,,最大栈深最低不得少于 + 个保守值为 +
%"!$!/()*0/()*-.0,,任务堆栈
%"!$!,,当前活动任务号
,,任务切换函数任务调度器
12!3
4/!05.
677!55()*
!58
.54/!0
9
,,任务装入函数将指定的函数参数 装入指定参数 +的任务槽中如果该槽中原来就有任务则原任务丢失但系统本身不会发生
错误
12!2! %"!6 %"!$!3
4/!05/!07
/!0/805 %"!6:8;<
/!0/05 %"!6&&=
9
,,从指定的任务开始运行任务调度调用该宏后将永不返回
!"'"2$!3!5!.54/!0$" $9
,>5555555555555555555555555555以下为测试代码5555555555555555555555555555>,
12!3
%"!$
"3
77
,,编译后在这里打上断点
9
9
12!+3
%"!$?
"3
?75+
,,编译后在这里打上断点
9
9
12!@3
,,这里装载了两个任务因此在定义 ()* 时也必须定义为 +
2!8,,将 函数装入 8 号槽
2!+,,将 + 函数装入 号槽
2$8
资源评论
gqwen
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功