Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultät Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
    - Videos
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Module
    - Mailingliste
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * Aufgabe 1
          Dokumentation
       * Aufgabe 2
          Dokumentation
       * Aufgabe 3
          Dokumentation
       * Aufgabe 4
          Dokumentation
       * Aufgabe 5
          Dokumentation
       * Aufgabe 6
          Dokumentation
       * Aufgabe 7
          Dokumentation
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2012/13  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 7

Behandlung für einen "Killer"-IPI, also eine Nachricht, dass ein Prozess beendet werden soll. Mehr ...

#include <assassin.h>

Klassendiagramm für Assassin:
Zusammengehörigkeiten von Assassin:

Öffentliche Methoden

void hire ()
 "Anwerben" des Assassins
bool prologue ()
 Prolog der Unterbrechungsbehandlung.
virtual void epilogue ()
 Epilog der Unterbrechungsbehandlung.
- Ã–ffentliche Methoden geerbt von Gate
 Gate ()
 Konstruktor: Initialisierung der Attribute.
virtual ~Gate ()
 Destruktor.
void queued (bool q)
 Speichert, ob das jeweilige Objekt sich gerade in einer Epilog-Warteschlange befindet.
bool queued ()
 Methode zum Abfragen, ob sich das jeweilige Objekte gerade in einer Epilog-Warteschlange befindet.

Weitere Geerbte Elemente

- Ã–ffentliche Attribute geerbt von Chain
Chainnext
 next gibt das nächste Chain Element der Liste an.

Ausführliche Beschreibung

Behandlung für einen "Killer"-IPI, also eine Nachricht, dass ein Prozess beendet werden soll.

Nur für MPStuBS notwendig.

Will ein Prozess einen anderen Prozess mittels Scheduler::kill() beenden, so muss man, falls der zu beendende Prozess gerade irgendwo läuft diese CPU benachrichtigen, dass der Prozess sterben soll. Die soll durch einen Interprozessorinterrupt (IPI) realisiert werden. Die Klasse Assassin soll nun diesen IPI behandeln und im Epilog prüfen, ob beim aktuell laufenden Prozess das Sterbe-Flag gesetzt ist, dann gegebenenfalls den Prozess von der Ready-Liste entfernen und eine Prozessumschaltung auslösen.

Dokumentation der Elementfunktionen

void Assassin::epilogue ( )
virtual

Epilog der Unterbrechungsbehandlung.

Der Epilog muss nun, falls der aktuell laufende Prozess das "Dying-Flag" gesetzt hat, ein Rescheduling auslösen.

Erneute Implementation von Gate.

void Assassin::hire ( )

"Anwerben" des Assassins

Konfiguriert Plugbox plugbox derart, dass der Assassin beim Auftreten des entsprechenden Interrupts aktiviert wird.

bool Assassin::prologue ( )
virtual

Prolog der Unterbrechungsbehandlung.

Der Prolog muss hier nichts weiter tun als einen Epilog anzufordern.

Rückgabe
Gibt true zurück, um einen Epilog anzufordern

Implementiert Gate.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
  Impressum   Datenschutz Stand: 2013-01-31 15:49   BO, DL