Assassin Klassenreferenz
Behandlung für einen "Killer"-IPI, also eine Nachricht, dass ein Prozess beendet werden soll.
Mehr ...
#include <assassin.h>
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
"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