" &$ () " ) ) $ ' () *) " ) $

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "" &$ () " ) ) $ ' () *) " ) $"

Transcript

1 %&! "# $ #include <stdio.h> int main(int argc, char *argv[]) { int i; for (i = 0; i < argc; i++) printf("argv[%d]: %s\n", i, argv[i] ); 1 2 " &$ cc cc program.c a.out pippo pluto topolino argv[0]: a.out argv[1]: pippo argv[2]: pluto argv[3]: topolino argv argv[0] argv[1] argv[2] argv[3] NULL a.out pippo pluto topolino () " ) ) $ () *) " ) $ 3 4 1

2 + ( +) ) # +,-). ps PID TTY TIME CMD pts/0 00:00:00 bash pts/0 00:00:00 ps / )0 / ) 0 / ) & / ) & 5 6 3) 3) pid_t fork(void); -) )1 ) ) 2 +) ) & +& +2 ) ",1$, 2 & +). / - ++, / () () ) )! ; )! <= > ;98 > <=8 :;98 :<=8 :<=8 :"$ :4 :"$ & &

3 ++ +? ") $ int main () { int pid; if( (pid=fork( ))==0) /* sono il figlio */ printf("ciao, sono il figlio\n"); else /* sono il padre */ cc cc o o eseg program.c eseg Ciao sono il il padre Ciao sono il il figlio printf("ciao, sono il padre\n"); pid_t getpid(void); pid_t getppid(void); identificativo di di identificativo del )+) +& int main ( ) { pid_t pid; if( (pid=fork( )) ==0) /* sono il figlio */ printf( F: miopid = %d, pidpadre = %d \n, getpid( ), getppid( ) ); else /* sono il padre */ printf( P: miopid = %d, pidfiglio = %d \n, getpid( ), pid );

4 ") $ cc cc o o eseg program.c eseg F: F: miopid = 428,, pidpadre = 426 P: P: miopid = 426,, pidfiglio = 428. int main ( ) { pid_t pid; int i; for ( i=0 ; i<3 ; i++) { pid=fork( ); printf( processo %d terminato\n, getpid() )? ) + A B BC D & & A B BC 69E= 69=4 69EF 69E7 69E< 69EE 69E; 69E8 A B BC F E = ; 7 ;GGG 6 GGG

5 3) # ) I + )! void exit(int status); +) ) 2 + H). 9& +), 6& )& +, + H) 9& + ),1 &!& int main ( ) { pid_t pid; if( (pid=fork( )) ==0) { /* sono il figlio */ sleep(1); printf( F: miopid = %d, pidpadre = %d \n, getpid( ), getppid( ) ); else { /* sono il padre */ cc cc o o eseg program.c eseg P: P: miopid = 723,, pidfiglio = 724 F: F: miopid = 724,, pidpadre = 1 printf( P: miopid = %d, pidfiglio = %d \n, getpid( ), pid );

6 3) J 2 ) + +) # include <sys/wait.h> pid_t wait(int *statloc) 3) J +) + K. / + ),) / ) - K ) ) ) & + / / +" ) #$ / ) () +) () ( a.out pippo pluto topolino shell / ) ") $,( +) H) () int main(int argc, char *argv) { / ) ) / +) exit(33) echo $? 33 programma

7 + M*NJ &O!) L 3 ")$ L 3 5 ")$ L 3 ")$ )) +2 +! " # include <sys/wait.h> int main(void) { pid_t pid; int status, a, b, c; if ( (pid = fork()) == 0) { /* figlio */ printf( dammi a e b --> ); scanf( %d %d, &a, &b); c = a+b; else{ /* padre */ wait(&status) ; /* aspetta il figlio */ if ( WIFEXITED(status)) printf( ritorno dal figlio = %d \n, WEXITSTATUS(status)); else printf( figlio non terminato correttamente\n ); ) # cc cc o o eseg program.c eseg dammi a e b -->8 9 ritorno dal figlio = 0 execl int int execl (( const char *path, const char *arg0,......,, NULL ); ); )

8 " $ int main (int argc, char *argv[ ]) { int pid; printf( hello! Il mio pid = %d, getpid() ); printf( argomenti = %s %s \n, argv[1], argv[2]); Programma hello int main () { int pid; if( (pid=fork( ))==0) /* sono il figlio */ printf("ciao, sono il figlio, pid = %d \n, getpid()); execl( /home/lapegna/hello, hello, pippo, pluto, NULL); else /* sono il padre */ printf("ciao, sono il padre\n"); ") $ "$ / "944F&9$ a.out Ciao sono il il figlio, pid = Ciao sono il il padre hello, il il mio pid = argomenti = pippo pluto / + / + /!,1 1 ) / +!! +++ ",,% $ / + ) ( /! )!)

9 ) #include <pthread.h> int int pthread_create( pthread_t *tid, *tid, const constpthread_attr_t *attr, *attr, void void *(*func)(void*), void void *arg *arg); ); + ) #include <pthread.h> int int pthread_join( pthread_t tid, tid, void ** ** status ); ); #.) ( + +).!) "(, 1,% $& ).+) $# P ).) $# P #. + ) +.) & +) )! Processi Threads Realizzare un programma con 2 threads tale che creazione attesa +) fork wait pthread_create pthread_join Q"Q Q$0 Q#" P)Q $0 Q Q+"$0 thread scrivi incrementa una variabile condivisa shareddata da 1 a 5, aspettando 1 secondo tra un incremento e l altro thread leggi legge e stampa il contenuto di shareddata solo quando il thread scrivi ha modificato la variabile condivisa Far terminare il thread leggi quando termina il thread scrivi

10 R ). #include<pthread.h> #include<stdio.h> #include<stdlib.h> int shareddata =0, finethread=0; // dati condivisi void *scrivi(void *), *leggi(void *); void *scrivi (void *arg){ int i; printf(" partito thread scrivi\n"); for (i=0; i<5 ; i++){ int main( ){ //fine main pthread_t tid_scrivi, tid_leggi; pthread_create(&tid_scrivi, NULL, scrivi, NULL); pthread_create(&tid_leggi, NULL, leggi, NULL); pthread_join(tid_scrivi, NULL); pthread_join(tid_leggi, NULL); finethread = 1; sleep(1); shareddata = shareddata; printf( thread leggi: shareddata = %d \n",shareddata); ") $ void *leggi (void *arg){ int oldshareddata=0; while (finethread==0){ while( shareddata == oldshareddata); printf( thread leggi: shareddata = %d \n",shareddata); oldshareddata = shareddata; a.out.:9.:9.:6.:6.:f.:f.:7.:7.:8.:8 N.B. compilare il tutto linkando la libreria libpthread.a

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

System Call EXEC EXEC P P. fork exec(new_prog) fork. sono_il_padre = fork(); if (!sono_il_padre) {

System Call EXEC EXEC P P. fork exec(new_prog) fork. sono_il_padre = fork(); if (!sono_il_padre) { System Call EXEC EXEC L effetto delle system call della famiglia exec consiste nel mandare in esecuzione: (1) un programma contenuto in un file eseguibile oppure un (2) interprete di programmi P fork P

Dettagli

Addendum alle chiamate di sistema per la gestione processi. E Mumolo

Addendum alle chiamate di sistema per la gestione processi. E Mumolo Addendum alle chiamate di sistema per la gestione processi E Mumolo Definiamo un processo proc.c che scrive l'argomento passato in linea: void main(int argc, char *argv[]){ printf("sono il processo %s\n",

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 4

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 4 UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica e delle Telecomunicazioni a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 4 1 Funzioni per il

Dettagli

In generale può essere utile che i due processi eseguano del codice diverso

In generale può essere utile che i due processi eseguano del codice diverso System call FORK P fork() ha l aspetto di una funzione C, in realtà è una system call, una chiamata al sistema operativo fork() P P Il processo P' è una copia di P esegue lo stesso codice e possiede una

Dettagli

SISTEMI&OPERATIVI& AA&2013&0&2014& Processi( in(linux( Giorgio&Giacinto&2013& Sistemi&Opera?vi&

SISTEMI&OPERATIVI& AA&2013&0&2014& Processi( in(linux( Giorgio&Giacinto&2013& Sistemi&Opera?vi& SISTEMI&OPERATIVI& AA&2013&0&2014& Processi( in(linux( ( 2& Creazione(di(processi( concorren2(» La&creazione&di&un&processo&figlio&consente&di& far&eseguire&alcune&funzionalità&del&programma& in&modo&concorrente&»

Dettagli

La creazione di un nuovo processo in UNIX

La creazione di un nuovo processo in UNIX La creazione di un nuovo processo in UNIX #include int fork(void); Viene creato un nuovo processo (figlio) identico (stesso codice, area dati copiata) al processo (padre) che ha invocato la

Dettagli

System call per la gestione di processi

System call per la gestione di processi System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:

Dettagli

Il processo figlio : utilizza lo stesso codice che sta eseguendo il padre ;

Il processo figlio : utilizza lo stesso codice che sta eseguendo il padre ; La creazione di un nuovo processo in UNIX int fork(void); Viene creato un nuovo processo (figlio) identico (stesso codice, area dati copiata) al processo (padre) che ha invocato la fork Solo il valore

Dettagli

System call per la gestione di processi

System call per la gestione di processi System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:

Dettagli

Controllo dei Processi. M. R. Guarracino - Primitive di Controllo dei Processi

Controllo dei Processi. M. R. Guarracino - Primitive di Controllo dei Processi Controllo dei Processi Introduzione Come possiamo creare nuovi processi? Come possiamo eseguire un programma? Come possiamo terminare un processo? Introduzione Unix fornisce le primitive per la creazione

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. 2017-18 Pietro Frasca Lezione 6 Martedì 24-10-2017 1 Sostituzione del codice Tipicamente, dopo una

Dettagli

Gestione dei processi

Gestione dei processi Gestione dei processi Dormire unsigned int sleep(unsigned int); Attende un numero specificato di secondi a meno che non si verifichi un segnale Restituisce 0 se l'attesa è terminata senza interruzioni,

Dettagli

I Processi nel SO UNIX

I Processi nel SO UNIX I Processi nel SO UNIX 1 Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3 Marzo-Giugno 2008 matricole congrue 0 mod 3 Funzioni wait e waitpid quando un processo termina il kernel manda al padre il segnale SIGCHLD Controllo dei processi (2) il padre può ignorare il segnale (default)

Dettagli

I Processi nel SO UNIX

I Processi nel SO UNIX I Processi nel SO UNIX 1 Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

Pag. 1. modello di esecuzione parallela

Pag. 1. modello di esecuzione parallela Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel calcolatore. Costituisce la parte essenziale del cosiddetto software di sistema (o di base) in quanto

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

Programmazione multiprocesso

Programmazione multiprocesso DTI / ISIN / Titolo principale della presentazione 1 Programmazione multiprocesso Amos Brocco, Ricercatore, DTI / ISIN 20 febbraio 2012 2 Processi Cos'è un processo? Un programma in esecuzione Spazio di

Dettagli

Riepilogo sulla Concorrenza

Riepilogo sulla Concorrenza Riepilogo sulla Concorrenza Passi per la costruzione di un programma concorrente Prima di tutto, definire se la concorrenza avviene mediante Processi concorrenti o Thread concorrenti Definizione delle

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

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

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO DI SISTEMI OPERATIVI LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Processi in Unix/Linux caratteristiche

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi primavera 2009 Controllo dei processi (2) Funzioni wait e waitpid quando un processo termina il kernel manda al padre il segnale SIGCHLD il padre può ignorare il segnale (default) oppure lanciare una funzione

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. 2018-2019 Pietro Frasca Lezione 5 Martedì 16-10-2018 Operazioni sui processi Nella maggior parte dei

Dettagli

I Processi nel SO UNIX

I Processi nel SO UNIX I Processi nel SO UNIX Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix. I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo

Dettagli

I Processi nel Sistema Operativo Unix

I Processi nel Sistema Operativo Unix I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo

Dettagli

SISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi

SISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi SISTEMI OPERATIVI Processi in Linux 2 Creazione di processi concorrenti» La creazione di un processo figlio consente di far eseguire alcune funzionalità del programma in modo concorrente» Opzione 1 il

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

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 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

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

Principles of Concurrent Programming

Principles of Concurrent Programming Principles of Concurrent Programming Alessio Vecchio alessio.vecchio@unipi.it Dip. di Ingegneria dell Informazione Università di Pisa Tratte da Principi e tecniche di progammazione concorrente, cap. 2

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

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica. SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica. SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto fork() & exec() Roberto Perdisci A.A. 2004/2005 1 Dettagli

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

1. PARALLELISMO E PROCESSI. 1.1 La necessità del parallelismo

1. PARALLELISMO E PROCESSI. 1.1 La necessità del parallelismo 1. PARALLELISMO E PROCESSI 1.1 La necessità del parallelismo Un programma eseguibile, generato ad esempio da un programma C, è rigorosamente sequenziale, nel senso che viene eseguito una istruzione alla

Dettagli

Programmazione di sistema in Linux: System Call per il controllo processi. E. Mumolo, DIA

Programmazione di sistema in Linux: System Call per il controllo processi. E. Mumolo, DIA Programmazione di sistema in Linux: System Call per il controllo processi E. Mumolo, DIA Struttura generica di Linux Chiamate delle System call (Trap) interfaccia Utente Shell comandi di linea Compilatori

Dettagli

Processi in Linux. Stru/ura file eseguibili

Processi in Linux. Stru/ura file eseguibili SISTEMI OPERATIVI Processi in Linux Stru/ura file eseguibili» ELF - Executable and Linking Format formato di default degli eseguibili in Linux definizione nel file include » StruGura un header contenente

Dettagli

Esercitazione n. 8. Processi

Esercitazione n. 8. Processi Esercitazione n. 8 Processi (in ambiente GNU/Linux) dott. Carlo Todeschini tode@cremona.polimi.it Politecnico di Milano A.A. 2010/2011 Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non

Dettagli

Esercizio sulla gestione di processi in Unix!

Esercizio sulla gestione di processi in Unix! ! Esercizio sulla gestione di processi in Unix! 1 Esercizio Si vuole realizzare un programma C che abbia la seguente interfaccia:./launch_commands Il programma deve richiedere all utente: un numero N (pari

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -

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

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Gestione dei processi in POSIX E.Mumolo, DEEI mumolo@units.it Process id ed altri identificatori pid_t getpid(); // Process id del processo chiamante pid_t getppid(); // Process

Dettagli

Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi

Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI Fabio Buttussi La programmazione di sistema Il kernel è la parte di Unix che corrisponde al sistema operativo

Dettagli

Thread. Contiene lucidi tratti da: Marco Faella, Clemente Galdi, Giovanni Schmid (Università di Napoli Federico II),

Thread. Contiene lucidi tratti da: Marco Faella, Clemente Galdi, Giovanni Schmid (Università di Napoli Federico II), Thread Contiene lucidi tratti da: 2006-2007 Marco Faella, Clemente Galdi, Giovanni Schmid (Università di Napoli Federico II), 2005-2007 Thread processi leggeri un processo può avere diversi thread i thread

Dettagli

Programmazione di sistema e gestione dei processi in C

Programmazione di sistema e gestione dei processi in C Programmazione di sistema e gestione dei processi in C Indice Dalla macchina astratta sequenziale C Alla macchina parallela Processi e programmi Le primitive per la gestione dei processi Creazione, sospensione,

Dettagli

SC che operano su processi. Fork, exec, etc...

SC che operano su processi. Fork, exec, etc... SC che operano su processi Fork, exec, etc... 1 Process identifier: getpid, getppid pid indice del processo all interno della tabella dei processi ppid indice del processo padre all interno della tabella

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

Processi. Introduzione ai processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Processi. Introduzione ai processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Processi Introduzione ai processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Algoritmo Algoritmi, programmi e processi Procedimento logico che, in un numero finito di

Dettagli

Sistemi Operativi (M. Cesati)

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

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

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3 Marzo-Giugno 2008 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

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

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. 2017-18 Pietro Frasca Lezione 10 Martedì 7-11-2017 Thread a livello kernel Modello da uno a uno La

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO DI SISTEMI OPERATIVI LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Thread POSIX nel sistema Linux (parte

Dettagli

SC che operano su processi. Fork, exec, etc...

SC che operano su processi. Fork, exec, etc... SC che operano su processi Fork, exec, etc... 1 Process identifier: getpid, getppid pid indice del processo all interno della tabella dei processi ppid indice del processo padre all interno della tabella

Dettagli

Thread: sincronizzazione Esercitazioni del 16 Ottobre 2009

Thread: sincronizzazione Esercitazioni del 16 Ottobre 2009 Thread: sincronizzazione Esercitazioni del 16 Ottobre 2009 Luca Fossati, Fabrizio Castro, Vittorio Zaccaria 19 ottobre 2009 Sequenze di esecuzione - 2 Sequenze di esecuzione - 2 Esercizio 1 Sequenze di

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

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

Processi in Unix. Capitolo 8 -- Stevens

Processi in Unix. Capitolo 8 -- Stevens Processi in Unix Capitolo 8 -- Stevens Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro Identificatori di processi Ogni processo ha un identificatore

Dettagli

Sistemi Operativi (M. Cesati)

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

Dettagli

Sistemi Operativi T. Esercizi

Sistemi Operativi T. Esercizi Sistemi Operativi T Esercizi Esercizio monitor Si consideri la toilette di un ristorante. La toilette è unica per uomini e donne. Utilizzando la libreria pthread, si realizzi un'applicazione concorrente

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

La Programmazione di Rete e di Sistema (iii) La programmazione di sistema. Il sistema operativo. La programmazione di sistema

La Programmazione di Rete e di Sistema (iii) La programmazione di sistema. Il sistema operativo. La programmazione di sistema La Programmazione di Rete e di Sistema (iii) Giuseppe Pozzi Impianti di Elaborazione (allievi Gestionali Como) Facoltà di Ingegneria dell Informazione Politecnico di Milano giuseppe.pozzi@polimi.it - versione

Dettagli

CREAZIONE PROCESSI IN UNIX 20

CREAZIONE PROCESSI IN UNIX 20 CREAZIONE PROCESSI IN UNIX 20 STRUTTURE DATI PER PROCESSI Un processo puo' essere in escuzione in 2 modi: kernel e utente. Un processo ha almeno 3 regioni: codice, dati e stack Lo stack è allocato dinamicamente.

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

Esercizio 1 - nucleo e commutazione tra processi

Esercizio 1 - nucleo e commutazione tra processi Esercizio 1 - nucleo e commutazione tra processi / programma CODICE.c / int main ( ) {... fd = open( /acso/file_prova, ORDWR) pid = fork ( ); if (pid == 0) {/ codice eseguito da F1 / execl ( /acso/prog_x,

Dettagli

SC che operano su processi. Fork, exec, etc...

SC che operano su processi. Fork, exec, etc... SC che operano su processi Fork, exec, etc... 1 Process identifier: getpid, getppid pid indice del processo all interno della tabella dei processi ppid indice del processo padre all interno della tabella

Dettagli

Sistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi

Sistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi Sistemi Operativi Esercitazione 2 Compilazione, Makefile e Processi Percorso Compilazione programmi in c Makefiles Processi definizione gestione creazione Compilazione di programmi in C Compilazione e

Dettagli

Qualche esercizio. E. Mumolo

Qualche esercizio. E. Mumolo Qualche esercizio E. Mumolo Chiamate di sistema per la gestione processi in Linux fork, wait, waitpid, exec implementazione di grafi delle precedenze Chiamate di sistema per la gestione dei Segnali in

Dettagli

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A ) - 19 MARZO 2003

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A ) - 19 MARZO 2003 SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A. 02-03) - 19 MARZO 2003 Si realizzi un programma concorrente per UNIX che deve avere una parte in Bourne Shell e una parte in C. La parte in Shell

Dettagli

Lezione 22: Input/Output e Files

Lezione 22: Input/Output e Files Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard

Dettagli

Corso di Laboratorio di Sistemi Operativi A.A

Corso di Laboratorio di Sistemi Operativi A.A Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 13 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche

Dettagli

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A ) 31 MARZO 2006

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A ) 31 MARZO 2006 SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A. 05-06) 31 MARZO 2006 Esercizio Si realizzi un programma concorrente per UNIX che deve avere una parte in Bourne Shell e una parte in C. La parte

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

Il sistema operativo LINUX Indice

Il sistema operativo LINUX Indice Il sistema operativo LINUX Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Processo Un processo è un programma in esecuzione:

Dettagli

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

Lezione 4. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 4 Sistemi operativi 4 aprile 2017 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 17 4.1 Di cosa parliamo in questa lezione? Relazione tra processi e thread, e relative

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2015/16. Dip. di Informatica Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. a.a. 2015/16. Dip. di Informatica Università degli Studi di Milano, Italia 1 Mattia Monga Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2015/16 1 cba 2008 16 M. Monga. Creative Commons Attribuzione Condividi allo stesso modo 4.0 Internazionale.

Dettagli

Sistemi Operativi. Bruschi Monga Re. Shell Esercizi Shell programming Esercizi I/O. Sistemi Operativi. Bruschi Monga Re

Sistemi Operativi. Bruschi Monga Re. Shell Esercizi Shell programming Esercizi I/O. Sistemi Operativi. Bruschi Monga Re 1 Mattia Monga Lezione XI: Processi, shell, file Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 201/16 1 cba 2008 16 M. Monga. Creative Commons Attribuzione Condividi

Dettagli

Il comando make. Per produrre un eseguibile da un programma C sono necessari tre passi compiuti dai seguenti moduli:

Il comando make. Per produrre un eseguibile da un programma C sono necessari tre passi compiuti dai seguenti moduli: Il comando make Sviluppando programmi complessi, si è spesso portati a suddividere il codice sorgente in diversi file. La fase di compilazione quindi richiede maggior tempo, anche se le modifiche apportate

Dettagli

Introduzione alla programmazione multiprocesso e multithread in ambiente Unix attraverso algoritmi in C

Introduzione alla programmazione multiprocesso e multithread in ambiente Unix attraverso algoritmi in C Introduzione alla programmazione multiprocesso e multithread in ambiente Unix attraverso algoritmi in C Pre requisiti per questo tutorial: Basi del linguaggio C Familiarità con i sistemi Unix Obiettivi

Dettagli

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 6 Programmazione concorrente Thread Join

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 6 Programmazione concorrente Thread Join Sistemi operativi ì Corso di Laurea Triennale in Ingegneria Informatica Lezione 6 Programmazione concorrente Thread Join Domande sulle lezioni passate? Soluzioni degli esercizi È importante osservare l'utilizzo

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

Esercitazione [1] Processi e Thread

Esercitazione [1] Processi e Thread Esercitazione [1] Processi e Thread Leonardo Aniello - aniello@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo Corso di Laurea in Ingegneria Informatica

Dettagli

Seconda Esercitazione. Gestione di processi in Unix Primitive Fork, Wait, Exec

Seconda Esercitazione. Gestione di processi in Unix Primitive Fork, Wait, Exec Seconda Esercitazione Gestione di processi in Unix Primitive Fork, Wait, Exec System call fondamentali fork exit wait exec Generazione di un processo figlio, che condivide il codice con il padre e possiede

Dettagli

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A ) 30 MARZO 2007

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A ) 30 MARZO 2007 IMPORTANTE: SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A. 06-07) 30 MARZO 2007 1) Fare il login sui sistemi in modalità Linux usando il proprio username e password. 2) I le prodotti devono

Dettagli

Thread Standard IEEE POSIX c

Thread Standard IEEE POSIX c Thread Standard IEEE POSIX 1003.1c Prof.ssa Sara Michelangeli Con il termine multithraeding si indica un sistema che consente la attivazione di più flussi di esecuzione all'interno dei processi cosiddetti

Dettagli

Obiettivi: Esercitazione n.1! 26 Ottobre Introduzione alla programmazione multithreaded Gestione dei thread mediante libreria pthreads:

Obiettivi: Esercitazione n.1! 26 Ottobre Introduzione alla programmazione multithreaded Gestione dei thread mediante libreria pthreads: Esercitazione n.1! 26 Ottobre 2016 Obiettivi: Introduzione alla programmazione multithreaded Gestione dei thread mediante libreria pthreads: creazione: pthread_create terminazione: pthread_exit join: pthread_join

Dettagli

Seminario: Thread POSIX Insegnamento di Sistemi di Elaborazione Corso di L.S. In Ing. Elettronica

Seminario: Thread POSIX Insegnamento di Sistemi di Elaborazione Corso di L.S. In Ing. Elettronica Seminario: Thread POSIX Insegnamento di Sistemi di Elaborazione Corso di L.S. In Ing. Elettronica Ing. Francesco Restuccia E-mail: f.restuccia@studenti.unipi.it Pervasive Computing & Networking Lab (PerLab)

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2018/19. Dip. di Informatica Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. a.a. 2018/19. Dip. di Informatica Università degli Studi di Milano, Italia 1 Mattia Monga Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2018/19 1 cba 2008 18 M. Monga. Creative Commons Attribuzione Condividi allo stesso modo 4.0 Internazionale.

Dettagli

Dichiarazioni e tipi predefiniti nel linguaggio C

Dichiarazioni e tipi predefiniti nel linguaggio C Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:

Dettagli

Programmazione di Sistema 3

Programmazione di Sistema 3 Programmazione di Sistema 3 Gestione dei Processi Paolo Baldan Università Ca Foscari Venezia Corso di Laurea in Informatica Parte di questo materiale è rielaborato dalle slide del Corso di Laboratorio

Dettagli

POSIX Systems Programming. geek evening 0x0d. ambienti POSIX. By lord_dex ZEI e Salug! presentano:

POSIX Systems Programming. geek evening 0x0d. ambienti POSIX. By lord_dex ZEI e Salug! presentano: POSIX Systems Programming Syscall e fondamenti della ambienti POSIX programmazione in By lord_dex f.apollonio@salug.it ZEI e Salug! presentano: geek evening 0x0d INDICE Processi e Thread Creazione ed utilizzo

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 22 Giovedì 12-01-2017 1 Un esempio di sincronizzazione tra thread Risolviamo

Dettagli

Gestione dei processi

Gestione dei processi Capitolo 1 Gestione dei processi 1.1 Creazione di un processo I principali eventi che possono dare luogo ad un nuovo processo sono: inizializzazione del sistema; esecuzione di una primitiva di sistema

Dettagli