Mutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Mutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12"

Transcript

1 Mutua esclusione Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni

2 Accesso concorrente alle risorse Consideriamo un sistema in cui N processi vogliono accedere concorrentemente ad una risorsa condivisa. Ogni processo è indipendente dagli altri. I processi non si guastano. Uno scheduler sceglie di volta in volta a quale processo consentire l esecuzione della prossima istruzione. La sequenza decisa dallo scheduler, comprendente tutte le istruzioni dei diversi processi, è chiamata schedule. Solo un processo alla volta deve poter accedere alla risorsa condivisa (accesso in mutua esclusione). 2

3 Accesso concorrente alle risorse Ogni processo esegue un algoritmo. I processi comunicano leggendo e scrivendo variabili condivise. La lettura e scrittura di una variabile è un azione atomica (non interrompibile). Non c è alcuna assunzione sul tempo richiesto per l esecuzione di una operazione. 3

4 Accesso concorrente alle risorse L algoritmo è costituito da tre parti distinte: Una sottosequenza di istruzioni chiamata sezione critica. L esecuzione della sezione critica consiste nell accesso alla risorsa condivisa. Una sottosequenza di istruzioni che precedono la sezione critica, questa sequenza è chiamata trying protocol. Una sottosequenza di istruzioni che seguono la sezione critica, questa sequenza è chiamata exit protocol. 4

5 La mutua esclusione Dijkstra nel 1965 ha formalizzato il problema attraverso le seguenti proprietà: ME - Mutua esclusione: due processi non possono essere nelle loro sezioni critiche contemporaneamente. ND - No deadlock: se un processo rimane bloccato nel trying protocol, ci sono uno o più processi che riescono ad accedere alla sezione critica. NS - No starvation: (opzionale) nessun processo può rimanere bloccato nel trying protocol per sempre. Nota: NS implica ND. NS oltre implicare una proprietà di liveness specifica un comportamento paritetico dei vari processi (fairness). 5

6 Algoritmo di Dijkstra Variabili condivise: b[1,,n] : array di valori booleani inizialmente tutti posti a true c[1,,n] : array di valori booleani inizialmente tutti posti a true k : valore intero in 1,,N Variabili locali: j : valore intero 6

7 Algoritmo di Dijkstra Ogni processo Pi esegue il seguente algoritmo: Li0: b[i] = false Li1: if (k i) then Li2: c[i] = true if (b[k] = true) then k = i goto Li1 else Li4: c[i] = false forall j [1,,N] do if (j i c[j] = false) then goto Li1 CRITICAL SECTION c[i] = true b[i] = true (... other instructions...) goto Li0: 7

8 Algoritmo di Dijkstra Ogni processo Pi esegue il seguente algoritmo: Li0: b[i] = false Li1: if (k i) then Li2: c[i] = true if (b[k] = true) then k = i goto Li1 else Li4: c[i] = false forall j [1,,N] do if (j i c[j] = false) then goto Li1 CRITICAL SECTION c[i] = true b[i] = true (... other instructions...) goto Li0: Ciclo della sentinella Trying protocol Exit protocol 7

9 Algoritmo di Dijkstra Vediamo un possibile schedule S1 (3 processi) b[1] = false if (k 1) then c[1] = true if (b[4] = true) then P1 P2 P3 b[2] = false if (k 2) then c[2] = true b[3] = false if (k 3) then c[3] = true k = 1 goto Li1 if (k 1) then if (b[4] = true) then k = 2 goto Li1 if (k 2) then if (b[4] = true) then k = 3 goto Li1 if (k 3) then 8

10 Algoritmo di Dijkstra Cosa è successo? Alla fine di questa parte di schedule la situazione è la seguente: La prossima istruzione da eseguire per tutti i processi è l istruzione Li4 Il valore di k=3 A questo punto la seconda parte della trying section deve assicurare che solo uno tra P1, P2 e P3 entri in sezione critica. Sembra che P3 abbia la precedenza (perché k=3), ma in realtà l ordine di entrata lo decide lo scheduler! 9

11 Algoritmo di Dijkstra (prosecuzione schedule S1) P1 P2 P3 c[1] = false forall j [1,,N] do if (j 1 c[j] = false) then goto Li1 CRITICAL SECTION c[1] = true, b[1] = true c[2] = false forall j [1,,N] do if (j 2 c[j] = false) then goto Li1 CRITICAL SECTION c[2] = true, b[2] = true c[3] = false forall j [1,,N] do if (j 3 c[j] = false) then goto Li1 CRITICAL SECTION c[3] = true, b[3] = true 10

12 Algoritmo di Dijkstra Vediamo un possibile schedule S2 (3 processi) c[1] = false P1 P2 P3 forall j [1,,N] do if (j 1 c[j] = false) then goto Li1 if (k 1) then c[1] = true c[2] = false forall j [1,,N] do if (j 2 c[j] = false) then goto Li1 if (k 2) then c[2] = true c[3] = false forall j [1,,N] do if (j 3 c[j] = false) then goto Li1 if (k 3) then... else c[3] = false... 11

13 Algoritmo di Dijkstra Cosa è successo? A questo punto k=3: P1 e P2 rimangono bloccati su Li1 P3 salta alla riga Li4, pone c[3]=false ed entra in sezione critica. Quando P3 esce dalla sezione critica pone c[3] e b[3] a true sbloccando P1 e P2 12

14 Algoritmo di Dijkstra Proviamo la proprietà ME. Si supponga che esista uno schedule S1 tale che due processi Pi e Pj siano concorrentemente in CS: allora Pi ha eseguito con successo Li4, ossia c[j]=true. implica che Pi ha eseguito la terza linea di Li4 prima che Pj eseguisse la prima linea di Li4. quindi è anche vero che Pi ha eseguito la prima linea di Li4 prima che Pj eseguisse la prima linea di Li4. Se ora ripetiamo lo stesso ragionamento invertendo Pi e Pj: quindi è anche vero che Pj ha eseguito la prima linea di Li4 prima che Pi eseguisse la prima linea di Li4 CONTRADDIZIONE! E la struttura dati c[] che garantisce la ME. 13

15 Algoritmo di Dijkstra Proviamo la proprietà ND. Si supponga che un gruppo D di processi siano bloccati nella trying section e nessuno possa entrare in CS: implica che per ogni processo Pk in D b[k]=false Supponiamo che Pi sia l ultimo processo che ha fato l assegnazione della variabile k (Li3) Pi appartiene a D altrimenti se potesse eseguire la CS e l exit protocol porrebbe b[i]=true ed un altro processo Pj in D porrebbe k=j. Dato che Pj appartiene a D allora anche Pi appartiene a D. Ogni processo Pk in D avrà prima o poi c[k]=true. Ogni processo Pk in D si va quindi a bloccare nel ciclo della sentinella. 14

16 Algoritmo di Dijkstra Proviamo la proprietà ND. Si supponga che un gruppo D di processi siano bloccati nella trying section e nessuno possa entrare in CS: L unica eccezione è Pi che andrà in sezione critica dato che tutti i processi Pk avranno c[k]=true. Ma se Pi va in sezione critica non può appartenere a D CONTRADDIZIONE! 15

17 Algoritmo di Lamport Lamport nel 1974 ha proposto una nuova soluzione per lo stesso problema in un contesto diverso: I processi comunicano leggendo/scrivendo variabili condivise La lettura e la scrittura di una variabile non è un azione atomica. Uno scrittore potrebbe scrivere mentre un altro processo sta leggendo. Ogni variabile condivisa è di proprietà di un processo tutti possono leggere la sua variabile solo il processo può scrivere la sua variabile Nessun processo può eseguire due scritture contemporaneamente 16

18 Algoritmo di Lamport Variabili condivise: num[1,,n] : array di valori interi inizialmente tutti posti a 0 choosing[1,,n] : array di valori booleani, inizialmente tutti posti a false Variabili locali: j: valore intero compreso in 1,,N 17

19 Algoritmo di Lamport Ciclo ripetuto all infinito 1 NCS 2 choosing[i] = true 3 num[i] = 1 + max(num[x]: 1 x N) 4 choosing[i] = false 5 for j = 1 to N do 6 while choosing[j] do NoOp() 7 while num[j] 0 and {num[j], j} < {num[i], i} do NoOp() 8 CS 9 num[i] = 0 18

20 Algoritmo di Lamport Ciclo ripetuto all infinito 1 NCS 2 choosing[i] = true Doorway 3 num[i] = 1 + max(num[x]: 1 x N) 4 choosing[i] = false 5 for j = 1 to N do Bakery 6 while choosing[j] do NoOp() 7 while num[j] 0 and {num[j], j} < {num[i], i} do NoOp() 8 CS 9 num[i] = 0 18

21 Algoritmo di Lamport Doorway: ogni processo Pi che entra lo segnala agli altri tramite choosing[i] sceglie un numero di prenotazione pari al massimo dei numeri scelti dagli altri più 1. Altri processi concorrentemente possono accedere alla doorway 19

22 Algoritmo di Lamport Una possibile esecuzione della doorway: choosing[1]=true num[1]=1+max{num[j]: 1 j 3}=2 P 1 choosing[2]=true num[2]=1+max{num[j]: 1 j 3}=1 P 2 choosing[3]=true num[3]=1+max{num[j]: 1 j 3}=2 P 3 20

23 Algoritmo di Lamport Backery: ogni processo uscito dalla doorway deve controllare che tra i processi in attesa lui sia il prossimo ad avere accesso alla CS Il primo ciclo permette a tutti i processi che stanno nella doorway di terminare la loro scelta del numero di accesso. Il secondo ciclo lascia un processo Pi in attesa finché: il numero da lui scelto non diventa il più piccolo tutti i processi che hanno scelto un numero uguale al suo non hanno identificativo maggiore ATTENZIONE: i casi in cui viene scelto lo stesso numero di prenotazione vengono risolti basandosi sull identificativo del processo. 21

24 Algoritmo di Lamport Una possibile esecuzione della backery: num[1]=2 choosing[1]=false while num[j] num[1]=0 P 1 num[2]=1 choosing[2]=false while choosing[j] num[2]=0 P 2 num[3]=2 choosing[3]=false while choosing[j] while num[j] P 3 22

25 Algoritmo di Lamport ME deriva dalla seguente proprietà: se un processo i è nella doorway ed un processo j è nella bakery section allora {num[j], j } < {num[i],i} Se due processi i e j fossero contemporaneamente nella CS avremmo {num[i],i } < {num[j],j} e {num[j], j } < {num[i],i} che è chiaramente un assurdo NS è garantita dal fatto che nessun processo attende per sempre poiché prima o poi avrà il numero di prenotazione più piccolo. 23

26 Algoritmo di Lamport L algoritmo del panettiere gode anche della seguente proprietà: FCFS (First-Come-First-Served): Se Pi entra nella sezione bakery prima che Pj entri nella doorway allora Pi entrerà in sezione critica prima di Pj Domande: che valore massimo può assumere num[i]? se Pi entra nella doorway prima di Pj, allora Pi entrerà in sezione critica prima di Pj? dimostrare la proprietà FCFS 24

27 Modello distribuito Rispetto al modello di Lamport ora aggiungiamo un vincolo: un processo non può leggere direttamente il valore delle variabili di proprietà degli altri processi, ma per farlo deve esplicitamente inviare un messaggio ed attendere una risposta che conterrà questo valore. Ciò implica che rispetto al modello di Lamport si aggiungono le seguenti assunzioni: I processi comunicano leggendo e scrivendo variabili attraverso scambi di messaggi. Il ritardo di trasmissione di un messaggio è sconosciuto ma finito. I canali di comunicazione sono affidabili (perfect link) 25

28 Adattamento algoritmo di Lamport Adattamento didattico. Variabili locali: j: valore intero compreso in 1,,N choosing: valore booleano inizialmente false 26

29 Adattamento algoritmo di Lamport 1 NCS 2 choosing = true 3 for j = 1 to N do 4 if (j i) then 5 trigger <pp2psend Pj, getnum> 6 wait for <pp2pdeliver Pj, val> 7 num = max(num, val) 8 num = 1 + num 9 choosing = false 10 for j = 1 to N do 11 do 12 trigger <pp2psend Pj, getchoosing> 13 wait for <pp2pdeliver Pj, val> 14 while val 15 do 16 trigger <pp2psend Pj, getnum> 17 wait for <pp2pdeliver Pj, val> 18 while val 0 and {val, j} < {num, i} 19 CS 20 num = 0 27

30 Adattamento algoritmo di Lamport 1 NCS 2 choosing = true 3 for j = 1 to N do 4 if (j i) then 5 trigger <pp2psend Pj, getnum> 6 wait for <pp2pdeliver Pj, val> 7 num = max(num, val) 8 num = 1 + num 9 choosing = false 10 for j = 1 to N do 11 do 12 trigger <pp2psend Pj, getchoosing> 13 wait for <pp2pdeliver Pj, val> 14 while val 15 do 16 trigger <pp2psend Pj, getnum> 17 wait for <pp2pdeliver Pj, val> 18 while val 0 and {val, j} < {num, i} 19 CS 20 num = 0 Doorway Bakery 27

31 Adattamento algoritmo di Lamport upon event <pp2pdeliver Pi, getchoosing> do trigger <pp2psend Pi, choosing> upon event <pp2pdeliver Pi, getnum> do trigger <pp2psend Pi, num> 28

32 Adattamento algoritmo di Lamport Questo soluzione non è perfetta perché: In questo algoritmo il processo Pi si comporta da server rispetto alle proprie variabili num e choosing Ogni processo si limita a recuperare (leggere) i valori locali per gli altri processi con una interazione requestreply Ciò implica che: per ogni lettura abbiamo 2(N-1) messaggi scambiati; per entrare in sezione critica servono 3 scambi di messaggi (tre letture) che costano in totale 6(N-1) messaggi; 29

33 Adattamento algoritmo di Lamport Questo aumenta notevolmente il tempo medio necessario ad un processo per accedere alla sezione critica. Il problema deriva dal fatto che i processi non cooperano. Ogni processo agisce in modo indipendente dagli altri. Passiamo quindi ad una soluzione completamente decentralizzata. 30

34 Algoritmo di Ricart-Agrawala Bisogna modificare l approccio al problema: Ogni processo accede alla doorway proponendo un numero di ingresso Manda quindi una richiesta a tutti gli altri processi ed aspetta che gli altri gli concedano l accesso alla CS Ulteriori assunzione necessarie: I processi non si guastano Non si perdono messaggi Le latenza dei canali sono sconosciute ma finite 31

35 Algoritmo di Ricart-Agrawala Variabili locali: #replies: valore intero inizialmente pari a 0 state: valore nell insieme {requesting, CS, NCS} inizialmente pari a NCS Q: coda di richieste pendenti {T,i} inizialmente vuota Last_req: valore intero inizialmente pari a 0 Num: valore intero inizialmente pari a 0 32

36 Algoritmo di Ricart-Agrawala begin state = requesting num = num + 1; last_req = num; trigger <pp2psend Pj, REQUEST(last_req)>, j [1, N], j i wait until #replies = (N- 1) state = CS CS trigger <pp2psend Pi, REPLY> to any Pi Q; Q = ; state = NCS; #replies = 0 end upon event <pp2pdeliver Pj, REQUEST(t)> do if state = CS or (state = requesting and{last_req, i } < {t,j}) then Q = Q {t, j} else trigger <pp2psend Pj, REPLY> num = max(t,num) upon event <pp2pdeliver Pj, REPLY(t)> do replies++; 33

37 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione =);<( => > + > 78)9- %&,:&12'- 31%)"-)56 34

38 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione >)<=( >?? +? +13"H 78)+&,191 "-) %&,:&12'- *& 7; <=(>)(-C)D'E)<=(F >(-C)D?E)GF)>)? 35

39 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione!7,81 9:)3%$;- -*) 17'%-%1 &7)56 + 7<(=: >-2'?+1@ =)7<( =: 7<(=: >-2'?+1@ =)7<( =: : + : +13"A 7<(=): 36

40 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione!"#$%&'($)*&)+&,-%'.!#%-/-"-0) 121(3&$ + <=(>8?-2'@+1A >)<=( >8 <=(>8?-2'@+1A >)<=( > )+&,191 "-) %&,:&12'- *& 7; "B <=(>)8 37

41 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione!"#$%&'($)*&)+&,-%'.!#%-/-"-0) 121(3&$ + 78(9: ;-2'<+1= 9)78( 9: 78(9: ;-2'<+1= 9)78( 9: : + : : +13"> 78(9): 38

42 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione!"#$%&'($)*&)+&,-%'.!#%-/-"-0) 121(3&$ 78(9: ;-2'<+1= 9)78( 9: : + 78(9: ;-2'<+1= 9)78( 9: + : 78(9(-A)B'?)78(C 78( 9(-A)B:?):C)9: :?@ : : +13"> 78(9): 39

43 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione 121(3&$ >)<=( >; + E ;CD <=(>;?-2'@+1A >)<=( >; ; + ; ; ; +13"B +13"B <=(>); 78)+&,191 "-) %&,:&12'- *& 7; <=(>(-F)G'C)<=(H <=( >(-F)G;C);H)>; 40

44 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione 121(3&$ >); + D ;C8 <=(>;?-2'@+1A >; + ; ; ; E?-2'@+1A C)&F)G)E'C)HFI E;C)8F)G)E;C);FI)4J ; +13"B +13"B <=(>); <=( >; 78)+&,191 "-) %&,:&12'- *& 7; 41

45 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione 121(3&$ >); + D ;C8 <=(>;?-2'@+1A >; + ; ; ; +13"B ; +13"B +13"B <=(>); <=( >; 78)+&,191 "-) %&,:&12'- *& 7; 42

46 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione 121(3&$ >)? + D?C8 >? +??? E%13"&12>? +13":? +13": +13": <=(>)? <=( >? 78)+&,191 &" +13":) *- 7; 43

47 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione 121(3&$ >)8 + C 8B; D%13"&12>8 <=(>8?-2'@+1A > D%13"&12>8 +13": 8 +13": +13": <=(>)8 <=( >8 78)+&,191 &" +13":) *- 7; 44

48 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione 121(3&$ >)8 + D 8BC E%13"&12>C <=(>8?-2'@+1A > E%13"&12>8 +13": 8 +13": +13": <=(>)8 <=( >8 78)+&,191 &" +13":) *- 7; 45

49 Algoritmo di Ricart-Agrawala Esempio di una possibile esecuzione 121(3&$ B ;< ;< A;<?%13"&12=@?%13"&12=> +13"9 +13"9?%13"&12=5 ;< ;< A;<?%13"&12=@ +13"9 7:( => 45)%&,161-7,81 &" 21,$7*$ +13"9)1) 17'%- -7,81 ":& &7) ;< 46

La mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione

La mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione La (dai sistemi concorrenti ai sistemi distribuiti) Mutua esclusione e sistemi concorrenti La nasce nei sistemi concorrenti abbiamo n processi che vogliono accedere ad una risorsa condivisa ogni processo

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Università degli Studi di oma Tor Vergata Facoltà di Ingegneria La mutua esclusione nasce nei sistemi concorrenti N processi vogliono accedere ad una risorsa condivisa Ogni processo vuole acquisire la

Dettagli

Sincronizzazione nei Sistemi Distribuiti (parte 2)

Sincronizzazione nei Sistemi Distribuiti (parte 2) Università degli Studi di oma Tor Vergata Facoltà di Ingegneria Sincronizzazione nei Sistemi Distribuiti (parte 2) Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/0 Mutua esclusione

Dettagli

Indice dei Contenuti

Indice dei Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /24 Global State - 3 Mutua esclusione e sistemi concorrenti - 7 Algoritmi per la Mutua Esclusione - 10 Algoritmi basati su autorizzazioni

Dettagli

22/05/2013. Indice dei Contenuti. Global State (1) Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

22/05/2013. Indice dei Contenuti. Global State (1) Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /24 Global State - 3 Mutua esclusione e sistemi concorrenti - 7 Algoritmi per la Mutua Esclusione - 10 Algoritmi basati su autorizzazioni

Dettagli

Sincronizzazione. Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Specifiche Le soluzioni software al problema della si basano sull utilizzo di variabili

Dettagli

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive) SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a

Dettagli

Sincronizzazione Le sezioni scritiche

Sincronizzazione Le sezioni scritiche Sincronizzazione Le sezioni scritiche Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Ambiente di sviluppo Concorrenza e sincronizzazione Programmazione concorrente (tramite

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune

Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune a) Uso di una risorsa condivisa Siano P 1, P 2, P 3,, P k i processi che condividono l uso di una risorsa comune

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

ESERCIZIO SincrAmbGlob-1

ESERCIZIO SincrAmbGlob-1 ESERCIZI DI SINCRONIZZAZIONE TRA THREAD CON SEMAFORI ESERCIZIO SincrAmbGlob-1 Si consideri un sistema nel quale è definito il semaforo sem1 e i thread P1, P2 e P3. Al tempo t il semaforo sem1 ha la seguente

Dettagli

CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1

CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore è uno dei problemi più comuni di concorrenza tra processi. Il problema presenta uno o più

Dettagli

CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE

CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore Il primo approccio alla risoluzione del problema del produttore/consumatore considera un buffer infinito presentato

Dettagli

SCD. Correttezza temporale. Correttezza temporale. Premesse 2. Politiche di ordinamento 1. Premesse 1

SCD. Correttezza temporale. Correttezza temporale. Premesse 2. Politiche di ordinamento 1. Premesse 1 Premesse 2 Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD I sistemi a tempo reale devono assicurare correttezza temporale oltre che funzionale

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Le risorse. Alcune definizioni

Le risorse. Alcune definizioni Le risorse Dicesi risorsa un qualunque oggetto, fisico o logico, di cui un processo necessita per portare a termine la sua evoluzione. Poiché un processo evolve eseguendo istruzioni (procedure), una risorsa

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata e Senza Starvation

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata e Senza Starvation Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata e Senza Starvation Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo

Dettagli

Sushi bar problem. The Little Book of Semaphores by Allen B. Downey

Sushi bar problem. The Little Book of Semaphores by Allen B. Downey Sushi bar problem The Little Book of Semaphores by Allen B. Downey http://greenteapress.com/semaphores/ 1 Sushi bar problem Immaginiamo di avere un sushi bar con 5 sedie. Se un cliente arriva e c'è una

Dettagli

corso di Sistemi Distribuiti 3. La concorrenza tra processi remoti nei sistemi distribuiti

corso di Sistemi Distribuiti 3. La concorrenza tra processi remoti nei sistemi distribuiti CdL MAGISTRALE in INFORMATICA A.A. 2015-16 corso di Sistemi Distribuiti 3. La concorrenza tra processi remoti nei sistemi distribuiti Prof. S.Pizzutilo Concorrenza fra processi remoti Interazioni fra processi

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) : PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo

Dettagli

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Soluzioni hardware Le soluzioni hardware al problema della SC possono essere classificate

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

Istruzioni, algoritmi, linguaggi

Istruzioni, algoritmi, linguaggi Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Dettagli

Sincronizzazione. Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Produttore-Consumatore Produttore e consumatore con memoria limitata Utilizza

Dettagli

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test di Accettazione

Dettagli

Sistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A

Sistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A Nome: Cognome: Matricola: corso: fila: posto: Esercizio 1 (5 punti) Si consideri un processore che dispone dei registri speciali PC (program counter) e PS (program status), dello stack pointer SP e dei

Dettagli

sistemi distribuiti soggetti a guasti - consenso

sistemi distribuiti soggetti a guasti - consenso sistemi distribuiti soggetti a guasti - consenso Problema del Consenso Il gruppo di processi devono mettersi d accordo su un valore (es. commit/abort di una transazione). E l astrazione di una classe di

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class

Dettagli

Strutture di controllo iterative

Strutture di controllo iterative Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione Problema Scrivere un programma che acquisisca da standard input un intero

Dettagli

Concorrenza fra processi remoti

Concorrenza fra processi remoti 29/10/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di Sistemi Distribuiti 3. La concorrenza tra processi remoti nei sistemi distribuiti Riferimenti: Prof. S.Pizzutilo A.Tanenbaum,M.Van Steen Sistemi

Dettagli

unità didattica 3 Le strutture condizionali e le strutture iterative

unità didattica 3 Le strutture condizionali e le strutture iterative unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell

Dettagli

Corso di Fondamenti di Informatica. La ricorsione

Corso di Fondamenti di Informatica. La ricorsione Corso di Fondamenti di Informatica La ricorsione La ricorsione Si dice che un oggetto (una struttura dati, una funzione matematica, un concetto ) è ricorsivo se è possibile darne una definizione in termini

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2014/2015 Ambiente di test Cercare PHP online per avere un interprete PHP Assegnamento

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2015/2016 Ambiente di test PHP online per avere un interprete PHP Php Online PHP Tester

Dettagli

Istruzioni di ripetizione in Java 1

Istruzioni di ripetizione in Java 1 in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

UNIVERSITÀ DEGLI STUDI DI BERGAMO

UNIVERSITÀ DEGLI STUDI DI BERGAMO UNIVERSITÀ DEGLI STUDI DI BERGAMO DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE E METODI MATEMATICI Corso di Laurea in Ingegneria Informatica/Meccanica Esame di Sistemi Operativi a.a. 2008-09 (Modulo di

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Problema dei Fumatori di sigarette. Problema dei Fumatori di sigarette. Problema dei Fumatori di sigarette

Problema dei Fumatori di sigarette. Problema dei Fumatori di sigarette. Problema dei Fumatori di sigarette 1 3 processi fumatori 1 processo tabaccaio Ogni fumatore esegue ripetutamente un ciclo in cui prepara una sigaretta e poi la fuma Per preparare la sigaretta un fumatore ha bisogno di 3 ingredienti (risorse):

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Lezione 11 Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Ordinamento degli eventi Un sistema monoprocessore Unico clock Unica memoria Ordinamento degli eventi Mutua esclusione Deadlock

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

C espressioni condizionali

C espressioni condizionali C espressioni condizionali Esiste un particolare operatore, detto operatore condizionale, che rappresenta un istruzione if else. estremamente compattata?: Supponiamo di voler inserire nella variabile intera

Dettagli

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Sistemi operativi Sincronizzazione fra processi

Sistemi operativi Sincronizzazione fra processi Sistemi operativi 2003-2004 Sincronizzazione fra processi Introduzione I processi devono poter comunicare tra loro in modo strutturato e preciso Per passarsi informazioni Per non interferire con gli altri

Dettagli

Esercizi Capitolo 7 - Hash

Esercizi Capitolo 7 - Hash Esercizi Capitolo 7 - Hash Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Studio degli algoritmi

Studio degli algoritmi COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi

Dettagli

Esercizi Esercizi Università di Salerno

Esercizi Esercizi Università di Salerno Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2015-2016 Esercizi Esercizi Università di Salerno 1. In un sistema si possono presentare solo due tipi di processi: lettori P l e scrittori P s. Dove i

Dettagli

Strutture di controllo in C++

Strutture di controllo in C++ Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Il controllo: selezione Spesso la sequenza delle istruzioni non e prevedibile a priori ma dipende strettamente dalle configurazioni

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Sincronizzazione e coordinamento nel distribuito

Sincronizzazione e coordinamento nel distribuito Sincronizzazione e coordinamento nel distribuito Sincronizzazione in sistemi centralizzati uso di primitive basate implicitamente sull esistenza della memoria condivisa Sincronizzazione in sistemi distribuiti

Dettagli

Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI

Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI 1. Si consideri il programma C seguente (gli #include necessari sono omessi): / programma principale / 1.

Dettagli

SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 21 dicembre 2004

SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 21 dicembre 2004 SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 21 dicembre 2004 Cognome: Nome: Matricola: ESERCIZIO 1, teoria (6 punti) a) riportate lo pseudocodice che descrive l implementazione dell operazione

Dettagli

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB) Processi Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi 1 Il descrittore di processo (PCB) Il S.O. gestisce i processi associando a ciascuno di essi

Dettagli

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Informatica e Bioinformatica: Algoritmi

Informatica e Bioinformatica: Algoritmi Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 4 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Approfondimento su make http://http://capone.mtsu.edu/csdept/facilitiesandresources/make.htm

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile

Dettagli

Il Modello a scambio di messaggi

Il Modello a scambio di messaggi Il Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto typedef struct{ origine; destinazione; contenuto;

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

Dettagli

METODI DI RISOLUZIONE DEI SEGNALI BLOCCANTI. Prof. Mario Angelo Giordano

METODI DI RISOLUZIONE DEI SEGNALI BLOCCANTI. Prof. Mario Angelo Giordano METODI DI RISOLUZIONE DEI SEGNALI BLOCCANTI Prof. Mario Angelo Giordano Ipotizziamo ora di considerare la sequenza costituita da due cilindri A e B, entrambi DE: A+/B+/B-/A- E ipotizziamo che tale sequenza

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Sincronizzazione Inconsistenza di dati condivisi: i rischi dell'interleaving nei processi concorrenti La race condition Il problema della "sezione critica" dei processi concorrenti e la soluzione

Dettagli

Fondamenti di Programmazione Recupero Primo Parziale 30 Gennaio 2008 Traccia A

Fondamenti di Programmazione Recupero Primo Parziale 30 Gennaio 2008 Traccia A Fondamenti di Programmazione Recupero Primo Parziale 30 Gennaio 2008 Traccia A Cognome: Nome: Corso di Laurea N. Matricola: Giorno non preferito per l orale (Matematici) Giorno non preferito per l orale

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Problema Sincronizzazione Semafori Si considerino tre processi (A, B e C) i quali devono eseguire alcune operazioni

Dettagli

SOLUZIONE. <l auto arriva all ingresso I> while PostiDisponibili == 0

SOLUZIONE. <l auto arriva all ingresso I> while PostiDisponibili == 0 ESERCIZIO parcheggio Un parcheggio per auto della capacità di 10 posti è dotato di un unico ingresso I e un unica uscita U. L ingresso e l uscita sono controllate da sbarre. Le auto sono thread di uno

Dettagli

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. Istruzioni condizionali, cicli for e cicli while. Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il

Dettagli

Strutture di controllo decisionali

Strutture di controllo decisionali Capitolo 3 Strutture di controllo decisionali ANDREA GINI Dopo aver introdotto il concetto di variabile e di array, è giunto il momento di analizzare a fondo i restanti costrutti del linguaggio Java. Come

Dettagli

Esercitazione 15. Il problema dello Sleeping Barber

Esercitazione 15. Il problema dello Sleeping Barber Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazione 15 Il problema dello Sleeping Barber E dato un salone di barbiere,

Dettagli

Sistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente

Sistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente Sistemi Operativi Lez. 6: Problemi classici della programmazione concorrente Produttore e consumatore Uno dei problemi classici della programmazione concorrente è il problema del produttore consumatore.

Dettagli

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto Argomenti della lezione Introduzione agli Algoritmi e alle Strutture Dati Operazioni su Liste Dr. Emanuela Merelli Tipi di Dato Astratto Lista Lineare Pila Coda Concetto di Struttura dati dinamiche Lista

Dettagli

Calcolare lo Span di un array di numeri

Calcolare lo Span di un array di numeri Calcolare lo Span di un array di numeri Altro esempio di come usare una pila come struttura dati ausiliaria per un algoritmo: Dato un array X, lo span S[i] di X[i] è il massimo numero di elementi consecutivi

Dettagli