vfork

Libvirtはフックフォークを可能にします。
vfork

Libvirtはフックフォークを可能にします。

次のLibvirtフックがある場合/etc/libvirt/hooks/qemu.d/hook.sh #!/usr/bin/env bash if [[ $1 == "SEARCH_FOR_ME" ]]; then while true; do sleep 1 done fi bash /etc/libvirt/hooks/qemu.d/hook.sh SEARCH_FOR_ME & disown $! touch /tmp/test123 exit 0 仮想マシンを起動すると、このフックが呼び出され、期待さ...

Admin

子プロセスが作成された直後にexec()またはexit()を呼び出すときにvfork()を使用するのはなぜですか?
vfork

子プロセスが作成された直後にexec()またはexit()を呼び出すときにvfork()を使用するのはなぜですか?

オペレーティングシステムの概念とAPUE理論 vfork() を使用すると、親プロセスは一時停止され、子プロセスは親プロセスのアドレス空間を使用します。 vfork()は書き込み時にコピーを使用しないため、子プロセスが親プロセスのアドレス空間内のページを変更すると、親プロセスが再開されると、変更されたページが親プロセスに表示されます。だから、vfork() は、子プロセスが親プロセスのアドレス空間を変更しないように注意して使用する必要があります。 vfork()は、子プロセスが作成された直後にexec()またはexit()が呼び出されたと...

Admin

vfork() システムコールからページテーブルエントリをコピーしない場合、どのような利点がありますか?
vfork

vfork() システムコールからページテーブルエントリをコピーしない場合、どのような利点がありますか?

vfork()システムコールは、親プロセスのページテーブルエントリがコピーされないことを除いて、fork()と同じ効果を持ちます。今日の書き込み時にコピーと子を実行する最初の意味スキームを使用するvfo​​rk()の唯一の利点は、ページテーブルエントリをコピーしないことです。ある日、Linuxが書き込み中にコピーページテーブルエントリを取得すると、これ以上の利点はなくなります。 Robert Loveの著書「Linux Kernel Development」の内容の一部です。私が理解していないのは、ページテーブルエントリをコピーしないとどのような利点があり...

Admin

pthreadとvfork
vfork

pthreadとvfork

スレッドの1つがvforkを実行しているときにpthreadに何が起こっているのかを確認したいと思います。仕様は、子プロセスがexec *または_exitを呼び出すまで、親の「制御スレッド」が「停止」されることを示しています。私が理解しているように、これは全体の親プロセス(つまり、すべてのpthread)が一時停止されることを意味します。私はこれを実験的に確認したかった。私はこれまでいくつかの実験を行いましたが、すべて異なるpthreadが実行されていることを示しています。私はLinuxの経験がないので、これらの実験の私の解釈が間違っていると思うし、これらの...

Admin

「execなしでvfork」を実行するプロセスは、どのように中断することなく長いスリープモードになりますか?
vfork

「execなしでvfork」を実行するプロセスは、どのように中断することなく長いスリープモードになりますか?

存在するこの回答ユーザーの提案 通常、中断のないスリープモードは長続きしませんが、Windowsでは、破損したドライバや破損したユーザースペースプログラム(execなしのvfork)のため、Dで永久にスリープモードになることがあります。 バグのないカーネルのDにユーザースペースプログラムが実際にどのようにロックされるのですか?ユーザーモードがわざとDに閉じ込められるのは小さなバグだと思います... ...

Admin