首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C11与(免费)实时操作系统的比较

C11与(免费)实时操作系统的比较
EN

Stack Overflow用户
提问于 2014-06-28 05:45:03
回答 4查看 1.6K关注 0票数 3

使用GCC C11时使用FreeRTOS有什么优势?例如,在C11中,我有线程和队列等,因此我不需要FreeRTOS,还是不需要?

EN

回答 4

Stack Overflow用户

发布于 2014-07-05 17:14:39

在C11标准中,线程支持是可选的,它们的实现将是C库的一部分,而不是GCC本身(请参阅here)。我不知道任何运行在嵌入式设备上的C库实现了C11线程(至少newlib没有),所以目前C11线程不是一个选择,除非你计划自己实现它们。

C11线程也没有针对嵌入式系统进行优化,因此您不能指定它们的堆栈大小。

我不知道在C11中有什么队列支持,也许你在想C++11 queues。因此,如果不使用FreeRTOS,则必须实现自己的队列。

票数 4
EN

Stack Overflow用户

发布于 2014-12-05 23:55:00

RTOS提供的不仅仅是线程支持,它们还提供了一种调度机制。查找有关“时间和空间分区”的信息,以便更好地了解RTOS将为您的项目提供什么。要搜索的其他一些内容将是“循环调度”和“优先级抢占调度”。

事实上,FreeRTOS的书写得很好,涵盖了这些概念。我想是35美元。

票数 1
EN

Stack Overflow用户

发布于 2015-12-27 03:28:18

C11FreeRTOS之间的比较真的不是苹果对苹果的比较。C11是一种语言(标准),而FreeRTOS是一种kernel+OS。

C11大概可以在RTOS或更传统的kernel+OS (如Linux )上运行。

你应该比较的是RTOS和传统的kernel+OS。RTOS是专门为内核的实时响应而设计的。这是通过使内核在非常精细的粒度上可抢占来实现的,这允许在准备好运行时立即运行更高优先级的计算。这在传统内核中并不总是可能的,因为内核的某些部分是不可抢占的。

RTOS还被优化以最小化内核中的任意延迟,如文件系统同步、垃圾收集等。用户空间到内核空间的上下文切换效率更高,因为整个系统实际上运行在单个地址空间和安全环中。通常没有虚拟内存,这用于消除在处理上下文切换的过程中涉及的大量开销,因为虚拟内存页表不需要在每次上下文切换时从头开始交换和构建。后者显然是以计算线程之间的隔离为代价的。中断处理也针对最小开销进行了优化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24461216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档