La mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione
|
|
- Renato Salvatore
- 6 anni fa
- Visualizzazioni
Transcript
1 La (dai sistemi concorrenti ai sistemi distribuiti)
2 Mutua esclusione e sistemi concorrenti La nasce nei sistemi concorrenti abbiamo n processi che vogliono accedere ad una risorsa condivisa ogni processo esegue la sequenza di passi <non in sezione critica> <trying protocol> sezione critica <exit protocol> <non in sezione critica> Lo scheduler sceglie di volta in volta l istruzione da eseguire di un certo processo, la sequenza scelta è chiamata schedule (accesso alla risorsa condivisa) (una volta uscito puo ricominciare)
3 sistemi concorrenti Caratteristiche di un sistema concorrente-- NO DISTRIBUITO!-- Modello di Dijkstra i processi comunicano leggendo e scrivendo variabili condivise la lettura e scrittura di una variabile è un azione atomica (non interrompibile) Nessuna assunzione sul tempo che impiega ogni processo ad eseguire un azione atomica (es. uno molto lento contro un altro molto veloce)
4 Mutua esclusione\specifica Definizione del problema in termini di tre proprietà: ME (Mutua Esclusione): due processi non possono essere nelle loro sezioni critiche contemporaneamente ND (No Deadlock): se un processo rimane bloccato nella sua trying section, ci sono uno o piu processi che riescono ad accedere alla sezione critica NS (No Starvation) [OPTIONAL]: nessun processo puo rimanere bloccato nella trying section per sempre NS implica ND
5 Algoritmo di Dijkstra (1965) Shared variables b[1,..n]: array of Boolean, initially all true c[1,..n]: array of Boolean, initially all true k: integer in range 1,..N, initially any value in its range Local variables j: integer in range 1,..N % il processo si prenota % trying protocol ciclo della sentinella exit protocol
6 Un possibile schedule s1 (initially k=4) P1 b[1]:= false if k 1 then begin c [1]:= true P2 b[2]:= false if k 2 then begin c [2]:= true P3 if b[4] then k:=1 if b[4] then k:=2 b[2]:= false if k 3 then begin c [3]:= true if b[4] then k:=3
7 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, ma in realtà l ordine di entrata lo dice lo scheduler...
8 un possibile schedule s1-a P1 c[i]:=false for j:= 1 to n do if i j and not c[j] then goto Li1 sezione critica c[i]:=b[i]:= true; P2 c[i]:= false for j:= 1 to n do if i j and not c[j] then goto Li1 sezione critica c[i]:=b[i]:= true; P3
9 un possibile schedule s1-a P1 P2 P3 c[i]:= false for j:= 1 to n do if i j and not c[j] then goto Li1 sezione critica c[i]:=b[i]:= true;
10 un possibile schedule s1-b P1 c[i]:= false if i j and not c[j] then goto Li1 c[i]:= true P2 c[i]:= false if i j and not c[j] then goto Li1 c[i]:= true P3 c[i]:= false if i j and not c[j] then goto Li1... c[i]:= false
11 che cosa è successo? A questo punto entra in gioco il valore k, mentre P1 e P2 rimangono bloccati all istruzione Li1 (anche se lo schedule dà la possibilità a P1 e P2 di eseguire un istruzione, P1 e P2 non eseguono nulla), P3 salta direttamente alla riga Li4 (k=3), pone c[3]=false ed entra in sezione critica (per gli altri due c è pari a true) quando P3 esce dalla sezione critica allora b[3] viene posto di nuovo pari a true e ciò sblocca i processi P1 e P2 ancora bloccati all istruzione Li1 ora l algoritmo si ripete allo stesso modo per P1 e P2
12 prova di ME Per assurdo: supponiamo esista uno schedule S1 per cui due processi i e j sono in sezione critica concorrentemente. Ciò implica che: i ha eseguito con successo Li4, cioè ha trovato c[j]=true implica i ha eseguito la terza linea di Li4 prima che j eseguisse la prima linea di Li4, cioè lo schedule S1 ha posto i. Li4-3 e poi j.li4-1 chiaramente in S1 sia anche i.li4-1 precede i.li4-3 (stesso processo) implica per transitività in S1 i.li4-1 precede j.li4-1
13 prova di ME Ora scambiando i e j e facendo lo stesso ragionamento otteniamo che: in S1 j.l4-1 precede i.l4-1 contraddizione OSSERVAZIONI: la ME è facilmente garantita da un uso opportuno della struttura dati c
14 prova di ND Per assurdo: supponiamo che un gruppo di processi D sono bloccati nella trying section e nessuno puo entrare nella sezione critica implica per ogni processo Pk in D abbiamo che b[k]=false. Suppponiamo ora che Pi sia l ultimo processo che ha fatto l assegnazione della variabile k (Li3). Pi appartiene a D altrimenti se potesse eseguire CS e quindi anche l exit protocol allora porrebbe b[k]=true. Se ciò fosse un altro processo Pj appartenente a D troverebbe b[k]=true e porrebbe a j il valore della variabile k. Poichè j appartiene a D (è bloccato) allora anche Pi appartiene a D
15 prova di ND Ogni processo Pk in D avrà prima o poi la variabile c[k]=false, questo perchè se pure l avevano a false poi grazie all esecuzione di Li4 ritornano con il goto Li1 a settare di nuovo la variabile c a true. Ogni processo Pk in D si va quindi a bloccare nel ciclo della sentinella L unico che salta il ciclo è Pi che va in sezione critica perchè tutti hanno la variabile c[k] uguale a true Ma se Pi va in sezione critica, non può appartenere a D. Contraddizione. OSSERVAZIONI: ND è garantita da un uso oppurtuno della variabile k
16 L algoritmo di Dijkstra e NS Domanda: un processo che setta con successo la variabile k quante volte puo eseguire l istruzione goto Li1 prima di entrare in sezione critica? Perchè NS non è soddisfatta? Fornire un particolare scenario in cui si viola NS
17 Sistemi concorrenti (ii) Abbiamo visto il modello concorrente definito da Dijkstra in cui è possibile che piu processi scrivano e leggano in modo atomico nella/dalla stessa variabile. Questo è un modello che astrae bene sistemi con una sola memoria fisica ma non sistemi multiprocessori con memoria locali In sistemi multiprocessori potremmo avere copie di una stessa variabile su macchine diverse Nota che l algoritmo funziona basandosi di fatto su meccanismi hardware che organizzano un accesso in alla memoria fisica (variabile k)
18 Modello di Lamport i processi comunicano leggendo e 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: solo questo processo puo scrivere la sua variabile condivisa, gli altri possono solo leggere Nessun processo puo emettere due scritture concorrentemente La velocità di esecuzione dei processi sono non correlate. In un tempo infinito ogni processo esegue un numero infinito di passi elementari mentr in un tempo finito nè esegue un numero finito
19 Algoritmo del Panettiere (Lamport 1975) Shared variable num[1,..n]: array of integer, initially all 0 choosing[1,..n]: array of Boolean, initially all false %process i owns num[i] and choosing[i]% Local variable j: integer in range 1,..N repeat 1 NCS 2 choosing[i]:= true trying protocol exit protocol 3 num[i]:= 1+ max {num[j] : n j 1} %DOORWAY% 4 choosing[i]:= false 5 for j:= 1 to n do begin 6 while choosing[j] do skip 7 while num[j] 0 and {num[j], j } < {num[i],i} do skip %BAKERY% 8 end 9 CS 10 num[i]:=0; forever
20 Panettiere - doorway nella DOORWAY, ogni processo Pi che entra nella trying section lo segnala agli altri grazie alla variabile choosing[i]. Quindi deve prendere un numero di prenotazione, per farlo PRIMA legge tutti i numeri scelti dagli altri prima di lui, quindi prende il massimo e aggiunge uno ATTENZIONE: altri insieme a Pi possono accedere alla doorway concorrentemente!
21 Una run R1 possibile per la doorway P1 choosing[i]:= true P1 legge sicuramente il valore scritto da P2 perchè non vi è concorrenza fra le due operazioni num[1]:=1+max {num[j]:3 j 1 P1 potrenne leggere come no il valore finale scritto da P3 perchè le due operazioni sono concorrenti, in questa run non lo legge NUM[1]=2 P2 choosing[i]:= true NUM[2]=1 num[2]:=1+max {num[j]:3 j 1 P3 choosing[i]:= true num[3]:=1+max {num[j]:3 j 1 NUM[3]=2 durante la concorrenza, P3 potrebbe leggere il valore finale scritto da P2 oppure no, in questa run lo legge
22 Panettiere - bakery Una volta uscito dalla doorway il processo Pi deve assicurarsi che tra i processi che sono in attesa lui è il prossimo ad entrare nella sezione critica, i cicli while a line 7 e 8 hanno esattamente questo scopo: while choosing[j] do skip: Pi si assicura che ogni processo che concorrentemente con lui è acceduto alla doorway completi la scrittura del numero: finchè c è qualcuno che sta ancora scegliendo, Pi aspetta while num[j] 0 and {num[j], j } < {num[i],i} do skip: il processo Pi si assicura che tutti i processi che concorrentemente sono in procinto di accedere all CS abbiano un numero piu grande del suo oppure uguale ma identificativo di processo piu grande: finchè c è qualcuno con un numero più piccolo, Pi aspetta
23 Una run R1 possibile per il bakery P1 choosing[i]:= true NUM[1]=2 while su num NUM[1]=0 choosing[i]:= false P2 NUM[2]=1 choosing[i]:= false while su choosing NUM[2]=0 while su num P3 NUM[3]=2 while su choosing choosing[i]:= false while su num qui si sblocca la while su choosing per P2 e P3, si noti come grazie a questa while i tre processi sono riallineati prima di comparare i numeri tra di loro
24 Il panettiere e le sue proprietà 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}. Quindi se due processi i e j sono nella CS contemporaneamente allora per la predecente proprietà otteniamo {num[i],i } < {num[j],j} e {num[j], j } < {num[i],i} chiaramente un assurdo (La prova formale, in realtà è più complicata...) NS è garantita dal fatto che nessun processo attende per sempre poichè prima o poi avrà il numero di attesa più piccolo L algoritmo del panettiere gode anche della seguente proprietà: FCFS(first-Come-First-Served): Se Pi entra nella sezione bakery prima che Pj entra nella doorway allora Pi entrerà in sezione critica prima di Pj Domande: indicare il range della variabile num[i] nell algoritmo del panattiere provare formalmente che l algoritmo del panettiere assicura FCFS perchè non vale la seguente (più intuitiva) nozione FCFS: se il Pi entra nella doorway prima di Pj allora Pi entrerà in sezione critica prima di Pj
Mutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12
Mutua esclusione Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Accesso concorrente alle risorse Consideriamo un sistema in cui N processi vogliono accedere
DettagliMiddleware 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
DettagliUniversità 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
DettagliSincronizzazione 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
DettagliSincronizzazione. 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
DettagliSincronizzazione 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
DettagliSEMAFORI 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
DettagliSincronizzazione. 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
DettagliPROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
DettagliCAPITOLO 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ù
DettagliAlgoritmi, 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
DettagliCAPITOLO 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
DettagliCORSO 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
DettagliSTRUTTURE 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
DettagliIndice 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
Dettagli22/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
DettagliLe 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
DettagliDati 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
DettagliSCD. 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
DettagliPROGRAMMAZIONE: 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
DettagliFondamenti 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
DettagliVerifica 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
DettagliEsercizi 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
DettagliEsercizi 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
DettagliCorso 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
DettagliINFORMATICA. 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
DettagliCOMPLESSITÀ 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,
DettagliCiclo do while in FORTRAN
Ciclo do while in FORTRAN Vogliamo tradurre in linguaggio FORTRAN un algoritmo che risponde a questo tipo di struttura: Fino a quando e vera questa espressione logica allora: fai questo fai quest altro
DettagliEsercizi 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
DettagliCooperazione tra Processi
Cooperazione tra Processi Principi Il problema della sezione critica: le race condition Supporto hardware Semafori Monitor Scambio di messaggi Barriere Cos è la concorrenza? È un tema centrale nella progettazione
DettagliCognome 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:
DettagliI 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
DettagliSTRUTTURE DI CONTROLLO
STRUTTURE DI CONTROLLO - Strutture di controllo - 1 Algoritmo per il cambio della ruota Inizio chiama il meccanico V ruota di scorta bucata F solleva l auto svita un bullone tutti svitati V togli la ruota
Dettagli= < < < < < Matematica 1
NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato
DettagliCostruzione dell insieme dei Follow
Costruzione dell insieme dei Follow E! T E - T E E! + T E - T E " T! F T T! *F T " F! (E) i Per evitare che alcuni insiemi siano vuoti si aggiunge per default il simbolo speciale $ che demarca la fine
DettagliDiagramma 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
DettagliIntroduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
DettagliStrutture 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
DettagliRappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
DettagliCorso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
DettagliINFORMATICA 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
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliAltrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliMatlab. 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
Dettagliunità 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
DettagliLinguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl
Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare
DettagliESERCIZIO 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
DettagliLa principale modalità di calcolo è l applicazione di funzioni
1 La principale modalità di calcolo è l applicazione di funzioni Nei linguaggi funzionali puri non esistono strutture di controllo predefinite per la realizzazione di cicli quali for, while, repeat Un
DettagliStudio 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
DettagliLe 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
Dettagliosservazione: 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)
DettagliCostrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni
DettagliPASCAL standard. Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth.
PASCAL standard Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth. Nb: primi linguaggi furono: Fortran, Algol, Ada, Cobol (cfr testo)
DettagliSistemi operativi - Concetti ed esempi -Settima edizione
Capitolo 6: Sincronizzazione dei processi Capitolo 6: Sincronizzazione dei processi Introduzione Problema della sezione critica Soluzione di Peterson Hardware per la sincronizzazione Semafori Problemi
DettagliCodice Gray. (versione Marzo 2007)
Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.
DettagliSistemi 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
DettagliAppunti 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
DettagliStrutture di controllo iterative
Capitolo 4 Strutture di controllo iterative ANDREA GINI Le strutture di controllo iterative permettono di impostare la ripetizione di un insieme di istruzioni per un determinato numero di volte. In Java
DettagliUniversità 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 8 Martedì 8-11-2016 1 Algoritmi di scheduling basati sulle priorità Assegnano
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliSincronizzazione. 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
DettagliEsercitazioni di Elementi di Informatica
Esercitazioni di Elementi di Informatica Docente: Prof. Angelo Chianese angelo.chianese@unina.it Tutor: Ing. Antonio Picariello antonio.picariello@unina.it Interpreti e Compilatori Interprete Es. Qbasic
DettagliCompitino 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
DettagliSistemi 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.
DettagliIstruzioni, 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
DettagliCorso 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
DettagliFondamenti di Informatica
Fondamenti di Informatica Prima prova intermedia - 11 Novembre 2009 Si risolvano i seguenti esercizi. Il compitino prevede un punteggio massimo di 15/14-esimi, cui andranno sommati i punti ottenuti nel
DettagliEsercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:
Architettura degli Elaboratori Prima prova di verifica intermedia - A.A. 2014-2015 Riportare Nome, Cognome, Numero di matricola e Corso di appartenenza su tutti i fogli consegnati. I risultati saranno
DettagliCalcolare 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
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
Dettagli1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
DettagliCorso: 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
Dettagli2. ALGORITMO DEL SIMPLESSO
. ALGORITMO DEL SIMPLESSO R. Tadei Una piccola introduzione R. Tadei SIMPLESSO L obiettivo del capitolo è quello di fornire un algoritmo, l algoritmo del simplesso, che risolve qualsiasi problema di programmazione
DettagliSistemi Operativi. Lezione 7-bis Esercizi
Sistemi Operativi Lezione 7-bis Esercizi Esercizio Problema dei lettori e scrittori Un insieme di processi condivide un file dal quale alcuni possono solo leggere i dati, altri solo scriverli Più lettori
DettagliUn algoritmo realizza una relazione funzionale tra i valori di input e quelli di output
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di
DettagliFondamenti 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
DettagliRappresentazione 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
DettagliGestione della produzione e della supply chain Logistica distributiva
Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non
DettagliCAPITOLO 24 I MONITOR
EFFETTO DELLE PRIMITIVE - signal E wait SUI SEMAFORI CAPITOLO 24 I MONITOR I semafori sono un mezzo efficace per la gestione della mutua esclusione in ambienti con processi concorrenti, ma spesso è difficile
DettagliUniversità degli Studi di Bologna Sede di Cesena. Corso di Laurea in Scienze dell Informazione. Anno Accademico 1998/99
Università degli Studi di Bologna Sede di Cesena Cso di Laurea in Scienze dell Infmazione Anno Accademico 1998/99 Sistemi per l elabazione dell infmazione II ADA Esercizi Stefano Clemente clemente@csr.unibo.it
DettagliC 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
DettagliProf. 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
DettagliJava 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
DettagliAlgoritmi. Pagina 1 di 5
Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni
DettagliPensiero computazionale. Lezione 3 Istruzioni condizionali Eventi, messaggi Variabili
Pensiero computazionale Lezione 3 Istruzioni condizionali Eventi, messaggi Variabili Algebra di Boole Il ramo dell algebra in cui le variabili possono assumere solo due valori: true (1, vero) o false (0,
DettagliAlgoritmi e Strutture di Dati (3 a Ed.) Errata corrige. Alan Bertossi, Alberto Montresor
Algoritmi e Strutture di Dati (3 a Ed.) Errata corrige Alan Bertossi, Alberto Montresor Gli autori saranno riconoscenti a chiunque segnali errori presenti nel libro di testo, scrivendo ad alberto.montresor@unitn.it.
DettagliSistemi 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
DettagliDecima Esercitazione. Accesso a risorse condivise tramite Monitor Java
Decima Esercitazione Accesso a risorse condivise tramite Monitor Java 1 Agenda Esempio 1 La banca: gestione di una risorsa condivisa da più thread, con politica prioritaria Esercizio 2 da svolgere Accesso
DettagliIntroduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
DettagliOttimizzazione dei Sistemi Complessi
1 Giovedì 2 Marzo 2017 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Pseudo-code del metodo Fermi-Metropolis Input: x 0, 0, min, maxit k 0, x x 0, 0 while k maxit and min do k k + 1, x x
DettagliDall algoritmo al programma
Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione Laurea in Bioinformatica Docente: Carlo Drioli Web: www.scienze.univr.it/fol/main?ent=oi&id=39990 Programmazione: Dati Strutture di controllo Algoritmi Materiale tratto dai
DettagliEsecuzione concorrente di transazioni
Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Osservazione Per gestire con prestazione accettabili il carico di lavoro tipico
DettagliEsercizio 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
DettagliIL TEOREMA DI BOEHM-JACOPINI
IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio
DettagliSTRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER
1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono
DettagliUniversità degli Studi di Roma Tor Vergata. Principio di induzione matematica
Università degli Studi di Roma Tor Vergata. Principio di induzione matematica Il Principio di induzione matematica è una tecnica di dimostrazione che permette la dimostrazione simultanea di infinite affermazioni.
DettagliExcel & VBA. Excel e Visual Basic for Application
Excel & VBA Excel e Visual Basic for Application Automazione Excel con VBA incorpora la tecnologia dell automazione (OLE automation) Excel dialoga con VBA attraverso un insieme di comandi detto libreria
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
Dettagli