Strutture Dati:
Thread e Processi



La gestione dei processi si basa su due strutture: thr_t e proc_t.

La struttura thr_t contiene le informazioni specifiche di un thread, in particolare:
  • lo stato macchina del thread quando viene posto in attesa
  • il riferimento al processo a cui appartiene
  • la coda dei messaggi ricevuti e non ancora letti
  • il thread da cui e` in attesa di ricevere un messaggio.
  • La struttura proc_t contiene tutte le informazioni comuni ai thread di uno stesso processo, in particolare:
  • i gestori delle trap
  • i collegamenti all'interno dell'albero dei processi
  • il tempo di utilizzo del processore
  • la coda dei thread pronti e dei thread in attesa di un messaggio.
  • Da notare che abbiamo definito i gestori di trap a livello di processo e non a livello di thread, essendo improbabile che due thread dello stesso processo richiedano gestori di trap diversi.

    I processi formano una struttura ad albero che riflette la gerarchia di creazione; la radice di questo albero e' la SSI.

    La suddivisione in due strutture permette di risparmiare memoria e di avere una coda di schedulazione di secondo livello per ogni processo.


    Struttura Processo con i relativi Thread nelle code pronti e attesa

  • [1] Puntatore al primo elemento della coda dei thread
  • [2] Collegamento all'interno della coda dei thread
  • [3] Riferimenti dei thread al processo a cui appartengono
  • [4] Coda dei messaggi destinati al thread ma non attesi
  • [5] Indica una coda vuota (puntatore a NULL)
  • [6] Struttura thread
  • [7] Collegamenti agli altri processi dell'albero
  • [8] Puntatori ai gestori di trap
  • [9] Collegamento per la coda dei processi pronti


  • [LancOS Home] [AMPEOS Index] [Indice codice] [Fasi 1 & 2] [Fase 3]