Anteprima
Vedrai una selezione di 1 pagina su 3
Sistemi operativi - Thread nei sistemi operativi Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Thread

In alcuni s.o. il sistema fornisce il supporto per definire sequenze di controllo multiple all'interno di un singolo processo. Queste

sequenze di controllo sono solitamente chiamate thread. Questo tipo di approccio ha dei vantaggi:

• Tempo di risposta: un’applicazione multithread permette all’utente di interagire sempre con essa anche se una parte e bloccata

(ad esempio in attesa di input)

• Condivisione delle risorse: i thread condividono la memoria e le risorse del processo di appartenenza. Poiche una applicazione

puo avere piu thread il risparmio e notevole.

• Economia (normalmente creare un processo e costoso, poiche un thread condivide parte delle risorse di un processo la sua

creazione e piu veloce)

• Uso di piu unita di elaborazione

Un thread e simile ad un processo ma richiede meno risorse da parte del Sistema Operativo. Per ogni thread abbiamo:

• Thread ID (identificativo)

• Program Counter

• Registri

• Stack

Un insieme di thread lanciati dallo stesso processo condividono con il processo che li ha generati la stessa area di dati, le stesse risorse.

Essendo il thread piu leggero la fase di contex switch sarà più rapida.

Thread a livello utente

La gestione dei thread e fatta a livello utente tramite librerie, il sistema operativo ignora la presenza dei thread. I thread sono gestiti da

un processo a run time in modalita utente (lo scheduling avviene senza intervento del kernel).

Vantaggi:

• La commutazione fra i thread non richiede l’intervento del nucleo

• Lo scheduling dei processi e indipendente da quello del nucleo

• Lo scheduling puo essere ottimizzato per la specifica applicazione

• Sono indipendenti dal sistema operativo in quanto implementati come libreria

Problemi:

• Le chiamate di sistema sono bloccanti (si blocca tutto il processo e non il singolo thread)

• Non si sfrutta un eventuale parallelismo hardware

Thread a livello del nucleo

Sono gestiti direttamente dal s.o. ed a ciascuna funzione corrisponde una system call.

Vantaggi:

• In un sistema multiprocessore il nucleo puo assegnare thread dello stesso processo a CPU diverse

• In caso di chiamate di sistema si blocca il singolo thread, non l’intero processo

Problemi:

• La commutazione e costosa (Non vale piu uno dei vantaggi dell’uso dei thread)

Problemi di schedulazione

Esempio:

Processo A: 1 thread

Processo B: 100 thread

Thread utente: A e B ottengono lo stesso tempo macchina. Ogni thread di B un centesimo dell’unico di A.

Thread di sistema: Ogni thread ottiene lo stesso tempo. A ottiene un centesimo del tempo di B.

Modelli di programmazione multithread

Molti a uno

Molti thread di livello utente sono mappati in un singolo thread del nucleo (usato ad esempio quando il kernel non gestisce i thread).

Uno a uno

Ad ogni thread di livello utente corrisponde un singolo thread del nucleo.

Molti a molti

Consente a molti thread di livello utente di essere mappati in molti thread del nucleo. Permette al s.o. di creare un numero sufficiente di

thread a livello nucleo.

Dettagli
Publisher
A.A. 2012-2013
3 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ilario.pirini di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Lombardi Luca.