Zeitaufwand für fork & wait

Um den Zeitaufwand für die Systemaufrufe fork und wait abzuschätzen, kann es sinnvoll sein, unser Testprogramm mit einer Zeitmessung der real verflossenen Zeit zu ergänzen. Dies ist möglich mit Hilfe des Systemaufrufs times, der eine (für uns uninteressante) struct tms füllt und die Zahl der Ticks der internen Uhr seit einem früheren Zeitpunkt zurückgibt. Die Zeitdauer eines internen Ticks ist systemabhängig. Mit Hilfe von sysconf(_SC_CLK_TCK) lässt sich aber die Zahl der Ticks pro Sekunde ermitteln.

/* return real time in seconds since some arbitrary point in the past */
double walltime() {
   static int ticks_per_second = 0;
   if (!ticks_per_second) {
      ticks_per_second = sysconf(_SC_CLK_TCK);
   }
   struct tms timebuf;
   /* times returns the number of real time ticks passed since some
      arbitrary point in the past */
   return (double) times(&timebuf) / ticks_per_second;
}

Für times wird #include <sys/times.h> benötigt. Weitere Infos dazu gibt es in der zugehörigen Manualseite:

http://pubs.opengroup.org/onlinepubs/9699919799/functions/times.html

Aufgabe