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
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - 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 2009/10  >  Betriebssysteme  >  ├ťbungen  >  Aufgaben  >  Aufgabe 5

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: 2010-07-19 12:34   BO, DL