发新帖我要提问
123
返回列表
打印

smartrtos单片机多任务操作系统发布,资源已可以下载

[复制链接]
楼主: singleywy
手机看帖
扫描二维码
随时随地手机跟帖
41
singleywy|  楼主 | 2011-3-14 17:18 | 只看该作者 回帖奖励 |倒序浏览
还有就是,您理解的是对的,分别设置了5个信号量,代表了5个资源,由于发表仓促,一些细节的东西还没有介绍,
PS:OsSemV(0),当信号量0释放的时候,如果有更高优先级的任务在等待信号量,则立即进行任务切换;

使用特权

评论回复
42
刘前辈| | 2011-3-14 17:45 | 只看该作者
40楼说的没错。所以我说你把程序写成了5个人轮流吃饭,那就成了:

“哲学家A想吃饭的时候,谁都不许跟我抢,直至现在正在吃饭的人放下筷子。”

那这还算是世界经典问题么?裸奔就做了:
while (第一只筷子);
while( 第二只筷子)
{开吃;}

PS:OsSemP(0,255)表示,获取信号量0,如果不能获取,则插入等待列表,直至信号到来


说的正是这个问题,“直至信号到来”。没错的。但是:
1、这里你不可能关中断!对吧?关了中断,信号来了你也不知道,
2、既然不能关中断,也就是说5个任务并发执行——5个哲学家的脑子是同时工作的,没有先趋后继顺序。
3、所以,“直至信号到来”。它就是不来!它已经被哲学家D或者B拿走了!而且其他哲学家也在等着A信号到来,A却拿着一只筷子不释放。
4、结果大家互相等待。

5、这里是在编写并发程序,没有顺序1、2、3、4、5;“直至信号到来”。对5个哲学家来说都是一样的。所以谁也等不来。很简单的理论——“我凭什么把筷子(信号)让给你?我还饿着呢。”





使用特权

评论回复
43
singleywy|  楼主 | 2011-3-14 17:52 | 只看该作者
42# 刘前辈
回复您,您可以看一下,计算机操作系统相关数据,涉及到信号量,同时也提到了这个问题,解决方式也是这样,这不是轮流吃饭的问题,系统启动的顺序,只是相当于一个冲击量,完成一个周期后,就有任务咎由自取了,而不轮流来,不知刘前辈,懂我的意思,您可以看一下相关教材,或者自己亲自实现一下

使用特权

评论回复
44
刘前辈| | 2011-3-14 17:55 | 只看该作者
   OsSemP(0,255);   
     //  这2条语句中间会有其他任务并发执行的机会,所以下面等待1信号可能永远等不来。
   OsSemP(1,255);   
  
    LED2_ON;
   ……


上面2条语句中间会有其他任务并发执行的机会,所以下面那条等待1信号
语句OsSemP(1,255); 可能永远等不来。

“直至信号到来”。正是造成死锁的语句。


使用特权

评论回复
45
singleywy|  楼主 | 2011-3-14 17:59 | 只看该作者
其次,我说错了一点就是,不同的申请方式,赋予系统的冲击量不同,即LED灯显示的方式也不同;
还有一点,即使随意改变申请顺序,只是影响显示的方式,(所以开始说“请注意我的申请方式...”,是我自己说错了,导致您认为我在使任务轮流运行的假象)

使用特权

评论回复
46
刘前辈| | 2011-3-14 18:22 | 只看该作者
本帖最后由 刘前辈 于 2011-3-14 18:40 编辑

呵呵,咱也建议一下:大家都好好看看Dijkstra 为什么了不起,他发明了信号量,在他之前那么多人都在研究这一问题,就是没人想到;所以荷兰人为什么了不起。小小的荷兰怎么就是OS创始的国家。不是美国。

“直至信号到来”。并不是说某个哲学家A一直占有CPU 踏步循环等待那一只筷子,它一样要释放CPU让给其他任务。——这一释放,A所等待的那只筷子就被别人拿走了。——这就是多任务并发执行面临的经典问题。

所以“金龙鱼”说的“学会释放CPU”不是一般人能理解的。“踏步循环”——自旋锁,只能用在多处理器分布式系统。单处理器不可能的,你在这自旋,别人怎么办?


中国有些热门餐馆,顾客排着队吃饭,——这桌人还没吃完,旁边就有人等,看着这桌人吃?Dijkstra 教人大概就是别站在桌子傍边看着别人吃饭,——直到别人吃完,立即抢占桌子。他告诉人们另一种方法,不用那么紧张一直盯着桌子,……全世界就Dijkstra 首先想到了的方法。——没LZ说得那么简单吧?




//

使用特权

评论回复
47
RyanHsuing| | 2011-3-15 19:37 | 只看该作者
我收到我BAIDU空间里去了。

使用特权

评论回复
48
sysdriver| | 2011-3-18 23:40 | 只看该作者
晕,我才发现啊,哈哈,真是好东西。
顶了,先去研究一下先

使用特权

评论回复
49
nqbmylove| | 2012-5-21 20:29 | 只看该作者
Mark

使用特权

评论回复
50
panchaoran| | 2013-3-4 22:15 | 只看该作者
LZ非常强大

使用特权

评论回复
51
gcsdream| | 2013-6-1 14:39 | 只看该作者
这才是精华,收下了……

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则