Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

単一のCプログラムでゾンビと孤立したプロセスを実行する方法は?


このセクションでは、C /C++の単一のプログラムでゾンビプロセスとオーファンプロセスを実行する方法を説明します。メインのディスカッションに進む前に、ゾンビプロセスとオーファンプロセスとは何かを見てみましょう。

ゾンビプロセス

ゾンビプロセスは、実行が完了したが、プロセステーブルにエントリが残っているプロセスです。親プロセスは引き続き子プロセスの終了ステータスを読み取る必要があるため、ゾンビプロセスは通常子プロセスに対して発生します。待機システム呼び出しを使用してこれが行われると、ゾンビプロセスはプロセステーブルから削除されます。これは、ゾンビプロセスの刈り取りとして知られています。

孤立したプロセス

孤立したプロセスとは、親プロセスが終了または終了した場合でも実行中のプロセスです。プロセスは、意図的または意図せずに孤立する可能性があります。

意図的に孤立したプロセスは、手動サポートなしでバックグラウンドで実行されます。これは通常、無期限に実行されるサービスを開始するため、またはユーザーの注意を払わずに長時間実行されるジョブを完了するために行われます。

親プロセスがクラッシュまたは終了すると、意図せずに孤立したプロセスが作成されます。プロセスグループメカニズムを使用すると、意図しない孤立したプロセスを回避できます。

次のコードでは、ゾンビと孤立したプロセスを同時に実行します。ここに親プロセスがあり、子があり、この子には別の子があります。コントロールが子プロセスに挿入された場合、親プロセスを終了できるように、実行を5秒間停止します。したがって、子プロセスは孤立したプロセスになります。その後、孫プロセスはゾンビプロセスに変換されます。孫は、その親(メインプロセスの子)が1秒間スリープすると、実行を終了します。したがって、孫プロセスは終了を呼び出さず、そのエントリはプロセステーブルにあります。

サンプルコード

#include <stdio.h>
#include <unistd.h>
int main() {
   int x = fork(); //create child process
   if (x > 0) //if x is non zero, then it is parent process
      printf("Inside Parent---- PID is : %d\n", getpid());
   else if (x == 0) { //for chile process x will be 0
      sleep(5); //wait for some times
      x = fork();
      if (x > 0) {
         printf("Inside Child---- PID :%d and PID of parent : %d\n", getpid(), getppid());
         while(1)
            sleep(1);
         printf("Inside Child---- PID of parent : %d\n", getppid());
      }else if (x == 0)
      printf("Inside grandchild process---- PID of parent : %d\n", getppid());
   }
   return 0;
}

出力

soumyadeep@soumyadeep-VirtualBox:~$ ./a.out
Inside Parent---- PID is : 3821
soumyadeep@soumyadeep-VirtualBox:~$ Inside Child---- PID :3822 and PID of parent : 686
Inside grandchild process---- PID of parent : 3822
soumyadeep@soumyadeep-VirtualBox:~$

  1. デスクトップショートカットとは何ですか?どのように機能しますか?

    デスクトップのショートカットがどのように機能するのか疑問に思ったことはありませんか?それらはあなたのコンピュータ上の他のファイルとは異なって機能するように見えます、そして正当な理由があります。これらは、他のファイルとは異なる動作をする一意のファイルです。 ショートカットが特別な理由とその仕組みを調べてみましょう。 ショートカットとは何ですか? ショートカットは、コンピューター上でファイルを開くようにコンピューターに指示する一連の命令です。ショートカットをアクティブにすると、それらの指示がコンピューターに送られ、ファイルが検索されて実行されます。 コンピューター上のファイルには、それらが存

  2. WindowsでプログラムのCPU使用率を制限する方法は?

    CPUの使用状況を監視することは非常に便利です。これは、CPUが過負荷になっていると、スロットリングが発生し、PC全体のパフォーマンスが低下する可能性があるためです。結局のところ、これはコンピュータで実行する日常のタスクに大きな影響を与える可能性があります。そのため、それほど重要ではない、またはバックグラウンドで実行されているプログラムがCPUリソースの大部分を奪っていないことを確認する必要があります。この記事では、CPUを必要以上に使用している可能性のあるプログラムに対抗するためのさまざまな方法を紹介します。 実は、CPUはコンピューター上で最も重要なコンポーネントの1つです。本当にリソ