cerca
Sistemi Operativi
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Sistemi Operativi

Torna alla pagina di Sistemi Operativi


 :: Appunti caotici ::

Lezione 3 Gestione dei thread

Pag 1

Sommario

...

Pag 2

Creazione di thread

Eseguendo una fork() all'interno di un thread, posso avere la duplicazione di tutti i thread del processo o solo di quello chiamante, a seconda di come è stato configurato il sistema operativo.

Esecuzione in thread

Per rivestire il thread di un nuovo codice, diverso da quello di partenza (condiviso), dovrei lanciare una funzione di exec().

Quindi, perché due thread appartenenti a uno stesso processo eseguano operazioni diverse, posso operare in due modi:

  • o faccio delle call() a porzioni diverse del codice condiviso
  • o uso una exec() e tanti saluti al secchio

Pag 3

Cancellazione dei thread

Esistono due modalità di cancellazione di un thread:

  • asincrona, con terminazione immediata indipedentemente dall'operazione che sta svolgendo in quel momento
  • differita, marcando il thread come "da far morire" e verificando periodicamente se sono in punti del codice in cui è possibile terminarlo, o aspettando semplicemente che il thread finisca la sua computazione (terminazione ordinaria)

Sincronizzazione e comunicazione

Se ho due processi che lavorano insieme ed ho un thread che vuole comunicare con l'altro processo, la comunicazione può avvenire:

  • con tutti i thread del processo destinatiario
  • con un sottoinsieme di thread
  • con uno specifico

Pag 4

Processi leggeri

Sono un'astrazione che permette di separare i vari thread di un processo utente e raggrupparli in diversi modi a seconda di quello che voglio fare a livello kernel.


Torna alla pagina di Sistemi Operativi