我正在使用Linux上的RT PREEMPT修补程序处理包含实时软件组件的项目。
"空闲"操作软件只是等待传入的TCP连接和请求。根据请求,软件可以创建运行一段时间的实时线程。因此整个应用程序不需要实时操作,只需要这一个线程。
我的问题是:我很清楚动态内存分配是非确定性的,对实时代码有害。但是,访问堆上的现有内存是否也对实时约束有害?
我问,因为我正在考虑程序启动的情况,在堆上分配任何所需的结构,然后触发访问堆的实时线程。
编辑:一旦实时线程启动,其他线程就会被阻止写入实时线程需要使用锁访问的变量(好吧,除了一个必须更新的变量,但访问仍受限制使用一个单独的锁。)EDIT2:我忘了提到该程序最终会部署在一个没有任何交换空间的系统上,所以我不认为内存分页应该是一个问题。 (当然,这并不能避免通过操作系统尚未配置的内存出现页面错误的问题。)