Begonnen amMittwoch, 10. Juli 2024, 12:07
StatusBeendet
Beendet amMittwoch, 10. Juli 2024, 12:30
Verbrauchte Zeit23 Minuten 12 Sekunden
Bewertung0,67 von 10,00 (6,67%)

Frage 1

Teilweise richtig
Erreichte Punkte 0,67 von 1,00

Fragetext

UNIX-Prozesse ...

Frage 1 Antwort
a.

... besitzen eine eindeutige Prozess-ID (PID)

b.

... interagieren mittels grafischer Benutzeroberfläche mit dem Nutzer.

c.

... sind primäres Strukturierungskonzept für Aktivitäten.

d.

... sind stets in mehrere Fäden (Threads) aufgeteilt.

e.

... können leicht und schnell weitere Prozesse erzeugen.

Feedback

Frage 2

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Welcher Befehl gibt alle .c-Dateien eines Verzeichnisses absteigend alphabetisch sortiert in der Konsole aus?

Frage 2 Antwort

ls *.c | grep -r

ls *.c | sort -r

ls -r *.c

find . -name "*.c" | sort -r

sort -r | ls *.c

sort -r | ls *.c

Feedback

Frage 3

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Douglas McIlroy, der Erfinder der UNIX-Pipes, fasste die Philosophie hinter UNIX einmal wie folgt zusammen:

Frage 3 Antwort
a.

Create feature-rich programs to cover all use cases.

b.

Write programs that handle binary data, because it is more efficient.

c.

Write programs that are closed source and proprietary.

d.

Develop monolithic applications that provide all features in one package.

e.

Write programs that do one thing and do it well.

f.

Write programs to work together.

g.

Prioritize user interfaces over command-line tools.

h.

Write programs to handle text streams, because that is a universal interface.

Feedback

Frage 4

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Welche Aussagen stimmen für die bekannte Methode fork()?

Frage 4 Antwort
a.

fork() gibt im Kindprozess den Wert 0 zurück.

b.

fork() führt den Kindprozess auf einem anderen Prozessor aus.

c.

fork() erzeugt einen neuen Prozess, der ein Duplikat des aufrufenden Prozesses ist.

d.

fork() gibt im Elternprozess den Wert -1 zurück, wenn der Kindprozess erfolgreich erstellt wurde.

Feedback

Frage 5

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Welche Aussagen stimmen für die bekannte Methode wait()?

Frage 5 Antwort
a.

wait() verhindert das Entstehen von untoten Prozessen (Zombie).

b.

wait() verhindert das Entstehen von verwaisten Prozessen (Orphan).

c.

wait() blockiert den aufrufenden Prozess, bis ein Kindprozess beendet wird.

d.

wait() wartet auf den Kindprozess und beendet den Elternprozess, sobald ein Kindprozess endet.

e.

wait() gibt immer die PID des Kindprozesses zurück, das beendet wurde.

Feedback

Frage 6

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Welche Ausgabe erzeugt gcc -o test test.c; ./test; echo -e '\b\b '?

test.c besitzt den folgenden Inhalt:

#include <stdio.h>
#include <stddef.h>
#include <unistd.h>
#include <sys/wait.h>

int
x = 1;

void
hit() {
   printf
("%d, ", ++x);
   x *= 2;
}
 
int main() {
   hit();
   pid_t pid = fork();
   if (pid > 0) {
      wait(NULL);
      hit();
      int x = 0;
      hit();
   } else if (pid == 0) {
      hit();
   } else {
      hit();
      printf("Ohje\n");
   }
   return 0;
}

Feedback

Frage 7

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Welche Ausgabe erzeugt gcc -o test test.c; ./test; echo -e '\b\b '?  

test.c besitzt den folgenden Inhalt:

#include <stdio.h>
#include <stddef.h>
#include <unistd.h>
#include <pthread.h>
#include <sys/wait.h>

int x = 1;

void hit() {
   printf("%d, ", ++x);
   x *= 2;
}

void* seven() {
   x *= 7;
   printf("%d, ", x++);
   return 0;
}

int main() {
   hit();
   pid_t pid = fork();
   if (pid > 0) {
      wait(NULL);
      hit();
      x = 0;
      hit();
   } else if (pid == 0) {
      pthread_t t;
      if(pthread_create(&t, NULL, &seven, NULL)) { printf("Schade\n"); }
      else { pthread_join(t, NULL); }
      hit();
      int x = 0;
      hit();
   } else {
      hit();
      printf("Ohje\n");
   }
   return 0;
}

Feedback

Frage 8

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Welche Speichersegmente teilen sich Fäden (Threads) mit dem schwergewichtigen Prozess?

Frage 8 Antwort
a.

Heap

b.

BSS

c.

Text

d.

Data

e.

Stack

Feedback

Frage 9

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Jedem Prozess ist in Abhängigkeit von der Einplanungsebene ein logischer Zustand zugeordnet, der den Prozesszustand zu einem Zeitpunkt angibt.

Aus der Vorlesung sind Ihnen die folgenden Einplanungsebenen und Zustände bekannt:

Kante 1: READY -> RUNNING
Kante 2: RUNNING -> READY
Kante 3: READY-SUSPEND -> READY
Kante 4: BLOCKED -> READY

Ordnen Sie die Kanten 1 bis 4 den folgenden Aussagen zu: Einplanung/Umplanung (scheduling/rescheduling) erfolgt, …

... sofern das von einem Prozess erwartete Ereignis eingetreten ist

... wenn ein Prozess freiwillig die Kontrolle über die CPU abgibt

... sobald ein ausgelagerter Prozess wieder aufgenommen wird

... nachdem ein Prozess erzeugt worden ist

Feedback

Frage 10

Falsch
Erreichte Punkte 0,00 von 1,00

Fragetext

Bei dem Scheduling-Verfahren HRRN (Highest Response Ratio Next) wird immer der Prozess mit dem größten Verhältniswert gewählt.
Der Prozess 1 besitzt eine erwartete Bedienzeit von 3 Zeiteinheiten und hat bisher 2 Zeiteinheiten gewartet.
Der Prozess 2 besitzt eine erwartete Bedienzeit von 2 Zeiteinheiten und hat bisher 4 Zeiteinheiten gewartet.
Der Prozess 3 besitzt eine erwartete Bedienzeit von 3 Zeiteinheiten und hat bisher 5 Zeiteinheiten gewartet.
Welcher Prozess wird nun also von HRRN ausgewählt?

Feedback