请问:多任务内核怎么把任务挂起(任务A挂起任务B)?
请问:多任务内核,一个任务A如何把另外一个任务B挂起? 如果允许的话,应该也就是调用系统的API设置任务B的状态为挂起,这样进程调度时就不会选择B了。 一般有三种情况:1, 中断引发任务挂起
2, 调用系统服务
3, 自身阻塞 说明一下,我用的不是现成RTOS,而是自己写的 简单内核,想要用一个任务挂起另外一个任务,
问题在 任务挂起前,怎么把任务占用的资源释放掉。 清除任务栈即可。 任务挂起,不是删除,可以再恢复。
任务挂起前,释放占用资源,指占用的信号量等。 减1 这个问题也好处理
你挂起前先检查它有没有占有资源,如果占有了,则不能挂起
这时可以给这个任务块安排一个标志量,等它释放资源后,自身将自身挂起就OK了 1.这种问题是无解的,物理法则决定了这是不可能,MS,UNIX,LINUX,那个解决这问题了?
2.退而求其次的解决办法在操作系统原理书里面大把说明,把你用到的资源通通注册到一个表里面.
3.具体问题具体解决,把你DIY的那个OS整个打包上来.我很奇怪你能写出OS,却不知道如何处理资源.见过不会转方向盘的F1赛手没? 还是采用了,在任务控制块加个 挂起请求标志,任务自己在主循环查询这个标志,然后自己挂起自己。 恭喜,这才是正解.最笨的办法往往最管用. 【9楼】 voidx void *
积分:280
派别:
等级:------
来自:
还是采用了,在任务控制块加个 挂起请求标志,任务自己在主循环查询这个标志,然后自己挂起自己。
---------------------------------
把这个操作封装到释放资源的api中如何?
页:
[1]