globals.c


/*************************************************************************
*                                                                        *
*   Modulo contenente le variabili globali                               *
*                                                                        *
*   realizzato dal Gruppo 17 di Lab2 Anno Accademico 1995/96             *
*                                                                        *
*   Lorenzo     Claudio       Valerio    Riccardo    Emiliano            *
*   Coronati    Lanconelli    Paolini    Solmi       Trentini            *
*                                                                        *
**************************************************************************/

#include "../h/const.h"
#include "../h/nucconst.h"
#include "../h/thrqueue.h"
#include "../h/proctree.h"
#include "../h/globals.h"

proc_t *ready_queue = (proc_t *) NULL;    /* coda processi pronti */
proc_t *run_proc = (proc_t *) NULL;   /* processo in esecuzione */
thr_t *run_thread = (thr_t *) NULL; /* thread in esecuzione */
thr_t wait_thread;                  /* thread vuoto */

#ifndef SUPPORT
thr_t *SSI;
#endif

/*
 * puntatori usati per gestire l'accesso alle aree di sistema trap
 * ed interrupt
 */
state_area *trap_area = (state_area *) BEGINTRAP;
state_area *intr_area = (state_area *) BEGININTR;

long next_clock;        /* prossima scadenza dello pseudoclock */
long time_left;         /* tempo di esecuzione rimasto al thread
                         * attivo */
long last_start;        /* tempo di partenza del thread attivo */
long time_now;          /* memorizza il tempo del timer */

int no_wait = 0;        /* utilizzata nel controllo per deadlock */
thr_t *clock_reply = NULL;
ioreply_t io_reply[NODEVICES];

#ifdef  NUC_DEBUG
int nuc_stl;            /* per individuare trap innestate */
#endif

#ifdef  NUC_PROFILE
long wait_time = 0;
long wait_start;
long ini_time;
long intr_time = 0;
#endif


[INDICE CODICE]