dポイントプレゼントキャンペーン実施中!

http://okwave.jp/qa3279922.html
の訂正版です。
OSはubuntu、言語はC++を用いております。

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

A 回答 (4件)

>そうなのですか、ではどのようにしているのでしょうか?



Ctrl+z(サスペンド)によってシグナル(SIGSTOP)をプロセスが受信して、単純にプロセスが停止しているだけ。
なので、プロセスはメモリ上に存在しています。

>1.シャットダウンしても消えないようにする
>2.再起動後、プログラムを続ける
>方法を教えていただけますか。

メモリ上にあるプロセス、データ等をファイルに退避(チェックポイントみたいなの)して、再開したい場合、その退避したファイルからメモリ上に展開(リスタートみたいなの)しなきゃいけないわけで、どうしてもカーネル内部に何かしらの手を加えないと(もしくはそういう機能がないと)出来ないように思うけど。

なのでそういう機能がない場合には、ユーザランドでのプログラミングだけでは無理だと思うのですが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/08/24 00:07
    • good
    • 0

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


#1 でも書かれていますが, 基本的にはそんなことはしません. 純粋にプログラムを停止させているだけです. もちろんメモリが足りなくなればページングされますが, それは C-Z とは無関係. もっとも, 「top コマンドで見たメモリ使用率」というのが何をさしているのかわかりませんが....

ということで,
>そのファイルが、
>1.シャットダウンしても消えないようにする
というのは不可能です. 最初から「ない」んだから, 消えないし消せない.

>2.再起動後、プログラムを続ける
これもほとんど無理でしょうね. プログラムはともかく, データはなんともならない. 「既に読み込んだデータ」ならまだなんとかなるけど, 「将来的に読み込むはずだったデータ」はどうがんばっても読み込めません.
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/08/23 22:19

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



そんな事してないと思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございます。

そうなのですか、ではどのようにしているのでしょうか?
Ctrl+Zで一時停止した後、topコマンドで見ると、
メモリ使用率は明らかに小さくなりますから、
HDDに書き込んでいないとすると、
topコマンドがウソをついている(?)ということでしょうか。

まあ、それは当面の目的にはさして関係が無いので、
よろしければ、
1.シャットダウンしても消えないようにする
2.再起動後、プログラムを続ける
方法を教えていただけますか。

お礼日時:2007/08/23 19:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!