实时系统下实现垃圾回收器可行吗?

freeman11me 2009-03-10 10:59:42
由于系统处理的数据是动态发生变化的,就采用的动态内存分配的机制。
问题就在使用malloc ,free的过程中会给物理内存带来很多的碎片,浪费资源,长时间运行可能会导致系统崩溃。
就有了添加一个垃圾回收器的想法,作为一个实时系统的软件,在采用动态内存分配的情况下,有必要实现垃圾回收器吗?
...全文
50 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gangtian 2009-03-25
  • 打赏
  • 举报
回复
在实时系统里做垃圾回收的研究应该也有三十多年了。

最早应该是1978年Baker给Lisp做的,后来逐步改进,1984年Brooks、1990年Yuasa、1998年Henriksson等等的文章都有所突破。

目前比较有代表性的商业产品是Jamacia的实时GC,以及IBM的Metronome。前者采用work-based调度方式而后者采用time-based调度方式的。
ies_sweet 2009-03-10
  • 打赏
  • 举报
回复
个人感觉垃圾回收器不太适合于实时系统。
其实内存碎片并没有那么可怕,我在这方面采用一些牺牲来避免。
一般会碰到问题的就是在申请大块内存时失败,
如果可以,那么选择大块内存使用长驻内存。
申请小内存时一般可以忽略碎片影响。
当然,这些都是在内存资源相对充足的情况下,
我们的系统5M内存,平时也就用2M不到的样子,倒是没有这方面的担心。
topcool99 2009-03-10
  • 打赏
  • 举报
回复
不提倡在实时系统中用此机制是因为没有合适的时间去做这些事情。

但也不是绝对的,如果不是硬实时系统,在某些场合还是可以尝试的。

有这个想法的话可以尝试下嘛。专门起个任务,在空闲时(这个时间可能还得根据你的应用来看)处理。

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧