mxKernStruk.h


/*
 * mxKernStruk.h
 *
 * ====================================================================================================================
 * Im Modul mxKernStruk werden die Datenstrukturen definiert, die der Betriebs-
 * systemkern fuer die Verwaltung der Prozesse benoetigt.
 * ====================================================================================================================
 */

#ifndef __mxKernStruk__
#define __mxKernStruk__

#include "mxStrukturen.h"
#include "mxDienstStruk.h"
#include "mxListe.h"

/***************
** Strukturen **
***************/
typedef struct {                                              /* Umgebung eines wartenden Prozesses                     */
  void  *UserStackZeiger;                                     /* aktueller UserStack-Zeiger                 4           */
  long  DatenRegister[8];                                     /* Inhalte der Daten-Register                32           */
  long  AdressRegister[7];                                    /* Inhalte der Adress-Register               28           */
  short StatusRegister;                                       /* Inhalt des Status-Registers                2           */
  void  *RuecksprungAdresse;                                  /* Adresse, ab der der Prozess weiterlaeuft   4           */
} tProzessUmgebung;                                           /*                                             Summe = 74 */

typedef struct {                                              /* benoetigter Speicher eines Prozesses, Groessen in Byte */
  void  *UserStack;  int  UserStackGroesse;                   /* Beginn und Groesse des Benutzerkellers                 */
  void  *KernStack;  int  KernStackGroesse;                   /* Beginn und Groesse des Systemkellers                   */
} tBelegterSpeicher;

typedef struct {                                              /* Verwaltungs-Daten eines Prozesses                      */
  tProzessName            Name;                               /* Name des Prozesses (Startkommando) fuer Anzeige        */
  tProzessStatus          Status;                             /* Status des Prozess-Verwaltungs-Blocks                  */
  int                     Zeitscheibe;                        /* Zeitscheibe in Uhr-Ticks                               */
  int                     Abgeschossen;                       /* gibt an, ob der Prozess abgeschossen wurde             */
  int                     AmTerminieren;                      /* gibt an, ob der Prozess gerade terminiert              */
  int                     WechselZaehler;                     /* speichert den Wert des Erlaubtzaehler's                */
  tLEDStatus              LED;                                /* LED-Anzeige des Prozesses                              */
  tProzessUmgebung        *ProzessUmgebungP;                  /* Verweis auf Prozess-Umgebung                           */
  tListenKnoten           StatusKnoten;                       /* Listenknoten der Prozesslisten                         */
  tBelegterSpeicher       Speicher;                           /* Informationen ueber vom Prozess belegten Speicher      */
} tProzessVerwaltungsBlock;

typedef tProzessVerwaltungsBlock                              /* Tabelle, in der alle Prozesse verwaltet                */
  tProzessTabelle[cMaximaleProzessAnzahl];                    /* werden                                                 */


#endif


Bei Problemen mit der Seite bitte eine Mail an Marek
Converted with C2HTML V0.669 by Iluvatar
Prozeßdatenverarbeitung