ゾンビ、実行して観測を生成するプログラムを提供します。
書式#include <stdio.hに>
書式#include <stdlib.h>に含ま
書式#include <SYS / types.h>に
書式#include <sysの/ wait.h>
メインint型()
{
PIDのint;
PID =フォーク()。
(PID> 0)//父・プロセスの場合
{
int型I = 1;
一方、(I <= 12)
{
睡眠(1)。
I + = 1;
}
}
それ以外の場合(PID == 0)//息子プロセス
{
int型J = 1;
一方、(j <= 4)
{
睡眠(1)。
J + = 1;
}
出口(0);
}
0を返します。
}
明らかに、子プロセスの間〜4をもたらした、子供の終了後4S、その後、親プロセスについて及び終了まで8S時間程度12Sは、ゾンビプロセスとなった場合、結果が見ることができます。
以下の手順は、ゾンビを回避するには、2本のフォーク()の上、すなわち使用の変換に基づいています。
書式#include <stdio.hに>
書式#include <stdlib.h>に含ま
書式#include <SYS / types.h>に
書式#include <sysの/ wait.h>
メインint型()
{
PIDのint;
PID =フォーク()。
(PID> 0)//父・プロセスの場合
{
(0)待つ; //は、息子のプロセスの終了を待っています
int型J = 1;
一方、(j <= 12)
{
睡眠(1)。
J ++;
}
}
それ以外の場合(PID == 0)//息子プロセス
{
int型のPID2。
PID2 =フォーク()。
(PID2> 0)//息子プロセスの場合
{
出口(0);
}
それ以外の場合(PID2 == 0)//孫プロセス
{
int型I = 1;
一方、(I <= 4)
{
睡眠(1)。
I ++;
}
出口(0);
}
}
0を返します。
}