quali sono i vari modelli di thread ? lo svantaggio di ciascuno ? | Molti a uno: un unico thread kernel gistisce piu thread a livello utente
- se uno dei thread si blocca (per un errore o per una chiamata bloccante tipo IO) allora anche gli possono risentirne
Uno a uno: fornisce piu concorrenza del precedente anche perche piu kernel possono essere eseguiti in parallelo su diversi processori
- overhead: considerato come uno spreco di risorse e diminuzione dellefficienza complessiva
Molti a Molti raggruppa un numero di thread utente verso un numero uguale o inferiore di thread kernel
- nessun difetto noto
A due livelli: permette anche di vincolare un thread utente a un solo thread del kernel |
quali tipi di cooperazioni fra thread esistono ? | Thread simmetrici -> i thread sono equipotenti: e’ possibile scegliere di attivarne uno qualunque per servire una richiesta esterna
thread gerarchici -> i thread vengono suddivisi in lavoratori(eseguono il lavoro dato dai coordinatori) e coordinatori (ricevono richieste esterne e affidano il lavoro ai lavoratori)
thread in pipeline -> ogni thread svolge una porzione del lavoro complessivo essendo specializzato in un preciso
sottoinsieme delle funzioni |
i vantaggi dell'utilizzo di thread | la condivisione delle risorse fra processi
Miglioramento dell'economia del sistema
I programmi diventano sfruttabili delle architetture multiprocessore. |
che tipo di supporto è previsto per la gestione dei thread? | - spazio utente: la gestione del THREAD UTENTE viene lasciata ad un processo(il kernel è sollevato dalla gestione del thread) il tutto è reso possibile dalle librerie per la gestione dei thread rese disponibili a livello utente
- spazio kernel: per la gestione dei TREAD KERNEL è del tutto gestita dal sistema operativo con una libreria a livello kernel le funzioni sono quindi chiamate di sistema |
come viene cancellato un thread? | La cancellazione di un thread prevede la sua terminazione prima che abbia completato la sua esecuzione.
Questa può avvenire in due modi:
- cancellazione asincrona : terminazione a prescindere da quello che il thread sta facendo
- cancellazione differita : viene verificato periodicamente che il thread si trovi in un punto in cui può essere terminato, alternativamente si aspetta la sua terminazione naturale |
quale è la differenza fra processi e thread? | Un processo riguarda una sola applicazione e ha un preciso scopo può essere composto da diversi thread, in quel caso si chiamerebbe processo multithread
Un thread invece identifica un flusso di esecuzione indipendente e autonome su un programma che ha accesso a una porzione di memoria |
quali sono i vantaggi di usare i thread invece che i processi? | I thread hanno diversi vantaggi rispetto ai processi, tra cui
la maggiore disponibilità,
la condivisione delle risorse,
l'economia
sfruttamento delle architetture multiprocessore. |
what are the disadvantages of using threads instead of processes? | I thread hanno diversi svantaggi rispetto ai processi, tra cui la
maggiore complessità,
maggiore probabilità di errori
maggiore difficoltà di debug. |
quali sono le sfide della gestione dei thread di un sistema? | La gestione dei thread in un sistema multiprocessore è una sfida complessa, a causa di una serie di fattori, tra cui:
* La necessità di sincronizzare l'accesso alle risorse condivise
* La necessità di evitare deadlock e starvation
* La necessità di ottimizzare le prestazioni
Esistono una serie di tecniche che possono essere utilizzate per affrontare queste sfide, tra cui:
* L'utilizzo di mutex, semafori e altre primitive di sincronizzazione
* L'utilizzo di thread di priorità
* L'utilizzo di schedulazione a più livelli
in generale dipende dal tipo di applicazione e dal carico di lavoro |
cosa sono e a cosa servono le librerie dei thread? | La libreria dei thread fornisce al programmatore una API per la creazione e la gestione dei thread.
si possono implementare in due modi:
1) la libreria è collocata interamente a livello utente, senza fare ricorso al kernel.
2) implementare una libreria a livello kernel, con l’ausi lio diretto del sistema operativo. In questo caso, il codice e le strutture dati per la libreria si trovano nello spazio del kernel |
how is the correct model of threading chosen for an application? | Il modello di threading corretto per un'applicazione dipende da una varietà di fattori, tra cui le caratteristiche dell'applicazione, le prestazioni richieste e le risorse disponibili. |