Verhindern von Zombie-Prozessen
24 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Was passiert, wenn ein Schreib-Ende eines Pipes geschlossen wird?

  • Ein Fehler wird generiert
  • 0 wird vom Pipe zurückgegeben (correct)
  • Ein Signal wird an den Prozess gesendet
  • Der Pipe wird gelöscht

Wofür wird ein Pipe verwendet?

  • Nur für Synchronization
  • Nur für Signalevents
  • Nur für Kommunikation
  • Für Signalevents, Synchronization und Kommunikation (correct)

Was ist ein Bezeichner in SYS V IPC?

  • Eine Nummer für eine IPC-Struktur
  • Ein Identifier für eine Prozess-ID
  • Ein Name für eine IPC-Struktur
  • Ein Schlüssel für eine IPC-Struktur (correct)

Was gibt an, wenn ein Lese-Ende eines Pipes geschlossen wird?

<p>Ein Signal wird an den Prozess gesendet (B)</p> Signup and view all the answers

Wie viele Pipes werden für Synchronization verwendet?

<p>Ein oder zwei Pipes (B)</p> Signup and view all the answers

Was ist ein Ziel von System V IPC?

<p>Zwischen Prozessen zu synchronisieren und zu kommunizieren (C)</p> Signup and view all the answers

Wie kann ein Prozess auf eine Nachricht warten?

<p>Mit einem Pipe (B)</p> Signup and view all the answers

Was ist ein Ziel von IPC-Strukturen?

<p>Zwischen Prozessen zu kommunizieren und zu synchronisieren (C)</p> Signup and view all the answers

Was ist der Rückgabewert der Funktion open, wenn der Pfad existiert und die Datei nicht geöffnet werden kann?

<p>Eine negative Zahl (D)</p> Signup and view all the answers

Was gibt die Funktion read zurück?

<p>Die Anzahl der gelesenen Bytes (C)</p> Signup and view all the answers

Was ermöglicht die Funktion fdopen?

<p>Die Verbindung zwischen Low-Level- und High-Level-IO (B)</p> Signup and view all the answers

Warum braucht man Kennungen (IDs) bei der Kommunikation zwischen nicht verwandten Prozessen?

<p>Um die IPC-Objekte zu identifizieren (D)</p> Signup and view all the answers

Wie kann ein Prozess auf ein existierendes IPC-Objekt zugreifen?

<p>Indem er den Schlüssel des Objekts kennt (B)</p> Signup and view all the answers

Was sind die möglichen Rückgabewerte der Funktion msgrcv?

<p>Ein error-Code oder die Nachricht mit dem Typ type (D)</p> Signup and view all the answers

Wozu wird der Typ in der Funktion msgrcv verwendet?

<p>Um die Priorität der Nachrichten festzulegen (C)</p> Signup and view all the answers

Was passiert, wenn die Queue voll ist und die Funktion msgsnd aufgerufen wird?

<p>Die Funktion msgsnd blockiert, bis die Queue nicht mehr voll ist (D)</p> Signup and view all the answers

Was verhindert die Entstehung von Zombie-Prozessen?

<p>Einbindung von Signalhandlern für SIGCHLD (C)</p> Signup and view all the answers

Was passiert, wenn ein Vaterprozess wait(pid) aufruft und das Kindprozess bereits beendet wurde?

<p>Der Vaterprozess bekommt den Rückgabewert PID des beendeten Kindprozesses (B)</p> Signup and view all the answers

Was ist der Zweck von Signalhandlern?

<p>Um den Prozess zu reagieren, wenn ein Signal empfangen wird (A)</p> Signup and view all the answers

Was ist der Unterschied zwischen Pipes und FIFOS?

<p>Pipes sind nur zwischen Prozessen mit gemeinsamen Vorfahren einrichtbar, während FIFOS zwischen beliebigen Prozessen eingerichtet werden können (C)</p> Signup and view all the answers

Was ist der Zweck der Funktion alarm()?

<p>Um einen Signal nach einer bestimmten Zeit zu senden (B)</p> Signup and view all the answers

Was passiert, wenn ein Vaterprozess waitpid() mit der Option pid == -1 aufruft?

<p>Der Vaterprozess wartet auf den Abbruch eines beliebigen Kindprozesses (C)</p> Signup and view all the answers

Was ist der Unterschied zwischen SIG_IGN und SIG_DFL?

<p>SIG_IGN ignoriert alle Signale, während SIG_DFL die Standardaktion für die meisten Signale ist (A)</p> Signup and view all the answers

Was ist der Zweck der Funktion kill()?

<p>Um einen Signal an einen Prozess mit einer bestimmten PID zu senden (A)</p> Signup and view all the answers

Study Notes

Prozesse und Signalhandling

  • Ein Zombie-Prozess entsteht, wenn ein Prozess terminiert und sein Elternprozess nicht auf seinen Exit-Status wartet.
  • Ein Signalhandler kann eingerichtet werden, um Signale abzufangen und nicht immer fragen zu müssen, ob ein Signal empfangen wurde.
  • SIG_IGN ignoriert Signale, während SIG_DFL die Default-Aktion für die meisten Signale ist, die den Prozess beendet.
  • Signale können mit der kill-Funktion an einen Prozess gesendet werden oder mit raise an den eigenen Prozess.

Pipes und Nachrichtenqueuing

  • Pipes können nur zwischen Prozessen eingerichtet werden, die einen gemeinsamen Vorfahren haben.
  • Pipes sind halbduplex, d.h. Daten können nur in eine Richtung fließen.
  • FIFOS können zwischen beliebigen Prozessen eingerichtet werden und sind Voll-Duplex.
  • Stream Pipes sind eine Art von FIFOS und bieten eine Verbindung zwischen Low-Level-IO und High-Level-IO.

Dateioperationen

  • Die open-Funktion gibt einen Filedeskriptor zurück, der auf eine Datei zeigt.
  • Die read-Funktion gibt die Anzahl der gelesenen Bytes zurück und kann 0 oder -1 zurückgeben, je nachdem, ob der Lesezeiger am Dateiende steht oder ein Fehler auftritt.
  • Die lseek-Funktion setzt den Lese-/Schreibzeiger einer Datei neu.
  • Die fdopen-Funktion gibt einen Filepointer zurück, der auf einen Filedeskriptor zeigt, und ermöglicht die Verwendung von High-Level-IO-Funktionen.

Interprozesskommunikation

  • Alle IPC-Objekte außer Pipes können zwischen nicht verwandten Prozessen kommunizieren.
  • Eine Kennung wird vom System nach der Erstellung eines IPC-Objekts vergeben und kann von anderen Prozessen verwendet werden, um auf das Objekt zuzugreifen.

Message Queues

  • Nachrichten müssen nicht in der Reihenfolge gelesen werden, in der sie gespeichert wurden.
  • Durch Angabe eines Typs in msgrcv können Nachrichten "ausgelassen" werden.
  • Die flags msgsnd und msgrcv können verwendet werden, um die Warteschlange zu blockieren oder eine Nachricht zu senden.

System V IPC

  • System V IPC, auch XSI IPC genannt, bietet IPC-Strukturen für Nachrichtenqueues, Semaphore und gemeinsam genutzte Speichereinheiten.
  • Jede Struktur wird durch einen Bezeichner dargestellt, der zurückgegeben wird, wenn die Struktur erstellt wird.
  • Ein key muss spezifiziert werden, wenn eine IPC-Struktur erstellt wird, und matching keys verweisen auf matching-Objekte.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Description

Lernen Sie, wie Sie Zombie-Prozesse verhindern, indem Sie Signalhandler für SIGCHLD einrichten, zweimal fork aufrufen und die Funktionen wait() und waitpid() nutzen.

Use Quizgecko on...
Browser
Browser