典型的脑残题,以老x见贴必回的个性,都只能选择沉默,还能怎
wxj1952 发表于 2007-12-1 17:29 侃单片机 ←返回版面  | 楼主: 一道题终结拥OS与反OS之争 |
这是一个实际应用的例子。实现目标:
1、用单CPU做一个精确的时钟。 2、以此时钟为基准,每秒钟运行一次一个500ms开销的任务,设其为F05()。 3,每分钟到达时,运行一次4个紧密关联的函数,每个运行开销700ms, 设其为F071(),F072(),F073(),F074();要求4个函数必须顺序运行。 4、为简化题目,只做秒、分2位。
要求:各函数时间开销严格,运行期间不允许打断(即不允许被中断或抢占)。
叙述一下这个题目的意思,当每分钟到达时,程序运行F071~F074,这段时间软件耗费至少700msX4=2.8秒,这样时钟的秒位肯定要丢数(因为“要求”说了,F071~F074运行必须顺序,不允许抢占。可以被调度)。怎么解决?
高手总说裸奔比OS灵活的多,我特别希望高手能实际“奔”一个简明而优雅的程序供我们欣赏/学习一下,否则总让人感觉我们国人喜欢说大话、空话,特没劲。
12月3日 hotpower 是真正有才能的人,他已经把这道题的题意和解法基本说穿了。我不用再多解释题意了: 1、83楼: 不能打断的(函数)时间必须小于节拍时间,字谜(解决方法)实际在函数的间隙上。 2、N楼 只要不出现时间的误差积累,就应该"算准"。否则就别玩了。
12月4日 贴到其他贴去忘了说了,3000元求助实用程序。 别说我题意不清故意刁难谁,老板的课题就是这么出的。我没觉得他刁难我,挺清楚的。看不懂的人就不用作了。
“这道题如果OS能做到,匠人也能裸奔做到。”没错,那么请现在就做。 “裸奔高手必然也会用OS。”没错,那么请立即就做。
要是高人都放弃了,我就贴答案了。 “不是做不到,而是想不到。”
看不懂题意的人,最好保持沉默。
* - 本贴最后修改时间:2007-12-5 9:37:11 修改者:wxj1952
|
|
农民讲习所 发表于 2007-12-1 17:45 侃单片机 ←返回版面  | 3楼: 题都不会出。先沙发~~~~~~~~ |
农民讲习所 发表于 2007-12-1 17:54 侃单片机 ←返回版面  | 8楼: 俺也不出手,最近心情不错,没必要去砸砖。 |
computer00 发表于 2007-12-1 19:04 侃单片机 ←返回版面  | 14楼: 这个OS更加做不到了,除非你不让你OS调度... |
2.8s不能被打断,也就意味着你的系统时钟节拍必须大于2.8s,否则必然被时钟节拍中断打断~~~~~~~~
另外,题目本身就是矛盾的,要求2.8s不能被打断,又要求每秒执行另一个任务500ms? 除非你的CPU是双核的...
|
|
wxj1952 发表于 2007-12-1 19:23 侃单片机 ←返回版面  | 20楼: 我知道圈圈会提这样的问题。 |
我说的是不允许抢占,4个函数是由一个长任务分解得到的。它们将被调度器顺序调度,如果这道题变成秒位任务可以优先打断这个长任务,那还值得做吗?
如果不想做,就别先挑出题的人的毛病,说出题人的语文水平太差。 |
|
athlon64fx 发表于 2007-12-1 21:05 侃单片机 ←返回版面  | 64楼: 如果不是文字游戏的话,此题无解 |
有一点不明白,F01-F04既然不允许被打断,为什么非要说成4个? 分明是一个嘛. 另外,有什么运算会占用500mS 2.8S的时间? 既然LZ都谈到了OS,就不会是CPU延时吧,所以说,这个题目根本没有代表性,更何谈"一题终结xx之争"?
|
|
athlon64fx 发表于 2007-12-1 22:14 侃单片机 ←返回版面  | 72楼: re: |
难道我是文盲? 是F071~F074不允许被中断还是F071~F074的“每个函数”不允许被中断? 截然不同的两个意思。我想楼主表达得很清楚,2.8秒内不允许中断. LZ会用调度器太牛了.. 我不过在两年前写过一个.
-------------------------------------
叙述一下这个题目的意思,当每分钟到达时,程序运行F071~F074,这段时间软件耗费至少700msX4=2.8秒,这样时钟的秒位肯定要丢数(因为“要求”说了,F071~F074运行必须连贯,不允许抢占。)
|
|
hotpower 发表于 2007-12-2 00:17 侃单片机 ←返回版面  | 83楼: 不能打断的时间总和必须小于节拍时间,字谜实际在函数的间隙上 |
|
LZ属于典型的脑残儿表达不清的那种,根本就没发现自己说话老是考虑不周前后矛盾。--所以老x真的不想参与,因为那样好像显得我跟脑残也是同类了... 如果LZ承认补充的这个说明:
12月3日 hotpower 是真正有才能的人,他已经把这道题的题意和解法基本说穿了。我不用再多解释题意了: 1、83楼: 不能打断的(函数)时间必须小于节拍时间,字谜(解决方法)实际在函数的间隙上。 2、N楼 只要不出现时间的误差积累,就应该"算准"。否则就别玩了。
| 那么老x一分钟即可给出解决程序(但问题是LZ就没觉得上面的补充和LZ你20楼的说法又矛盾了吗???)
|
|