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</p> Signup and view all the answers

    Wie viele Pipes werden für Synchronization verwendet?

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

    Was ist ein Ziel von System V IPC?

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

    Wie kann ein Prozess auf eine Nachricht warten?

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

    Was ist ein Ziel von IPC-Strukturen?

    <p>Zwischen Prozessen zu kommunizieren und zu synchronisieren</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</p> Signup and view all the answers

    Was gibt die Funktion read zurück?

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

    Was ermöglicht die Funktion fdopen?

    <p>Die Verbindung zwischen Low-Level- und High-Level-IO</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</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</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</p> Signup and view all the answers

    Wozu wird der Typ in der Funktion msgrcv verwendet?

    <p>Um die Priorität der Nachrichten festzulegen</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</p> Signup and view all the answers

    Was verhindert die Entstehung von Zombie-Prozessen?

    <p>Einbindung von Signalhandlern für SIGCHLD</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</p> Signup and view all the answers

    Was ist der Zweck von Signalhandlern?

    <p>Um den Prozess zu reagieren, wenn ein Signal empfangen wird</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</p> Signup and view all the answers

    Was ist der Zweck der Funktion alarm()?

    <p>Um einen Signal nach einer bestimmten Zeit zu senden</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</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</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</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