这是一个实际应用的例子。实现目标:
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。”没错,那么请立即就做。
要是高人都放弃了,我就贴答案了。 “不是做不到,而是想不到。”
看不懂题意的人,最好保持沉默。
|