2012-04-04 7 views
1

私たちは組み込みアプリケーションを持っていますが、現在は状態を保存して再ロードする必要があります。外出して新鮮な空気を吸わなければならないPCゲームのように、この製品は静かで進化しています。保存するデータを特定するための適切な設計はオプションではありません。組み込みLinux、アプリケーション状態フリーズ、再起動

ソフトウェアはC言語になっているので、すべてのデータは固定アドレス(.dataセグメント)を持ち、決定論的であり、動的メモリ割り当てはありません。だから理論的に私はファイル内のこのデータセグメントのバックアップを取って、アプリケーションの再起動時にファイルからそれを元に戻します。このアプローチはおそらく必要以上に多くのデータを節約するでしょうが、私はそれで大丈夫です。

どうすれば短時間で実行できますか?
実行時に.dataセグメントの開始と終了をどのように特定することができますか?

答えて

2

application checkpointingが必要なので、おそらくBerkley Lab Checkpoint Restartライブラリが役に立ちます。

あなたはすべてのデータがアドレスなどを固定していることを確認している場合は、おそらく(アプリケーションから)読んで、あなたの現在のメモリ・セグメントとのマッピングについて知っている...、/proc/self/maps

mmap(2)システムコールを使用することができますファイル。 /proc/self/smapsなどもあります。proc(5)について詳しくは、/proc/

関連する問題