是不是因为施加在实时系统上的时序约束意味着线程或任务应该根据时序控制自己的执行,而顺序执行的程序可能由于其任务负载而无法保证实现时序?
问候,谢谢。
是不是因为施加在实时系统上的时序约束意味着线程或任务应该根据时序控制自己的执行,而顺序执行的程序可能由于其任务负载而无法保证实现时序?
问候,谢谢。
您可以使用一个线程编写一个实时系统,因此它不必是并发的。
使用线程可以帮助实时系统,但它们可能会引入自己的问题。
也许您将实时与并发联系起来,因为您必须更加了解每个线程在做什么。
我喜欢彼得的回答,但我想详细说明。
作为实时系统一部分的外生物理设备——即与实时软件和计算机交互的部分——可能具有任何数量的并发性,从无到无。实时系统本质上不是并发的,但在某种程度上,即使不是大多数,也有很多是并发的。
不管外生部分有多少并发,实时软件通常可以有任意数量的并发,从没有(所谓的“主线程”彼得提到)到尽可能多的可调度线程/任务/等。被认为是适当的。
正如 Peter 所指出的,软件中的并发性越多,并发控制就越复杂和困难。这通常是正确的,并且由于时间限制在实时软件中更加严重。一些著名的软件科学家声称,人类的思维并不适合管理任何事物的高度异步并发。
Edward Lee 是并发线程最直言不讳的批评者之一,正如本技术报告“线程的麻烦” www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf中所清楚记录的那样。
正如其他人发布的那样,并发<>实时。
由于良好的 IO 性能,实时系统倾向于使用抢占式调度程序。协作或不存在的调度仅适用于延迟和整体 IO 性能不重要的应用程序 - 将它们排除在许多/大多数“实时”任务中。
是否真正使用了“真正的”并发,即。多核,是另外一回事。