• ベストアンサー

プログラムを一時停止→再起動→続きから再実行

http://okwave.jp/qa3279922.html の訂正版です。 OSはubuntu、言語はC++を用いております。 Ctrl+Zでプログラムを一時停止できると思いますが、 そのまま再起動すると、もうそのプログラムは一時停止した場所からは 再開できません。 Ctrl+Zは、プログラムのデータ・状態をHDDに書き込んでいるのだと思いますが、そのファイルが、 1.シャットダウンしても消えないようにする 2.再起動後、プログラムを続ける 方法がありましたら、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.4

>そうなのですか、ではどのようにしているのでしょうか? Ctrl+z(サスペンド)によってシグナル(SIGSTOP)をプロセスが受信して、単純にプロセスが停止しているだけ。 なので、プロセスはメモリ上に存在しています。 >1.シャットダウンしても消えないようにする >2.再起動後、プログラムを続ける >方法を教えていただけますか。 メモリ上にあるプロセス、データ等をファイルに退避(チェックポイントみたいなの)して、再開したい場合、その退避したファイルからメモリ上に展開(リスタートみたいなの)しなきゃいけないわけで、どうしてもカーネル内部に何かしらの手を加えないと(もしくはそういう機能がないと)出来ないように思うけど。 なのでそういう機能がない場合には、ユーザランドでのプログラミングだけでは無理だと思うのですが。

noname#108554
質問者

お礼

なるほど、分かりました。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • masa19
  • ベストアンサー率75% (22/29)
回答No.3
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

>Ctrl+Zは、プログラムのデータ・状態をHDDに書き込んでいるのだと思いますが #1 でも書かれていますが, 基本的にはそんなことはしません. 純粋にプログラムを停止させているだけです. もちろんメモリが足りなくなればページングされますが, それは C-Z とは無関係. もっとも, 「top コマンドで見たメモリ使用率」というのが何をさしているのかわかりませんが.... ということで, >そのファイルが、 >1.シャットダウンしても消えないようにする というのは不可能です. 最初から「ない」んだから, 消えないし消せない. >2.再起動後、プログラムを続ける これもほとんど無理でしょうね. プログラムはともかく, データはなんともならない. 「既に読み込んだデータ」ならまだなんとかなるけど, 「将来的に読み込むはずだったデータ」はどうがんばっても読み込めません.

noname#108554
質問者

お礼

そうですか、ありがとうございました。

すると、全ての回答が全文表示されます。
  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

>Ctrl+Zは、プログラムのデータ・状態をHDDに書き込んでいるのだと思いますが、 そんな事してないと思いますが。

noname#108554
質問者

お礼

ありがとうございます。 そうなのですか、ではどのようにしているのでしょうか? Ctrl+Zで一時停止した後、topコマンドで見ると、 メモリ使用率は明らかに小さくなりますから、 HDDに書き込んでいないとすると、 topコマンドがウソをついている(?)ということでしょうか。 まあ、それは当面の目的にはさして関係が無いので、 よろしければ、 1.シャットダウンしても消えないようにする 2.再起動後、プログラムを続ける 方法を教えていただけますか。

すると、全ての回答が全文表示されます。

関連するQ&A