Pthread Posix Thread

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Pthread Posix Thread"

Transcript

1 Pthread Psix Thread Crs di laurea in Cmunicazine Digitale Labratri di Reti di calclatri A.A Simne Bassis Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I. Da prgrammazine di rete multiprcess a multithread Una frk() è cmputazinalmente pesante Richiede frme di cmunicazine interprcess per scambiare dati I thread (lighweight prcess) cndividn Memria glbale Istruzini Dati File aperti (es. descrittri) Signal handler e signal dispsitin Wrking directry User e grup ID Ma gni thread ha il prpri Thread ID Insieme di registri (prgram cunter e stack pinter) Stack errn Signal mask Prirità In sldni La cmunicazine è immediata e semplificata Ma richiede attenzine ai prblemi di sincrnizzazine Psix thread Pthread sn la standardizzazine dei thread nel 1995 cme parte degli standard Psix.1c Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I

2 pthread_create() int pthread_create(pthread_t *tid, cnst pthread_attr_t *attr, vid *(*func)(vid *), vid *arg); Returns: 0 if OK, psitive Exxx value n errr Crea un nuv thread tid: thread ID di tip pthread_t (di slit un unsigned int) p_thread_attr_t: attributi del thread prirità, dimensine dell stack, flag per indicare se è un demne, per gli attributi di default usare NULL func: funzine che deve essere eseguita dal thread La funzine prende cme argment un puntatre generic (vid *) E ritrna un puntatre generic (vid *) arg: argmenti di func In cas di argmenti multipli è necessari inserirli in un struct Il thread termina Implicitamente (quand func() ritrna) Esplicitamente (tramite pthread_exit()) Frzatamente (quand il la funzine main() del prcess ritrna un thread chiama exit()) Valre di ritrn Al cntrari delle scket functin (0 se OK e -1 se errre cn errn settat pprtunamente) 0 se OK, psitive errr (>0) se errre, senza settare errn Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I. 516 pthread_jin()/_self() int pthread_jin(pthread_t *tid, vid **status); Returns: 0 if OK, psitive Exxx value n errr Attende che un dat thread abbia terminat la sua esecuzine (cme waitpid()) tid: thread ID che vgliam attendere Nn si può attendere gni thread (-1) cme cn waitpid() status: valre di ritrn del thread pthread_t pthread_self(vid); Returns: thread ID f calling thread Permette ad un thread di ttenere il su thread ID Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I

3 pthread_detach()/_exit() int pthread_detach(pthread_t *tid); Returns: 0 if OK, psitive Exxx value n errr Rende un thread detached Un thread può essere jinable detached Quand un jinable thread termina, il su thread ID e il su exit status sn mantenuti finchè un altr thread invca pthread_jin Un detached thread è cme un prcess demne: quand termina, le sue risrse sn rilasciate e nn si può attendere sulla sua terminazine Di slit è chiamata dal thread che vule rendere se stess detached pthread_detach(pthread_t tid) vid pthread_self(vid *status); Des nt return t caller Permette ad un thread di terminare status: nn deve puntare ad un ggett lcale al thread, altrimenti sparisce quand il thread termina 518 Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I. vid *cpyt(vid *); static int sckfd; /* glbale per garantire access a entrambi i thread */ static FILE *fp; vid str_cli(file *fp_arg, int sckfd_arg) char recvline[maxline]; pthread_t tid; sckfd = sckfd_arg; /* cpia degli argmenti nella variabile esterna */ fp = fp_arg; pthread_create(&tid, NULL, cpyt, NULL); Ech Client while (readline(sckfd, recvline, MAXLINE) > 0) fputs(recvline, stdut); vid * cpyt(vid *arg) char sendline[maxline]; while (fgets(sendline, MAXLINE, fp)!= NULL) write(sckfd, sendline, strlen(sendline)); Attenzine alla readline() che nn esiste nell standard C shutdwn(sckfd, SHUT_WR); /* EOF su stdin, invia FIN */ return(null); /* return (il thread termina) quand incntra EOF su stdin */ Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I

4 static vid *dit(vid *); /* gni thread esegue questa funzine */ int main(int argc, char **argv) int listenfd, cnnfd; scklen_t addrlen, len; struct sckaddr *cliaddr; // cme nei casi precedenti, fin alla listen() fr ( ; ; ) cnnfd = accept(listenfd, cliaddr, &len); pthread_create(null, NULL, &dit, (vid *) cnnfd); static vid * dit(vid *arg) pthread_detach(pthread_self()); // qui ci vann le istruzini per gestire l ech */ clse((int) arg); /* terminat cn la scket cnnessa */ return(null); Ech Server Il thread invca la detach() perché nn c è ragine che il thread principale attenda sulla sua terminazine La scket dati va chiusa prima della terminazine, piché i thread cndividn tutti i descrittri Cn la frk() nn è necessari Il thread principale, parimenti, nn chiude la scket dati, altrimenti la scket verrebbe definitivamente chiusa Al cntrari della frk() La creazine di nuvi thread nn aggiunge un reference cunt ai descrittri aperti Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I. 520 Ech Server int main(int argc, char **argv) int listenfd, cnnfd; fr ( ; ; ) cnnfd = accept(listenfd, cliaddr, &len); pthread_create(null, NULL, &dit, &cnnfd); Passaggi di argmenti a nuvi thread La variabile cnnfd è cndivisa tra tutti i thread senza sincrnizzazine Si pssn verificare race cnditins se più thread cndividn l stess cnnfd: alcuni client pssn rimanere senza il crrispettiv server-thread int listenfd, *iptr fr ( ; ; ) iptr= mallc(sizef(int)); *iptr= accept(listenfd, cliaddr, &len); Sluzine Dare ad gni thread una cpia del descrittre cnnfd Passand il valre di cnnfd e nn il puntatre al valre Il thread cntrlla il valre di cnnfd e pi rilascia la memria Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I. pthread_create(null, NULL, &dit, iptr); static vid * dit(vid *arg) int cnnfd; cnnfd=*((int *) arg); free(arg); pthread_detach(pthread_self()); 521 4

5 Occhi alla sincrnizzazine Al slit la parte difficile è la gestine crretta della sincrnizzazine, tramite Mutex (Mutual Exclusin) int pthread_mutex_lck (pthread mutex_t *mptr); int pthread mutex unlck(pthread_mutex_t *mptr); Bth return: 0 if OK, psitive Exxx value n errr Cnditin Variable #include <pthread.h> int pthread cnd wait(pthread_cnd_t *cptr, pthread_mutex_t *mptr); int pthread_cnd_signal(pthread_cnd_t *cptr); Bth return:0 if OK, psitive Exxx value n errr Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I. 522 Esercizi C 7 Si implementi una versine multithread dell Ech Server sviluppat nell Esercizi C 5. Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.S.I

Unix Socket. Corso di laurea in Comunicazione Digitale Laboratorio di Reti di calcolatori A.A Simone Bassis

Unix Socket. Corso di laurea in Comunicazione Digitale Laboratorio di Reti di calcolatori A.A Simone Bassis Unix Scket Crs di laurea in Cmunicazine Digitale Labratri di Reti di calclatri A.A. 009-00 Simne Bassis bassis@dsi.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 0-0 Università di Milan D.S.I.

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 20 Giovedì 22-12-2016 Comunicazione: pipe In Unix, processi possono comunicare

Dettagli

Thread. La libreria Pthread Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Thread. La libreria Pthread Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Thread La libreria Pthread Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Librerie di thread Fornisce l interfaccia per effettuare la gestione dei thread da parte del programmatore

Dettagli

Progettazione di Applicazioni Robuste. Applicazione Echo. Schema Generale di un Server TCP Ricorsivo 1. Applicazione echo

Progettazione di Applicazioni Robuste. Applicazione Echo. Schema Generale di un Server TCP Ricorsivo 1. Applicazione echo a.a. 2003/04 Applicazione Echo Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Progettazione di Applicazioni Robuste nel progettare applicazioni su rete robuste

Dettagli

Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali (NT/UNIX)

Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali (NT/UNIX) Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali

Dettagli

il tipo di parallelismo dipende dal grado di cooperazione

il tipo di parallelismo dipende dal grado di cooperazione Thread Settembre 2009 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio d informazione) necessario tra attività svolte in parallelo processo macchina virtuale

Dettagli

Problema. I/O Multiplexing. Struttura delle Operazioni di Lettura. Modelli di I/O. Prof. Vincenzo Auletta

Problema. I/O Multiplexing. Struttura delle Operazioni di Lettura. Modelli di I/O. Prof. Vincenzo Auletta a.a. 2003/04 Problema I/O Multiplexing Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1 Un applicazione

Dettagli

Conversione di nomi e indirizzi. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A Simone Bassis

Conversione di nomi e indirizzi. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A Simone Bassis Cnversine di nmi e indirizzi Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2014-2015 Simne Bassis bassis@di.unimi.it Indirizzi Java mette a dispsizine delle classi appsite per cntenere

Dettagli

I/O Multiplexing select() e poll()

I/O Multiplexing select() e poll() I/O Multiplexing select() e pll() Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2014-2015 Simne Bassis bassis@di.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 2014-2015 Università

Dettagli

P3-04: I/O multiplexing

P3-04: I/O multiplexing Autunno 2002 Prof. Roberto De Prisco -04: I/O multiplexing Università degli studi di alerno Laurea e Diploma in Informatica Problema 04.2 Un programma deve gestire due input simultaneamente tandard input

Dettagli

Thread. Thread. Creazione di nuovi processi. Applicazioni reali. La creazione di un nuovo processo costa I tempi di context switch sono elevati

Thread. Thread. Creazione di nuovi processi. Applicazioni reali. La creazione di un nuovo processo costa I tempi di context switch sono elevati Thread Thread Motivazioni Modelli Multithread Pthread, Threads in Win32, Thread in Java Problematiche relative ai Thread Thread Windows XP Thread Linux Applicazioni reali Creazione di nuovi processi Browser

Dettagli

Introduzione al Multithreading

Introduzione al Multithreading Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui

Dettagli

Relazione tra thread e processi

Relazione tra thread e processi I Thread POSIX Relazione tra modello a processi e a thread Creazione di un thread Attesa Distacco Terminazione Ricerca e confronto Inizializzazione dinamica Relazione tra thread e processi Nel modello

Dettagli

Perche le CPU multicore

Perche le CPU multicore Perche le CPU multicore I processi industriali producono chip sempre piu densi in termini di transistor 2000 Inoltre: Watt ~ Volt 2 x frequenza Frequenza ~ Volt Watt ~ frequenza 3 Il rapporto Watt/mm 2

Dettagli

ACSO Programmazione di Sistema e Concorrente

ACSO Programmazione di Sistema e Concorrente ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività

Dettagli

Funzioni bloccanti e soluzioni

Funzioni bloccanti e soluzioni Funzioni bloccanti e soluzioni La funzione accept() e le funzioni per la gestione dell I/O (ad es., read() e write()) sono bloccanti Ad es., le funzioni read() e recv() rimangono in attesa finché non vi

Dettagli

Thread. Introduzione Creazione, distruzione Sincronizzazione

Thread. Introduzione Creazione, distruzione Sincronizzazione Thread Introduzione Creazione, distruzione Sincronizzazione Parallelismo Il tipo di meccanismo a supporto del parallelismo dipende dal grado di cooperazione tra le varie entità che costituiscono un'applicazione

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 7 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Threads Un thread è l unità di base per l utilizzo della CPU. Composto

Dettagli

Laboratorio di Reti di Calcolatori

Laboratorio di Reti di Calcolatori Laboratorio di Reti di Calcolatori Funzioni utili, server ricorsivi, echo client ed echo server. Paolo D Arco Abstract Scopo della lezione è presentare alcune funzioni di utilità generale (e.g., funzioni

Dettagli

I thread nel sistema operativo LINUX: Linuxthreads

I thread nel sistema operativo LINUX: Linuxthreads I thread nel sistema operativo LINUX: Linuxthreads LinuxThreads: Caratteristiche Processi leggeri realizzati a livello kernel System call clone: int clone(int (*fn) (void *arg), void *child_stack, int

Dettagli

Implementazione di un Server Iterativo. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A

Implementazione di un Server Iterativo. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A Implementazine di un Server Iterativ Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2014-2015 Simne Bassis bassis@di.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 2014-2015

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread-

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- 1 Sommario Esercizi su: Comunicazione tra processi: la funzione pipe() Condivisione dati e codice tra due o più processi: concetto di Thread 2 -

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 16 luglio 2015 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 26 giugno 2017 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

Cosa sono i semafori?

Cosa sono i semafori? Semafori Cosa sono i semafori? I semafori sono primitive fornite dal sistema operativo per permettere la sincronizzazione tra processi e/o thread. Semafori di mutua esclusione con i thread POSIX 2 Operazioni

Dettagli

SC che operano su thread. pthread_create() etc...

SC che operano su thread. pthread_create() etc... SC che operano su thread pthread_create() etc... 1 Thread POSIX Obiettivi Fornire una breve introduzione descrivere alcune delle numerose SC relative ai thread POSIX fare qualche esempio concreto Finora

Dettagli

Funzioni bloccanti e soluzioni. Funzioni bloccanti e soluzioni (2) Parametri della funzione select() Funzione select()

Funzioni bloccanti e soluzioni. Funzioni bloccanti e soluzioni (2) Parametri della funzione select() Funzione select() Funzioni bloccanti e soluzioni La funzione accept() e le funzioni per la gestione dell I/O (ad es., read() e write()) sono bloccanti Ad es., le funzioni read() e recv() rimangono in attesa finché non vi

Dettagli

LinuxThreads: I thread nel sistema operativo LINUX: Linuxthreads. LinuxThreads. LinuxThreads

LinuxThreads: I thread nel sistema operativo LINUX: Linuxthreads. LinuxThreads. LinuxThreads I thread nel sistema operativo LINUX: Linuxthreads : Caratteristiche Processi leggeri realizzati a livello kernel System call clone: int clone(int (*fn) (void *arg), void *child_stack, int flags, void

Dettagli

I THREAD. thread 2. thread 1

I THREAD. thread 2. thread 1 I THREAD Un thread è un singolo flusso di istruzioni, all interno di un processo, che lo scheduler può fare eseguire separatamente e concorrentemente con il resto del processo. Per fare questo uno thread

Dettagli

Principles of Concurrent Programming

Principles of Concurrent Programming Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi

Dettagli

Esercitazione 2! Mutex e semafori POSIX. 3 Novembre 2016

Esercitazione 2! Mutex e semafori POSIX. 3 Novembre 2016 Esercitazione 2! Mutex e semafori POSIX 3 Novembre 2016 Strumenti di sincronizzazione nella libreria LinuxThread I semafori nelle librerie pthread e LinuxThreads La libreria pthread definisce soltanto

Dettagli

Esercitazione n.1 24 Ottobre Obiettivi:

Esercitazione n.1 24 Ottobre Obiettivi: Esercitazione n.1 24 Ottobre 2013 Obiettivi: Gestione dei thread mediante libreria pthreads: creazione: pthread_create terminazione: pthread_exit join: pthread_join 1 Richiami sui thread 2 Processi Immagine

Dettagli

Protocolli applicativi

Protocolli applicativi Prgrammazine cn le Scket Crs di laurea in Cmunicazine Digitale Labratri di sistemi e reti A.A. 2010-2011 Simne Bassis bassis@dsi.unimi.it Labratri di sistemi e reti (Cmunicazine Digitale) - A.A. 2010-2011

Dettagli

Cosa e un processo? Stato del processo

Cosa e un processo? Stato del processo Cosa e un processo? LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Un sistema operativo esegue programmi di varia natura: Compilatori, word processor, programmi utente, programmi di sistema,

Dettagli

Semafori. Semafori classici con i thread POSIX 2

Semafori. Semafori classici con i thread POSIX 2 Semafori classici Semafori I semafori sono primitive, implementate attraverso dei contatori, fornite dal sistema operativo per permettere la sincronizzazione tra processi e/o thread. Per queste primitive

Dettagli

UTILIZZO DI UNIX: LIVELLO I

UTILIZZO DI UNIX: LIVELLO I UTILIZZO DI UNIX: LIVELLO I Durata: 16 re UN BUON MOTIVO PER [cd. E901] E' il prim di due crsi pensati per chiunque debba imparare ad perare cn sistemi UNIX. In quest prim crs si imparan i cmandi, la terminlgia,

Dettagli

Lezione 5. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 5. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 5 Sistemi operativi 24 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 5.1 Di cosa parliamo in questa lezione? Relazione tra processi e thread, e relative

Dettagli

Microsoft SQL Server 2005, 2008 R2 e 2012 Raccomandazioni Marzo 2013

Microsoft SQL Server 2005, 2008 R2 e 2012 Raccomandazioni Marzo 2013 Micrsft SQL Server 2005, 2008 R2 e 2012 Raccmandazini Marz 2013 1. Micrsft SQL Server 2005 PrefSuite 2006.3 e PrefSuite 2008 sn cmpatibili cn questa versine di SQL. L investiment in Micrsft SQL Server

Dettagli

IToolS AT commands server. Version 3.3 12/11/2012

IToolS AT commands server. Version 3.3 12/11/2012 ITlS AT cmmands server 1 Smmari Descrizine... 3 Funzinament... 3 Esempi... 6 2 Descrizine Il cmpnente ITlS AtServer presente nel namespace ITlS.Cmpnents.Netwrk.Mdem cnsente di inviare SMS ed email attravers

Dettagli

Server Iterativi. Server TCP Ricorsivi. Fork. Server Ricorsivi. un server iterativo gestisce una connessione alla volta. Prof.

Server Iterativi. Server TCP Ricorsivi. Fork. Server Ricorsivi. un server iterativo gestisce una connessione alla volta. Prof. Università degli studi di Salerno Laurea in Informatica a.a. 2003/04 TCP Ricorsivi Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 1 Iterativi un server iterativo

Dettagli

Esame 70284: Implementazione e amministrazione di Exchange Server 2003 (corso MS-2400)

Esame 70284: Implementazione e amministrazione di Exchange Server 2003 (corso MS-2400) Via Renat Cesarini, 58/60 00144 Rma Via Scrate 26-20128 - Milan P. IVA: 01508940663 CCIAA: 11380/00/AQ Cisc, Juniper and Micrsft authrized Trainers Esame 70284: Implementazine e amministrazine di Exchange

Dettagli

2. I THREAD. 2.1 Introduzione

2. I THREAD. 2.1 Introduzione 2. I THREAD 2.1 Introduzione Il tipo di parallelismo che è opportuno avere a disposizione nelle applicazioni varia in base al grado di cooperazione necessaria tra le diverse attività svolte in parallelo:

Dettagli

Sistemi Operativi II. Thread: TSD, Attributi

Sistemi Operativi II. Thread: TSD, Attributi Sistemi Operativi II Thread: TSD, Attributi Dati Privati di un Thread I thread condividono il segmento dati Complementarietà rispetto ai processi thread semplice scambiare dati con altri thread appositi

Dettagli

Conversione di nomi e indirizzi. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2011-2012. Simone Bassis bassis@dsi.unimi.

Conversione di nomi e indirizzi. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2011-2012. Simone Bassis bassis@dsi.unimi. Cnversine di nmi e indirizzi Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2011-2012 Simne Bassis bassis@dsi.unimi.it Indirizzi Java mette a dispsizine delle classi appsite per cntenere

Dettagli

Astrazioni: Programma svolto in Fondamenti di Informatica 1

Astrazioni: Programma svolto in Fondamenti di Informatica 1 Prgramma svlt in Fndamenti di Infrmatica 1 1. Architettura dei sistemi di elabrazine. Struttura generale di un calclatre elettrnic, macchina di Vn Neumann. 2. Sftware di base per sistemi di elabrazine:

Dettagli

La torta caprese. I Thread. L analogia. L analogia. Parallelismo e concorrenza. Processi con sequenze di esecuzione singole e multiple.

La torta caprese. I Thread. L analogia. L analogia. Parallelismo e concorrenza. Processi con sequenze di esecuzione singole e multiple. Introduzione I Thread Parallelismo e concorrenza Thread a livello utente e nucleo I modelli multithread Aspetti sui thread Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads Ingredienti

Dettagli

Precedenza e associatività. Complementi sul C - 2. Esempi. Esempi

Precedenza e associatività. Complementi sul C - 2. Esempi. Esempi Complementi sul C - 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Precedenza e associatività () [] ->. S D! ~ ++ + * & (cast ) sizeof S D * / % S D + - (somma e sottrazione) S D >

Dettagli

Sistemi Operativi Teledidattico

Sistemi Operativi Teledidattico Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione

Dettagli

Sistemi Operativi L-A. Esercizi 14 Giugno 2007. Esercizio monitor

Sistemi Operativi L-A. Esercizi 14 Giugno 2007. Esercizio monitor Sistemi Operativi L-A Esercizi 14 Giugno 2007 Esercizio monitor Si consideri la toilette di un ristorante. La toilette è unica per uomini e donne. Utilizzando la libreria pthread, si realizzi un'applicazione

Dettagli

Socket II MIDLAB. Sirio Scipioni. M I D L A B.

Socket II MIDLAB. Sirio Scipioni.  M I D L A B. Socket II Sirio Scipioni scipioni@dis.uniroma1.it http://www.dis.uniroma1.it/~scipioni MIDLAB http://www.dis.uniroma1.it/~midlab Sommario Richiami sui processi Echo server TCP (multi processo) Richiami

Dettagli

Passare argomenti al programma

Passare argomenti al programma Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di

Dettagli

Esempi di Client e Server

Esempi di Client e Server Esempi di Client e Server Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 0-0 Simone Bassis bassis@di.unimi.it #include #include #include #include

Dettagli

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) #include void main (int argc, char *argv[]) { pid = fork(); /* genera nuovo processo */ if (pid < 0) { /* errore */ fprintf(stderr,

Dettagli

I Thread. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Thread. Laboratorio Software 2008-2009 M. Grotto R. Farina I Thread M. Grotto R. Farina Sommario 1. I Thread Introduzione 2. Creazione e terminazione Utilizzo Scheduling dei processi 3. Comunicazione 4. Attributi Passaggio di parametri Funzioni utili Descrizione

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009

Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009 Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009 Luca Fossati, Fabrizio Castro, Vittorio Zaccaria October 10, 2009 Sincronizzazione - 1 1 Esercizio 1: Sincronizzazione - 1 Qual è il problema

Dettagli

SERVER CLIENT. Struttura di un Applicazione UDP. Socket UDP. Parametri di sendto. Funzioni di Input/Output. Prof. Vincenzo Auletta

SERVER CLIENT. Struttura di un Applicazione UDP. Socket UDP. Parametri di sendto. Funzioni di Input/Output. Prof. Vincenzo Auletta I semestre 03/04 Struttura di un Applicazione UDP Socket UDP socket() bind() Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ CLIENT socket() sendto() Dati (richiesta)

Dettagli

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

Dettagli

System Calls per la Gestione dei Processi

System Calls per la Gestione dei Processi System Calls per la Gestione dei Processi Domenico Cotroneo Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Roadmap Process Context Identificativi getpid() getppid()

Dettagli

Sincronizzazione. I semafori Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. I semafori Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione I semafori Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Introduzione Le soluzioni Software sono complesse da utilizzare dal punto di vista del programmatore

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 9 (svolta) RPC: Inizializzazione Strutture Dati sul Server Luca Foschini Anno accademico 2010/2011

Dettagli

Introduzione ai socket

Introduzione ai socket Introduzione ai socket Socket locali Contiene lucidi tratti da: 2006-2007 Marco Faella, Clemente Galdi, Giovanni Schmid (Università di Napoli Federico II), 2004-2005 Walter Crescenzi(Universita di Roma

Dettagli

GESTIRE E MANTENERE UN AMBIENTE WINDOWS SERVER 2003 PER MCSA WINDOWS 2000

GESTIRE E MANTENERE UN AMBIENTE WINDOWS SERVER 2003 PER MCSA WINDOWS 2000 GESTIRE E MANTENERE UN AMBIENTE WINDOWS SERVER 2003 PER MCSA WINDOWS 2000 UN BUON MOTIVO PER Durata: 40 re [cd. E004] Quest crs e' pensat per amministratri di sistema su Windws 2000 cn esperienza nella

Dettagli

Laboratorio di Reti di Calcolatori

Laboratorio di Reti di Calcolatori Laboratorio di Reti di Calcolatori Socket UDP. Paolo D Arco Abstract Scopo della lezione è descrivere le funzioni che l interfaccia dei socket offre per far interagire client e server attraverso il protocollo

Dettagli

eseguire comandi dati dall'utente, utilizzando una macchina reale, di livello inferiore,

eseguire comandi dati dall'utente, utilizzando una macchina reale, di livello inferiore, La programmazione di sistema Introduzione ai sistemi operativi multiprocesso Primitive per la gestione dei processi http://home.dei.polimi.it/silvano/acso.htm Il sistema ste operativo Il Sistema Operativo

Dettagli

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione

Dettagli

I/O Multiplexing select() e poll()

I/O Multiplexing select() e poll() I/O Multiplexing select() e pll() Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2013-2014 Simne Bassis bassis@di.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 2013-2014 Università

Dettagli

Sistemi Operativi. Marzo-Giugno 2011 matricole congrue 0 mod 3. Controllo dei processi - I

Sistemi Operativi. Marzo-Giugno 2011 matricole congrue 0 mod 3. Controllo dei processi - I Marzo-Giugno 2011 matricole congrue 0 mod 3 Controllo dei processi - I Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro 2 1 Identificatori di processi

Dettagli

SERVER CLIENT. Letteralmente significa presa (di corrente) È l astrazione di un canale di comunicazione fra due computer connessi da una rete

SERVER CLIENT. Letteralmente significa presa (di corrente) È l astrazione di un canale di comunicazione fra due computer connessi da una rete Socket 02.2 Letteralmente significa presa (di corrente) È l astrazione di un canale di comunicazione fra due computer connessi da una rete -02: Socket TCP Autunno 2002 Prof. Roberto De Prisco Sono definiti

Dettagli

Esercizio sul Monitor. Ponte con utenti grassi e magri 11 Novembre 2013

Esercizio sul Monitor. Ponte con utenti grassi e magri 11 Novembre 2013 Esercizio sul Monitor Ponte con utenti grassi e magri 11 Novembre 2013 1 Ponte con utenti grassi e magri Si consideri un ponte pedonale che collega le due rive di un fiume. Al ponte possono accedere due

Dettagli

I thread. Motivazioni e definizione. Modelli di programmazione multithread. Librerie per i thread. Problemi nella programmazione multithread

I thread. Motivazioni e definizione. Modelli di programmazione multithread. Librerie per i thread. Problemi nella programmazione multithread I Thread I thread Motivazioni e definizione Modelli di programmazione multithread Librerie per i thread Problemi nella programmazione multithread Thread di Linux 4.2 Motivazioni 1 La gestione dei processi

Dettagli

void char void char @param void int int int int

void char  void char  @param void int int int int 1 2 /** 3 * @ file definition_ thread. c 4 * contiene l' implementazioni delle diverse funzioni 5 */ 6 7 /** 8 * @ name elaborato Terzo 9 * @ author Nicola Milani VR360442 10 */ 11 12 13 # include " definition_

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel

Dettagli

LABORATORI DI INFORMATICA 2 MANUALE STUDENTE

LABORATORI DI INFORMATICA 2 MANUALE STUDENTE LABORATORI DI INFORMATICA 2 MANUALE STUDENTE Indice 1. Gestine Sessine di lavr 1.1. Lgin al sistema 1.2. Strumenti a dispsizine dell studente 1.3. Chiusura della sessine 2. Cmandi Linux Principali 2.1.

Dettagli

Corso di Programmazione Concorrente Processi. Valter Crescenzi

Corso di Programmazione Concorrente Processi. Valter Crescenzi Corso di Programmazione Concorrente Processi Valter Crescenzi http://crescenzi.inf.uniroma3.it Sommario Processi vs Thread Creazione e terminazione di processi chiamata di sistema fork() chiamata di sistema

Dettagli

Processi Concetti di base. Esecuzione parallela e sequenziale Il concetto di processo Gestione dei processi

Processi Concetti di base. Esecuzione parallela e sequenziale Il concetto di processo Gestione dei processi Processi Concetti di base Esecuzione parallela e sequenziale Il concetto di processo Gestione dei processi Esecuzione sequenziale I sistemi di calcolo più semplici consentono unicamente l'esecuzione sequenziale

Dettagli

Linuxthreads: esercizio

Linuxthreads: esercizio Linuxthreads: esercizio Esercizio Una società di noleggio di automobili offre ai propri clienti tre tipi di automobili: piccole, medie, grandi. Ogni tipo di auto è disponibile in numero limitato (Npiccole,

Dettagli

Controllo dei Processi 1

Controllo dei Processi 1 Controllo dei Processi 1 I processi Nei sistemi Unix/Linux ogni processo ne può generare altri. Il processo che li genera è detto processo padre (parent process), mentre i processi generati sono detti

Dettagli

La torta caprese. Ingredienti. Istruzioni: 5 uova 8 cucchiai di zucchero 1/8kg di burro ¼kg di mandorle dolci 100gr di cioccolato fondente

La torta caprese. Ingredienti. Istruzioni: 5 uova 8 cucchiai di zucchero 1/8kg di burro ¼kg di mandorle dolci 100gr di cioccolato fondente I Thread Introduzione Parallelismo e concorrenza Thread a livello utente e nucleo I modelli multithread Aspetti sui thread Pthreads Solaris2 Threads Windows 2000 Threads Linux Threads Java Threads La torta

Dettagli

e/fiscali - Rel. 04.01.04

e/fiscali - Rel. 04.01.04 e/fiscali - Rel. 04.01.04 Rimini, 09 dicembre 2013 e/fiscali - Fix 04.01.04 Dcumentazine di rilasci 24 ORE Sftware S.p.A. 12/12/2013 Pag. 1 di 15 INDICE 1 FIX 04.01.04 DI E/FISCALI... 3 2 NOTE DI INSTALLAZIONE...

Dettagli

Signalling (IPC) Signalling (segnalazione)

Signalling (IPC) Signalling (segnalazione) Signalling (IPC) Signalling (segnalazione) è un particolare tipo di Inter-Process Communications che permettere di sincronizzare dei processi spedendo e ricevendo dei messaggi minimali che informano dell'accadimento

Dettagli

Monitor pthreads. Esercizio

Monitor pthreads. Esercizio Monitor pthreads Esercizio Esercizio monitor Una società di noleggio di automobili offre ai propri clienti tre tipi di automobili: piccole, medie, grandi. Ogni tipo di auto è disponibile in numero limitato

Dettagli

SmallShell Piccolo processore comandi

SmallShell Piccolo processore comandi SmallShell Piccolo processore comandi /* file smallsh.h */ #include #include #define EOL 1 #define ARG 2 #define AMPERSAND 3 #define SEMICOLON 4 #define RIDIRIN 5 #define RIDIROUT 6

Dettagli

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin

Dettagli

e/fiscali - Rel. 04.01.03

e/fiscali - Rel. 04.01.03 e/fiscali - Rel. 04.01.03 Mntebelluna, 07 nvembre 2013 e/fiscali - Fix 04.01.03 Dcumentazine di rilasci 24 ORE Sftware S.p.A. 07/11/2013 Pag. 1 di 13 INDICE 1 FIX 04.01.03 DI E/FISCALI... 3 2 NOTE DI INSTALLAZIONE...

Dettagli

La gestione informatizzata del farmaco

La gestione informatizzata del farmaco Azienda Ospedaliera di Verna Dipartiment di Medicina Clinica e Sperimentale Medicina Interna B - Reumatlgia La gestine infrmatizzata del farmac Crdinatre Stefania Discnzi Reggi Emilia 11-12 XII 2008 CRITICITA

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

L ambiente di un processo (I)

L ambiente di un processo (I) L ambiente di un processo (I) L ambiente di un processo è un insieme di stringhe (terminate da \0). Un ambiente è rappresentato da un vettore di puntatori a caratteri terminato da un puntatore nullo. Ogni

Dettagli

Introduzione a Linux

Introduzione a Linux Intrduzine a Linux Lezine 2 Prvare Linux Angel Genvese Crs di Sistemi Operativi Prf. V. Piuri Università degli Studi di Milan Dipartiment di Infrmatica A.A. 2015/2016 2015 Angel Genvese Panramica della

Dettagli

Informazioni generali

Informazioni generali Presentazine del crs Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2014-2015 Simne Bassis bassis@di.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 2014-2015 Università di Milan

Dettagli

istruzioni eseguite in ordine predeterminabile in base al codice del programma e dei valori dei dati in ingresso

istruzioni eseguite in ordine predeterminabile in base al codice del programma e dei valori dei dati in ingresso Programmazione Concorrente sequenze critiche e mutua esclusione istruzioni atomiche deadlock sincronizzazione e semafori settembre 2009 programmazione concorrente 1 modello di esecuzione sequenziale istruzioni

Dettagli

ATLAS Sincro : NON VEDO LA SESSIONE e/o NON ACCEDO CON LE CREDENZIALI

ATLAS Sincro : NON VEDO LA SESSIONE e/o NON ACCEDO CON LE CREDENZIALI ATLAS 1.5.5 Sincr : NON VEDO LA SESSIONE e/ NON ACCEDO CON LE CREDENZIALI ATLAS Sincr 1.5.5 : Nn ved la sessine e/ nn acced cn le credenziali di esaminatre Dp la sincrnizzazine nn ved la sessine in Pstazine

Dettagli

Cosa vedremo. Lezione 4. Dati. Tipo di dato. Tipo di dato. I Dati: Gli oggetti che conosce il computer

Cosa vedremo. Lezione 4. Dati. Tipo di dato. Tipo di dato. I Dati: Gli oggetti che conosce il computer Csa vedrem Lezine 4 Dati ed istruzini di base I Dati: Gli ggetti che cnsce il cmputer Le istruzini: Le azini che cnsce il cmputer Dati ggetti cn cui si lavra Il cmputer cnsce sl alcuni tipi di dat ritmetici

Dettagli

SISTEMI OPERATIVI. I thread. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. I thread. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) I thread Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Generalità: il concetto di

Dettagli

PERCORSO FORMATIVO PER PERSONALE INFORMATICO. CORSO ABAP e TOOLS

PERCORSO FORMATIVO PER PERSONALE INFORMATICO. CORSO ABAP e TOOLS PERCORSO FORMATIVO PER PERSONALE INFORMATICO CORSO ABAP e TOOLS Lez. 0: Intrduzine ad ABAP/4 Prgramma Reprt; Prgramma Interattiv; Smartfrms; Tl Sap Query. Lez. 1: Navigazine e visualizzazine tabelle Database

Dettagli

Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC) - - 2 Parte -

Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC) - - 2 Parte - Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012 - Comunicazione Tra Processi (IPC) - - 2 Parte - 1 Sommario Comunicazione tra processi su macchine diverse in rete: Socket TCP o Socket Stream

Dettagli

Programmazione (imperativa)

Programmazione (imperativa) Programmazione (imperativa) Corso di Laurea in Informatica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 12.00-13.00 e 14.00-16.00 Mercoledì 14.00-17.00 Laboratorio: Giovedì 12.00-13.00

Dettagli

URL e URLConnection. Corso di laurea in Comunicazione Digitale Laboratorio di sistemi e reti A.A Simone Bassis

URL e URLConnection. Corso di laurea in Comunicazione Digitale Laboratorio di sistemi e reti A.A Simone Bassis URL e URLCnnectin Crs di laurea in Cmunicazine Digitale Labratri di sistemi e reti A.A. 2010-2011 Simne Bassis bassis@dsi.unimi.it Labratri di sistemi e reti (Cmunicazine Digitale) - A.A. 2010-2011 Università

Dettagli