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 2011/12  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 7

Assassin Klassenreferenz

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:

Aufstellung aller Elemente

Öffentliche Methoden

void hire ()
 "Anwerben" des Assassins
bool prologue ()
 Prolog der Unterbrechungsbehandlung.
virtual void epilogue ()
 Epilog der Unterbrechungsbehandlung.


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::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.

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.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
  • thread/assassin.h
  • thread/assassin.cc
  Impressum   Datenschutz Stand: 2012-02-01 10:07   BO, DL