2012-04-04 92 views
1

我們有一個嵌入式應用程序,現在它需要保存並重新加載其狀態。就像個人電腦遊戲一樣,在你必須出門前呼吸一些新鮮空氣的地方,你可以保存它。該產品本質上是安靜的進化型,沒有適當的設計,因此識別要保存的數據不是一種選擇。嵌入式linux,應用程序狀態凍結,重新啓動

軟件是C語言,所以所有的數據都有固定的地址(.data段),它也是確定性的,沒有動態內存分配。因此理論上我將這個數據段備份在一個文件中,並在應用程序重新啓動時從文件中更新它。這種方法可能會比所需要的節省更多的數據,但我確定它。

我該如何在短的執行時間內做到這一點?
另外,如何在運行時識別.data段的開始和結束?

回答

2

你想application checkpointing,所以也許Berkley Lab Checkpoint Restart庫可能會幫助你。

也許你可以使用mmap(2)系統調用,如果你是確保所有數據都已經固定的地址,等...

要了解你目前的內存段和映射,讀取(從應用程序)的/proc/self/maps文件。還有/proc/self/smaps等。瞭解更多關於proc(5),即/proc/

相關問題