Threads.

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Memoria Virtuale in Linux
STRUTTURA DEL SISTEMA OPERATIVO
Meccanismi di IPC Problemi classici di IPC
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Il Sistema Operativo.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
Sistemi Operativi - C Susanna Pelagatti
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
Scheduling in Linux (Kernel 2.6)
Operating System Concepts
Strutture dei Sistemi Operativi
Silberschatz, Galvin and Gagne Operating System ConceptsIntroduzione Che cosè un Sistema Operativo? Sistemi batch semplici Sistemi batch multiprogrammati.
I processi Concetto di processo Scheduling dei processi
Realizzazione del file system
Interfaccia del file system
Sincronizzazione fra processi
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Processi Concetto di processo Scheduling dei processi
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Processi e Thread.
Threads: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Struttura dei sistemi operativi (panoramica)
I Thread.
Linguaggi di programmazione
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Sistemi Operativi GESTIONE DEI PROCESSI.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Distributed File System Service Dario Agostinone.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
Sistemi Operativi.
Silberschatz and Galvin Operating System Concepts CAP. 1 - INTRODUZIONE.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Processi e Thread Job: Insieme di processi che condividono quote e limiti. Processo: Contenitore di risorse (una lista di thread, una lista di handle e.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
File system distribuito transazionale con replicazione
Sincronizzazione dei processi
Memoria Centrale.
Processi.
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Scheduling della CPU.
Sistema Operativo (Software di base)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
I processi.
Docente: G. Ianni Esercitatori: A. Martello (Sistemi Operativi), V. Lio (Reti) Sito del corso: Google ‘sistemi operativi e reti unical’ Gruppo FB («Sistemi.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione del processore (Scheduler)
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Processi e Thread Processi e thread in Windows 2000.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Cos’è un sistema operativo ?
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P.
Transcript della presentazione:

Threads

Outline Introduzione ai thread Definizione Vantaggi Modelli di programmazione multithread

Outline Introduzione ai thread Definizione Vantaggi Modelli di programmazione multithread

Motivazioni Nel modello a processi, ogni processo ha il suo spazio di indirizzamento privato ed il modo per interagire è quello di utilizzare i meccanismi di IPC messi a disposizione dal sistema Es.: send, receive Questo implica alti costi di interazione, se i dati da scambiare sono molti poiché il context-switch è un’operazione costosa! L’idea della programmazione multithread è di sostituire tanti processi normali con un solo processo in grado di lanciare diversi flussi di esecuzione (thread) che condividono aree testo e dati

Thread Thread (processo leggero – lightweight process, LWP) è simile ad un processo, ma richiede meno risorse da parte del Sistema Operativo Per ogno thread si ha: Identificatore di thread Contatore di programma Insieme di registri Stack Un insieme di thread lanciati dallo stesso processo condividono con il processo che li ha generati: Sezione codice Sezione dati Risorse di sistema (es.: file aperti) Essendo il thread più leggero, la fase di context switch è più rapida

Vantaggi e Svantaggi Vantaggi Tempo di risposta Un’applicazione multithread permette all’utente di interagire sempre con essa anche se una parte è bloccata (ad esempio in attesa di input) Condivisione delle risorse I thread condividono la memoria e le risorse del processo di appartenenza. Poiché una applicazione può avere più thread il risparmio è notevole Economia Normalmente creare un processo è costoso, poiché un thread condivide parte delle risorse di un processo la sua creazione è più veloce Uso di sistemi multiprocessori Nei sistemi multiprocessori Se un solo processo non si sfrutta il parallelismo Al contrario, i thread possono essere eseguiti in parallelo aumentando il grado di parallelismo Svantaggi La programmazione in ambienti multithread è più difficile rispetto ai singoli processi Poiché i thread di un processo condividono le stesse risorse è necessario un accesso con mutua esclusione alle risorse condivise Debugging dei programmi molto più difficile

Uso dei thread I thread possono essere adoperati per eseguire funzioni diverse all’interno della stessa applicazione, ad esempio: Web browser Un thread si occupa si visualizzare le immagini ed il testo Un thread si occupa di ricevere i dati da visualizzare Word processing Un thread mostra testo/immagini a video Un thread si occupa dell’interfaccia utente Un thread controlla gli errori ortografici I thread possono anche essere adoperati per eseguire le stesse funzioni all’interno di una applicazione, ad esempio: Web server Thread che accettano le richieste e creano altri thread per servirle Thread che servono le richiesta di connessione

Outline Introduzione ai thread Definizione Vantaggi Modelli di programmazione multithread

Modelli di programmazione multithread I thread possono essere definiti come: Thread a livello utente Realizzati tramite librerie che girano in modalità utente Thread a livello kernel Realizzati direttamente nel kernel

Thread a livello utente Nell’implementazione dei thread a livello utente il sistema operativo ignora la presenza dei thread I thread sono gestiti da un processo a run-time in modalità utente Il run-time support della libreria gestisce il loro scheduling La creazione dei thread e lo scheduling avvengono a livello applicativo senza entrare nella modalità kernel Lo svantaggio è che se un thread effettua una system call bloccate blocca il processo e quindi tutti i thread si bloccano

Kernel Threads Le funzioni di creazione, scheduling e gestione sono a carico del Sistema Operativo e quindi implementate direttamente nel kernel A ciascuna funzione corrisponde una system call Quando un thread si blocca il Sistema Operativo può mettere in esecuzione un altro thread dello stesso processo Possibilità di eseguire thread diversi appartenenti allo stesso processo su unità di elaborazione differenti

Esempi di thread Thread a livello utente POSIX Pthreads Win32 threads Java threads Thread a livello kernel Windows 7 Windows XP Linux Mac OS X Solaris Che relazione esiste fra thread a livello utente e quelli a livello kernel?

Relazioni tra thread Le relazioni che esistono tra thread a livello utente e thread a livello kernel possono essere Modello da molti a uno Modello da uno a uno Modello da molti a molti

Modello molti-a-uno Diversi thread a livello utente sono mappati su un singolo thread a livello kernel Impiegato quando il kernel non gestisce i thread La gestione dei thread è efficiente poiché avviene a livello utente Se un thread effettua una system call bloccante l’intero insieme dei thread si blocca Un solo thread alla volta può accedere al kernel ed è quindi impossibile eseguire più thread in parallelo

Modello uno-a-uno Ogni thread a livello utente corrisponde ad un unico thread a livello kernel Maggiore livello di concorrenza poiché se un thread effettua una chiamata bloccante gli altri thread non si bloccano Più thread possono accedere al kernel quindi è possibile eseguire più thread in parallelo La gestione non è molto efficiente poiché per ogni thread utente è necessario creare il corrispondente thread kernel

Modello molti-a-molti Diversi thread a livello utente corrispondono ad un numero uguale o minore di thread del kernel Offre il meglio dei modelli precedenti Offre maggiore concorrenza rispetto al modello molti ad uno Se il numero dei thread aumenta la gestione risulta sempre efficiente rispetto al modello uno ad uno