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 6

Prozess, der immer dann läuft, wenn eine CPU nichts zu tun hat. Mehr ...

#include <idlethread.h>

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

Öffentliche Methoden

 IdleThread (void *tos)
void action ()
 Methode, die als Koroutine ausgeführt werden soll.
- Ã–ffentliche Methoden geerbt von Customer
 Customer (void *tos)
 Konstruktor.
Waitingroomwaiting_in ()
 Hiermit kann abgefragt werden, in welchem Waitingroom Objekt der Customer eingetragen ist.
void waiting_in (Waitingroom *w)
 Mit dieser Methode wird im Customer vermerkt, dass dieser derzeit im Waitingroom w auf ein Ereignis wartet.
- Ã–ffentliche Methoden geerbt von Entrant
 Entrant (void *tos)
 Der Entrant Konstruktor gibt nur den Parameter tos an den Coroutinen Konstruktor weiter.
- Ã–ffentliche Methoden geerbt von Coroutine
 Coroutine (void *tos)
 Konstruktor.
void go ()
 Aktiviert die erste Koroutine auf einem Prozessor.
void resume (Coroutine &next)
 Wechsel von der aktuell laufenden Koroutine zur nächsten.
void set_kill_flag ()
 Setzen des Kill-Flags. Prozess wechselt in den Zustand sterbend. Wird nur für MPStuBS benötigt.
void reset_kill_flag ()
 Zurücksetzen des Kill-Flags. Prozess ist damit gestorben. Wird nur für MPStuBS benötigt.
bool dying ()
 Abfragen des Kill-Flags. Nachschauen, ob der Prozess gerade stirbt. Wird nur für MPStuBS benötigt.

Weitere Geerbte Elemente

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

Ausführliche Beschreibung

Prozess, der immer dann läuft, wenn eine CPU nichts zu tun hat.

In OOStuBS ist es nicht notwendig IdleThread zu verwenden. Eine Implementierung über einen einfachen Idle-Loop im Scheduler ist dort einfacher.

In MPStuBS hingegen vereinfacht die Verwendung von IdleThread die Behandlung von "däumchendrehenden" Prozessoren.

Zu beachten
Instanzen von IdleThread sollten nie in der Bereitliste des Schedulers auftauchen, sondern immer getrennt gehalten werden, da sie ja nur dann ausgeführt werden sollen, wenn kein normaler Thread mehr bereit ist.

Dokumentation der Elementfunktionen

void IdleThread::action ( )
inlinevirtual

Methode, die als Koroutine ausgeführt werden soll.

Abgeleitete Klassen können durch Überschreiben dieser Methode den Code angeben, der als Koroutine ausgeführt werden soll.

Implementiert Coroutine.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
  Impressum   Datenschutz Stand: 2013-01-18 12:56   BO, DL