2012-04-04 51 views
1

我们有一个嵌入式应用程序,现在它需要保存并重新加载其状态。就像个人电脑游戏一样,在你必须出门前呼吸一些新鲜空气的地方,你可以保存它。该产品本质上是安静的进化型,没有适当的设计,因此识别要保存的数据不是一种选择。嵌入式linux,应用程序状态冻结,重新启动

软件是C语言,所以所有的数据都有固定的地址(.data段),它也是确定性的,没有动态内存分配。因此理论上我将这个数据段备份在一个文件中,并在应用程序重新启动时从文件中更新它。这种方法可能会比所需要的节省更多的数据,但我确定它。

我该如何在短的执行时间内做到这一点?
另外,如何在运行时识别.data段的开始和结束?

回答

2

你想application checkpointing,所以也许Berkley Lab Checkpoint Restart库可能会帮助你。

也许你可以使用mmap(2)系统调用,如果你是确保所有数据都已经固定的地址,等...

要了解你目前的内存段和映射,读取(从应用程序)的/proc/self/maps文件。还有/proc/self/smaps等。了解更多关于proc(5),即/proc/

相关问题