Uni.SO-Mod3-2-Lez3 History
Show minor edits - Show changes to output
Added lines 1-42:
(:title Sistemi Operativi:) [[Torna alla pagina di Sistemi Operativi->SistemiOperativi]] ----
%titolo%''':: Appunti caotici ::'''
%center%%sottotitolo%Lezione 3 %center%%sottotitolo%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->SistemiOperativi]]
|