diff --git a/20180413/photo-20180629-130710.jpg b/20180413/photo-20180629-130710.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a8208c02aaf4e9c3bb6bf90fe1a65b80edc24cb4 Binary files /dev/null and b/20180413/photo-20180629-130710.jpg differ diff --git a/20180706/make-zombies-1.c b/20180706/make-zombies-1.c new file mode 100644 index 0000000000000000000000000000000000000000..3626861d638c8ad6dc8c5c0831b9f5190e20a4dc --- /dev/null +++ b/20180706/make-zombies-1.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <unistd.h> + +int main(void){ + pid_t pids[10]; // Platz f�r 10 Prozess-IDs (die Kindprozesse) + int i; // Laufvariable + + for (i = 0; i < 10; ++i) { + // Der Vaterprozess erzeugt nun einen Kindprozess, + // welcher unabh�ngig vom Vaterprozess mit der + // erneuten Ausf�hrung des Programms beginnt. + // Ein Kindprozess erzeugt keinen Fork von sich selbst. + pids[i] = fork(); + if (pids[i] == 0) { + // dann befinden wir uns in einem der 10 Kindprozesse + // Der erste Kindprozess wartet 10 Sekunden und jeder + // weitere Kindprozess wartet 1 Sekunde k�rzer als der + // vorige. + printf ("%d BRAINS! ", i); + sleep(10-i); + exit(0); // Kindprozess erfolgreich beenden + } + } + +// + // hier kommt nur der Vaterprozess vorbei + for (i = 0; i < 10; ++i){ + // Der Vaterprozess wartet nun, bis der Reihe nach jeder + // seiner 10 Kindprozesse beendet ist. Leider wird auf das + // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl + // die anderen Kinder l�ngst erfolgreich beendet wurden, + // blockiert das erste Kind eine Bereinigung der Prozesstabelle + waitpid(pids[i], NULL, 0); + } +// + +// while (1); + return 0; // Vaterprozess erfolgreich beenden +} diff --git a/20180706/make-zombies-2.c b/20180706/make-zombies-2.c new file mode 100644 index 0000000000000000000000000000000000000000..d43b17e278e3df5c2373600753d6ac53d89f7af7 --- /dev/null +++ b/20180706/make-zombies-2.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <unistd.h> + +int main(void){ + pid_t pids[10]; // Platz f�r 10 Prozess-IDs (die Kindprozesse) + int i; // Laufvariable + + for (i = 0; i < 10; ++i) { + // Der Vaterprozess erzeugt nun einen Kindprozess, + // welcher unabh�ngig vom Vaterprozess mit der + // erneuten Ausf�hrung des Programms beginnt. + // Ein Kindprozess erzeugt keinen Fork von sich selbst. + pids[i] = fork(); + if (pids[i] == 0) { + // dann befinden wir uns in einem der 10 Kindprozesse + // Der erste Kindprozess wartet 10 Sekunden und jeder + // weitere Kindprozess wartet 1 Sekunde k�rzer als der + // vorige. + printf ("%d BRAINS! ", i); + sleep(10-i); + exit(0); // Kindprozess erfolgreich beenden + } + } + +// +// // hier kommt nur der Vaterprozess vorbei +// for (i = 0; i < 10; ++i){ +// // Der Vaterprozess wartet nun, bis der Reihe nach jeder +// // seiner 10 Kindprozesse beendet ist. Leider wird auf das +// // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl +// // die anderen Kinder l�ngst erfolgreich beendet wurden, +// // blockiert das erste Kind eine Bereinigung der Prozesstabelle +// waitpid(pids[i], NULL, 0); +// } +// + +// while (1); + return 0; // Vaterprozess erfolgreich beenden +} diff --git a/20180706/make-zombies-3.c b/20180706/make-zombies-3.c new file mode 100644 index 0000000000000000000000000000000000000000..82d671c075e1db7879e8b040f12a8543c0c7436a --- /dev/null +++ b/20180706/make-zombies-3.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <unistd.h> + +int main(void){ + pid_t pids[10]; // Platz f�r 10 Prozess-IDs (die Kindprozesse) + int i; // Laufvariable + + for (i = 0; i < 10; ++i) { + // Der Vaterprozess erzeugt nun einen Kindprozess, + // welcher unabh�ngig vom Vaterprozess mit der + // erneuten Ausf�hrung des Programms beginnt. + // Ein Kindprozess erzeugt keinen Fork von sich selbst. + pids[i] = fork(); + if (pids[i] == 0) { + // dann befinden wir uns in einem der 10 Kindprozesse + // Der erste Kindprozess wartet 10 Sekunden und jeder + // weitere Kindprozess wartet 1 Sekunde k�rzer als der + // vorige. + printf ("%d BRAINS! ", i); + sleep(10-i); + exit(0); // Kindprozess erfolgreich beenden + } + } + +// +// // hier kommt nur der Vaterprozess vorbei +// for (i = 0; i < 10; ++i){ +// // Der Vaterprozess wartet nun, bis der Reihe nach jeder +// // seiner 10 Kindprozesse beendet ist. Leider wird auf das +// // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl +// // die anderen Kinder l�ngst erfolgreich beendet wurden, +// // blockiert das erste Kind eine Bereinigung der Prozesstabelle +// waitpid(pids[i], NULL, 0); +// } +// + + while (1); +// return 0; // Vaterprozess erfolgreich beenden +} diff --git a/20180706/photo-20180706-150855.jpg b/20180706/photo-20180706-150855.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce07d59510b287548fd64e0365c2ffba7736ff11 Binary files /dev/null and b/20180706/photo-20180706-150855.jpg differ diff --git a/20180706/photo-20180706-151020.jpg b/20180706/photo-20180706-151020.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad54cbc3942d6c05f76288edaf384f8b7a4207bf Binary files /dev/null and b/20180706/photo-20180706-151020.jpg differ diff --git a/20180706/signals-1.c b/20180706/signals-1.c new file mode 100644 index 0000000000000000000000000000000000000000..b8c50f12e2e234db520ea04044584ef2441a8194 --- /dev/null +++ b/20180706/signals-1.c @@ -0,0 +1,18 @@ +#include <signal.h> +#include <stdio.h> + +static void signal_handler (int signo) +{ + printf ("Hello, world!\n"); +} + +int main (void) +{ + if (signal (SIGINT, signal_handler) == SIG_ERR) + { + fputs ("Error installing signal handler.\n", stderr); + return 1; + } + while (1); + return 0; +} diff --git a/20180706/signals-2.c b/20180706/signals-2.c new file mode 100644 index 0000000000000000000000000000000000000000..87fc7bca06b3f2906b2682e4da23f43b7a18fe99 --- /dev/null +++ b/20180706/signals-2.c @@ -0,0 +1,18 @@ +#include <signal.h> +#include <stdio.h> + +static void signal_handler (int signo) +{ + printf ("Hello, world!\n"); +} + +int main (void) +{ + if (signal (SIGUSR1, signal_handler) == SIG_ERR) + { + fputs ("Error installing signal handler.\n", stderr); + return 1; + } + while (1); + return 0; +} diff --git a/20180706/signals-3.c b/20180706/signals-3.c new file mode 100644 index 0000000000000000000000000000000000000000..a14f33703c6a05314cdf0ee8ee467ccd53a45bca --- /dev/null +++ b/20180706/signals-3.c @@ -0,0 +1,27 @@ +#include <signal.h> +#include <stdio.h> +#include <sys/time.h> + +static void signal_handler (int signo) +{ + printf ("Hello, world!\n"); +} + +int main (void) +{ + if (signal (SIGVTALRM, signal_handler) == SIG_ERR) + { + fputs ("Error installing signal handler.\n", stderr); + return 1; + } + + struct itimerval timer; + timer.it_value.tv_sec = 1; + timer.it_value.tv_usec = 0; + timer.it_interval.tv_sec = 1; + timer.it_interval.tv_usec = 0; + setitimer (ITIMER_VIRTUAL, &timer, NULL); + + while (1); + return 0; +} diff --git a/20180706/signals-3a.c b/20180706/signals-3a.c new file mode 100644 index 0000000000000000000000000000000000000000..05f08f0349dfda929d8a0559d15cd831aced9d14 --- /dev/null +++ b/20180706/signals-3a.c @@ -0,0 +1,26 @@ +#include <signal.h> +#include <stdio.h> +#include <sys/time.h> + +static void signal_handler (int signo) +{ + printf ("Hello, world!\n"); +} + +int main (void) +{ + if (signal (SIGVTALRM, signal_handler) == SIG_ERR) + { + fputs ("Error installing signal handler.\n", stderr); + return 1; + } + + struct itimerval timer; + timer.it_value.tv_sec = 1; + timer.it_value.tv_usec = 0; + timer.it_interval.tv_sec = 1; + timer.it_interval.tv_usec = 0; + setitimer (ITIMER_VIRTUAL, &timer, NULL); + + while (1); +} diff --git a/20180706/signals-4.c b/20180706/signals-4.c new file mode 100644 index 0000000000000000000000000000000000000000..357b739fce6a3642b9cc7c6bc8bbd5d6a1645314 --- /dev/null +++ b/20180706/signals-4.c @@ -0,0 +1,29 @@ +#include <signal.h> +#include <stdio.h> +#include <sys/time.h> +#include <unistd.h> + +static void signal_handler (int signo) +{ + printf ("Hello, world!\n"); +} + +int main (void) +{ + if (signal (SIGVTALRM, signal_handler) == SIG_ERR) + { + fputs ("Error installing signal handler.\n", stderr); + return 1; + } + + struct itimerval timer; + timer.it_value.tv_sec = 1; + timer.it_value.tv_usec = 0; + timer.it_interval.tv_sec = 1; + timer.it_interval.tv_usec = 0; + setitimer (ITIMER_VIRTUAL, &timer, NULL); + + while (1) + sleep (10); + return 0; +} diff --git a/20180706/signals-5.c b/20180706/signals-5.c new file mode 100644 index 0000000000000000000000000000000000000000..8fd134bc8d6087e6fdaf0e37710d811937b36b3f --- /dev/null +++ b/20180706/signals-5.c @@ -0,0 +1,29 @@ +#include <signal.h> +#include <stdio.h> +#include <sys/time.h> +#include <unistd.h> + +static void signal_handler (int signo) +{ + printf ("Hello, world!\n"); +} + +int main (void) +{ + if (signal (SIGALRM, signal_handler) == SIG_ERR) + { + fputs ("Error installing signal handler.\n", stderr); + return 1; + } + + struct itimerval timer; + timer.it_value.tv_sec = 1; + timer.it_value.tv_usec = 0; + timer.it_interval.tv_sec = 1; + timer.it_interval.tv_usec = 0; + setitimer (ITIMER_REAL, &timer, NULL); + + while (1) + sleep (10); + return 0; +} diff --git a/20180706/signals-6.c b/20180706/signals-6.c new file mode 100644 index 0000000000000000000000000000000000000000..5fabafe62e28fc2baa68c1ef731a05dba5be5eaa --- /dev/null +++ b/20180706/signals-6.c @@ -0,0 +1,22 @@ +#include <signal.h> +#include <stdio.h> +#include <unistd.h> + +static void signal_handler (int signo) +{ + printf ("Hello, world!\n"); + alarm (1); +} + +int main (void) +{ + if (signal (SIGALRM, signal_handler) == SIG_ERR) + { + fputs ("Error installing signal handler.\n", stderr); + return 1; + } + alarm (1); + while (1) + sleep (10); + return 0; +}