UNIVERSITÀ DEGLI STUDI DELLA CALABRIA FACOLTÀ DI INGEGNERIA. Corso di Laurea Specialistica in Ingegneria Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DELLA CALABRIA FACOLTÀ DI INGEGNERIA. Corso di Laurea Specialistica in Ingegneria Informatica"

Transcript

1 UNIVERSITÀ DEGLI STUDI DELLA CALABRIA FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica Dipartimento di Elettronica, Informatica e Sistemistica Tesi di Laurea Modelli Peer-to-Peer per applicazioni MapReduce in ambienti Cloud dinamici RELATORI CANDIDATO Prof. Domenico Talia Fabrizio Marozzo Ing. Paolo Trunfio Matr Anno Accademico 2008/2009

2 Alla mia famiglia

3 Indice INTRODUZIONE MAPREDUCE PROBLEMI WEB-SCALE E PROGRAMMAZIONE PARALLELA PROGRAMMAZIONE FUNZIONALE Confronto tra programmazione imperativa e funzionale MAPREDUCE DataFlow Esempio: WordCount Applicazioni di MapReduce GOOGLE MAPREDUCE Esecuzione di Google MapReduce Google File System HADOOP Esecuzione di Hadoop MapReduce Hadoop Distributed File System (HDFS) PROBLEMA DEL SINGOLO MASTER JXTA JXTA: ARCHITETTURA The Core Layer The Services Layer The Application Layer JXTA: ENTITÀ Peer PeerGroup Service Module Pipe Messagge Advertisement Security ID JXTA: I PROTOCOLLI Endpoint Routing Protocol (ERP) Peer Resolver Protocol (PRP) Peer Discovery Protocol (PDP) Peer Information Protocol (PIP) I

4 2.3.5 Pipe Binding Protocol (PBP) RendezVous Protocol (RVP) Indipendenza dei protocolli JXTA: STRUTTURA DI RETE E COMUNICAZIONE TRA PEER Tipi di peer CLASSIFICAZIONE DELLE ARCHITETTURE P2P Grado di centralizzazione Grado di strutturazione delle informazioni ARCHITETTURA DI RETE DI JXTA Shared Resourse Distribuited Index Pubblicazione e ricerca Ricerca Pubblicazione Esempio di pubblicazione/ricerca ARCHITETTURA DEL SISTEMA ARCHITETTURA PROGETTAZIONE SCOPERTA DELLE RISORSE GESTIONE DELLA RETE SOTTOMISSIONE DEI JOB E RECUPERO DEI FALLIMENTI INTERAZIONE CON L UTENTE COMPORTAMENTO DEL NODO IMPLEMENTAZIONE CLASS DIAGRAM STATE DIAGRAM Semantica di uno stato Gestione degli eventi: inner event e transition Gestione delle attività Stati paralleli Notazione utilizzata per descrivere i diagrammi di stato FSM: ABSTRACT NODE FSM: NODE SLAVE MANAGEMENT RECOVERY COORDINATION JOB_MANAGER TASK_MANAGER JOB_BACKUP_MANAGER II

5 4.12 ELEZIONE DEL COORDINATORE ALGORITMO DI NETWORK MAINTENANCE Cambiamento di ruolo Prenotare un cambiamento di ruolo COMUNICAZIONE IMPLEMENTAZIONE STATECHART VALUTAZIONE DELLE PRESTAZIONI PARAMETRI DELLA SIMULAZIONE SIMULAZIONE CON LEAVING RATE PARI A SIMULAZIONE CON LEAVING RATE PARI A SIMULAZIONE CON LEAVING RATE PARI A ANALISI COMPARATIVE DELLE SIMULAZIONI E VALUTAZIONE DEI COSTI CONCLUSIONI BIBLIOGRAFIA III

6 Introduzione Un numero sempre crescente di applicazioni desktop di uso comune sono fornite anche sotto forma di applicazioni Web-based, ovvero applicazioni disponibili sulla rete Internet ed accessibili mediante un browser Web. In questo scenario, Internet si trasforma da enorme contenitore di informazioni in una gigantesca piattaforma di computazione, in cui le applicazioni Web-based vengono rese disponibili all utente finale mediante una pagina Web. Tale modello è incluso nel paradigma SaaS (Software as a Service) nel quale le applicazioni sono accessibili tramite interfacce Internet sotto forma di servizi on demand, ad esempio attraverso le tecnologie dei Web Services. Le applicazioni Saas, residenti ed eseguite su computer remoti, sono usate per gestire le attività di business e dati, senza che l utilizzatore finale sia obbligato ad istallarli sul 1

7 Introduzione proprio computer, ad aggiornarli, a sottoporli a manutenzione, né a possederne la licenza d uso. Gli esempi di applicazioni Web-based sono molteplici: webmail (ad es. Gmail), agende (Google Calendar, Yahoo Calendar), gestione di documenti (Google Docs, Microsoft Office Live Workspace, Zoho Docs), manipolazione di immagini (Photoshop Express, SumoPaint), ed altri. Accanto al paradigma SaaS, sono stati proposti i modelli PaaS (Platform as a Service) e IaaS (Infrastructure as a Service) che consentono di creare applicazioni software, database, servizi e infrastrutture Web, usufruendo di piattaforme virtuali che offrono storage, backup, replicazione, protezione dei dati, calcolo distribuito e sicurezza. Tutto questo senza sostenere ingenti costi infrastrutturali per l acquisto, la manutenzione, il supporto e l aggiornamento delle stesse infrastrutture informatiche. Tali modelli a servizi sono incorporati nel concetto di Cloud computing, un paradigma di calcolo distribuito nel quale le risorse, dinamicamente scalabili e spesso virtualizzate, sono fornite come un servizio su Internet [1]. In tale modello, gli utenti non hanno bisogno di avere la conoscenza, o il controllo delle infrastrutture tecnologiche che supportano le loro applicazioni [2]. I servizi Cloud si basano su nuvole di computer che agiscono come se fossero un unica entità e assegnano ad ogni singola applicazione le risorse di elaborazione necessarie secondo una modalità on-demand. Inoltre le risorse vengono offerte in maniera altamente scalabile, cioè in dipendenza dell uso contemporaneo che di esse viene fatto da parte dei diversi utenti. Di conseguenza, ciò che si paga in un sistema Cloud è ciò che si consuma. Il sistema Cloud che supporta l esecuzione delle applicazioni è in continua evoluzione, si espande e si contrae in base alle esigenze degli utenti e, in linea di principio, non possiede dei confini precisi. La Google Search Engine è un esempio di applicazione eseguita su una infrastruttura di Cloud computing, un gigantesco sistema di calcolo parallelo e distribuito realizzato come un multi-cluster di computer comprendente migliaia di nodi, utilizzato da Google per le sue applicazioni Internet. Il core software del sistema utilizzato da Google è costituito dalla libreria MapReduce, un framework su cui Google fa normalmente girare numerose applicazioni (tra le quali quelle connesse al motore di ricerca). MapReduce, oltre ad essere un framework di calcolo distribuito, è anche un modello di programmazione usato per processare ed analizzare grandi moli di dati in modo 2

8 Introduzione altamente parallelo. MapReduce, dividendo ogni job in più task, distribuisce la sua computazione su un grande numero (ad es. migliaia) di nodi worker all interno della piattaforma Cloud. Le implementazioni MapReduce (ad es. Google MapReduce e Apache Hadoop) sono basate su un modello master-slave. Gli utenti del sistema specificano la computazione in termini di una funzione map che processa coppie chiave/valore per generare un insieme di coppie chiave/valore intermedie, e di una funzione reduce che unisce tutti i valori associati alla stessa chiave intermedia. Un nodo utente sottomette un job presso un nodo master che seleziona i worker liberi e gli assegna dei map task o dei reduce task. Il fallimento di un worker è gestito con la ri-esecuzione del task su un altro worker, mentre il fallimento di un master non è gestito nelle implementazioni attuali di MapReduce, dato che i progettisti ritengono improbabile il fallimento in grandi cluster o in ambienti Cloud affidabili. Al contrario, i fallimenti dei nodi (incluso il fallimento del master) possono avvenire sia nei grandi cluster e ambienti Cloud, sia in ambienti dinamici, come le Grid, nei quali i nodi entrano ed escono dalla rete con una frequenza imprevedibile. Pertanto, offrire dei meccanismi per gestire i fallimenti del master è fondamentale per usare il modello MapReduce in ambienti dinamici, nei quali le attuali implementazioni potrebbero essere non affidabili. L obiettivo di questa tesi è lo studio dell estensione dell architettura master-slave delle attuali implementazioni di MapReduce, per renderle più adeguate ad ambienti Grid e Cloud dinamici. L estensione del modello MapReduce, discusso in questa tesi, sfrutta un modello Peer-to-Peer (P2P) per assegnare dinamicamente il ruolo del master e per gestire i fallimenti del master in un modo semplice e decentralizzato. Il sistema, chiamato P2P-MapReduce, è stato realizzato utilizzando JXTA, una piattaforma open source realizzata dalla Sun Microsystems per lo sviluppo di sistemi P2P. Il presente lavoro di tesi si articola in cinque capitoli. Il primo capitolo tratta la programmazione funzionale e parallela, i problemi di larga scala, e il modello MapReduce, con riferimento alle implementazione di Google e Apache Hadoop mettendo in evidenza il problema del singolo master. Il secondo capitolo descrive e analizza l architettura JXTA, le sue funzionalità, i suoi protocolli ed i componenti che offre ai programmatori per realizzare applicazioni P2P. Nel terzo capitolo viene presentata e discussa l architettura del sistema P2P-MapReduce, con riferimento ai 3

9 Introduzione componenti di JXTA utilizzati nell ambito del sistema. Nel quarto capitolo viene descritta l implementazione del sistema. Infine, nel quinto capitolo vengono presentati alcuni risultati sperimentali volti a valutare le prestazioni del modello P2P-MapReduce in relazione con il modello centralizzato. 4

10 1. MapReduce I l calcolo parallelo permette ad applicazioni complesse di gestire problemi di grandi dimensioni (petabyte di dati) in tempi relativamente brevi. Sempre più spesso, le elaborazioni parallele sono implementate distribuendo la computazione su un grande numero (migliaia) di computer ordinari e quindi non costosi. Google è uno dei principali utilizzatori dei sistemi di elaborazione parallela, il cui ambiente software di riferimento è MapReduce, un modello di programmazione usato per processare ed analizzare grandi moli di dati in modo altamente performante [3]. A partire da questo modello, sono stati realizzati diversi cloni open source tra cui il progetto di Apache chiamato Hadoop [4]. 5

11 Capitolo 1: MapReduce Questi sistemi offrono un framework che permette di implementare applicazioni estremamente parallele e soprattutto semplici da usare e gestire dal punto di vista del programmatore. Il sistema automaticamente parallelizza la computazione su un grande numero di macchine, gestisce i fallimenti delle singole sub-computazioni, schedula la comunicazione fra macchine con l obiettivo di rendere efficiente l uso della rete e dei dischi. Il modello MapReduce si ispira alle funzioni map e reduce presenti in Lisp e in altri linguaggi funzionali. Infatti, gli utenti del sistema specificano la computazione in termini di funzioni map che processano coppie chiave/valore per generare un insieme di coppie chiave/valore intermedie, e di una funzione reduce che unisce tutti i valori associati alla stessa chiave intermedia. Per comprendere le potenzialità del modello, si stima che Google riesce ad elaborare ogni giorno 20 petabyte di dati grazie alla sua infrastruttura basata su MapReduce [5]. Il presente capitolo è strutturato nei seguenti paragrafi: - introduzione alla programmazione parallela, mostrando i diversi approcci e le problematiche; - introduzione alla programmazione funzionale e alle funzione map e reduce di Lisp - visione del modello MapReduce in generale; - visione del modello MapReduce implementato da Google; - visione del modello open source Apache Hadoop; - problematiche del modello MapReduce: singolo master. 1.1 Problemi Web-Scale e programmazione parallela I problemi Web-scale, sono problemi di grande dimensione che analizzano grandi moli di dati come la scansione di documenti, analisi dei file di log, analisi del contenuto di pagine Web ecc. per ottenere vari tipi di dati derivati (indici invertiti, rappresentazione di grafi, riassunti del numero di pagine analizzate per giorno). 6

12 Capitolo 1: MapReduce Queste tipologie di problemi devono essere distribuiti su un centinaia o migliaia di macchine per potere essere completati in un tempo accettabile (questo porta risparmio di tempo e quindi di denaro). L approccio usato per risolvere questi tipi di problemi è l uso dell approccio divide et impera e di un grande numero di computer, interconnessi tra loro, su cui distribuire la computazione. Figura 1: Risoluzione di un problema con approccio divide et impera. Il problema iniziale, così come mostrato in Figura 1, viene ricorsivamente diviso in due o più sotto-problemi (fase di divisione) sino a che questi ultimi diventano di semplice risoluzione; quindi, si combinano le soluzioni al fine di ottenere la soluzione del problema dato (fase di combinazione). In questo modo è possibile affrontare in modo "semplice" problemi anche molto complessi. Inoltre, la natura del "divide" permette di parallelizzare la computazione aumentandone l'efficienza su sistemi distribuiti o multiprocessore. Infatti, i worker potrebbero essere thread della stessa CPU, diverse CPU di un sistema multi-processore o diverse macchine all interno di un sistema distribuito. Nei problemi di larga scala il divide et impera si ottiene semplicemente dividendo l enorme input (visto come un array) in sotto-array come mostrato in Figura 2. Figura 2: Divisione dell input in sotto-array. 7

13 Capitolo 1: MapReduce Esistono diversi approcci alla programmazione parallela di uso comune. I più comuni, che analizzeremo brevemente, sono: Shared Memory, Multithreading, Message Passing, Data Parallel e modelli ibridi (unione di diversi modelli) [6]. Nell approccio Shared Memory, i task condividono uno spazio di indirizzamento comune, in cui essi scrivono e leggono in modo asincrono. Vari meccanismi come lock/semafori vengono usati per un controllo di accesso alla memoria condivisa. Lo svantaggio di questo modello dal punto di vista del programmatore è che la nozione di proprietà dei dati non esiste. L approccio Message Passing viene realizzato con una serie di task che usano la loro memoria locale. I diversi task possono risiedere sulla stessa macchina o su un numero arbitrario di macchine. I task scambiano messaggi con scambio di dati inviando (send) e ricevendo (receive). I dati trasferiti usano delle operazione coordinate: una operazione di send deve avere una operazione corrispondente di receive. Dalla prospettiva del programmatore, le implementazioni del message passing comunemente comprendono una libreria di subroutine che sono inserite nel codice sorgente. Il programmatore è responsabile dell esplicitazione del parallelismo. Approccio Multithreading è uno dei più popolari modi per fare programmazione parallela. La complessità maggiore della programmazione multithread consiste nel coordinare l accesso di ogni thread ai dati condivisi. Si usano semafori (con operazioni di lock and unlock), monitor (wait, notify), barriere ed il programmatore deve prestare particolare attenzione ad evitare condizioni di dead lock e starvation. Nel modello Data Parallel la maggior parte della computazione parallela si concentra sull esecuzione di operazioni su una serie di dati. La serie di dati è in genere organizzati in una struttura comune, come ad esempio un array. Un insieme di task lavorano collettivamente sulla stessa struttura dati, e ogni task lavora su una differente partizione della stessa struttura dati. I task eseguono la stessa operazione (algoritmo) nella loro partizione di lavoro. Gli approcci sopra menzionati sono dei modelli generali che lasciano al programmatore tutta una serie di problematiche da gestire. Ad esempio, i vari sotto problemi relativi a parallelizzare la computazione, distribuire i dati, gestire i fallimenti, gestire la comunicazione tra worker e l accesso alla memoria condivisa, possono trasformare un 8

14 Capitolo 1: MapReduce codice sorgente inizialmente semplice in un codice complesso che deve affrontare tutte queste problematiche secondarie. Google ha implementato il modello MapReduce come reazione alla complessità dei vari modelli descritti precedentemente. Lo strumento permette di esprimere semplicemente quello che si vuole realizzare nascondendo al programmatore i dettagli della parallelizzazione, della tolleranza ai guasti, della distribuzione dei dati e del bilanciamento del carico in una libreria. Come detto sopra, il modello si ispira alle funzioni map e reduce presenti in Lisp e in altri linguaggi funzionali. Nel paradigma di programmazione funzionale, i dati sono esplicitamente passati tra funzioni come parametri o valori di ritorno che possono solo essere cambiati da una funzione attiva per volta. Immaginando che le funzioni siano connesse tra loro come in un grafo diretto aciclico e che non esista più nessuna dipendenza nascosta (attraverso lo stato condiviso), si ottiene il modello MapReduce. Grazie al modello funzionale si può parallelizzare la computazione e usare la riesecuzione come meccanismo principale per la tolleranza ai guasti. E importante evidenziare che MapReduce non è soltanto un nuovo modello di calcolo, ma anche un framework dotato di una interfaccia semplice e potente che consente la parallelizzazione automatica e la distribuzione di grandi quantità di computazione, in modo da ottenere alte prestazioni su grandi cluster di normali personal computer. 1.2 Programmazione funzionale MapReduce applica le idee delle operazioni map e reduce presenti in Lisp ed in altri linguaggi funzionali realizzandole in ambito distribuito. La programmazione funzionale è un paradigma di programmazione in cui il flusso di esecuzione del programma assume la forma di una serie di valutazioni di funzioni [7]. Esso si focalizza sulla definizione di funzioni, rispetto ai paradigmi procedurali e imperativi, che invece prediligono la specifica di una sequenza di comandi da eseguire. In questi ultimi, i valori vengono calcolati cambiando lo stato del programma attraverso delle assegnazioni; un programma funzionale, invece, è immutabile: i valori non vengono trovati cambiando lo stato del programma, ma costruendo nuovi stati a partire dai precedenti. 9

15 Capitolo 1: MapReduce Il Lisp (List Processor) è uno dei principali esempi di linguaggi funzionali. Di seguito vengono mostrati alcuni esempi relativi a questo linguaggio. Esempio di scrittura di funzione (notazione prefissa): (+ 2 3) 5 (* 3 5) 15 Definizione di funzioni ed uso: (define x 3) x (* x 5) 15 Nell esempio precedente la funzione define, crea una nuova funzione di nome x e la restituisce come risultato (meccanismo funzioni higher-order). Definizione di funzioni con parametri: (define (myfunc x y) (sqrt (+ (* x x) (* y y)))) (myfunc 3 4) 5 Definizione della funzione fattoriale: (define (factorial n) ( if (= n 1) 1 (* n (factorial (n-1))))) (factorial 5) 120 Uso delle liste (dati primitivi): ( ) ((1 2)(a b)(5 a)) Le due funzioni che ci interessano maggiormente sono: - la funzione map: fai qualcosa su ogni elemento della lista. Una funzione f è applicata ad ogni elemento di una lista. Il risultato è una nuova funzione (Figura 3); Figura 3: Funzionamento della funzione map in Lisp. - la funzione reduce (anche descritta come fold, accumulate, compress or inject): combina i risultati di una lista in qualche modo. Esiste un valore iniziale (accumulatore) che viene passato come parametro alla funzione f insieme 10

16 Capitolo 1: MapReduce all array da analizzare. Il risultato viene salvato nell accumulatore. Si ripete l iterazione per ogni elemento della lista. Il risultato è il valore finale dell accumulatore (Figura 4). Esempio di funzione map: Figura 4: Funzionamento della funzione reduce in Lisp. (define quad(x) (* x x)) (map quad ( )) ( ) Il primo parametro è la funzione da far eseguire alla funzione map, il secondo l array di dati. Esempio di funzione reduce: (reduce + 0 ( )) 15 Il primo parametro è la funzione da far eseguire alla funzione reduce, il secondo il valore iniziale dell accumulatore, il terzo l array di dati. Esempio che usa insieme le funzioni map e reduce: (define quad(x) (* x x)) (define sum-of-quad(x) (reduce + 0 (map quad x))) (sum-of-quad ( )) 55 Il passaggio dalla programmazione funzionale al modello MapReduce avviene con le seguenti funzionalità che il modello stesso offre: - distribuire l esecuzione delle operazioni delle map su diversi nodi nella rete; - prendere i risultati intermedi dei vari nodi e aggregarli insieme usando una funzione reduce; - usare un file system distribuito dove prendere i dati iniziali, salvare i dati intermedi e salvare i dati finali. Tale modello offre implicitamente il parallelismo in quanto è sia possibile parallelizzare l esecuzione delle operazioni di map essendo isolate tra loro, e sia possibile riordinare i risultati mediante la funzione reduce. Il modello, una volta implementato, offre 11

17 Capitolo 1: MapReduce un infrastruttura distribuita che lascia astratte le sole funzioni map e reduce. Il compito principale del programmatore è quello di descrivere tali funzioni Confronto tra programmazione imperativa e funzionale La programmazione imperativa è un paradigma di programmazione secondo cui un programma viene inteso come un insieme di istruzioni, ciascuna delle quali può essere pensata come un "ordine" che viene impartito alla macchina virtuale del linguaggio di programmazione utilizzato. Quindi, mentre i programmi imperativi tendono ad enfatizzare la sequenza di comandi da eseguire per arrivare al risultato, i programmi funzionali tendono a enfatizzare la composizione e la disposizione delle funzioni, spesso senza specificare esplicitamente i passi. Di seguito viene mostrato un esempio che mostra le due soluzioni, imperativa e funzionale, di uno stesso problema: // stile imperativo target = new LinkedList(); // crea una lista vuota for (item in source_list){ // itera su ogni elemento della lista di input trans1 = G(item) // applica la funzione G() trans2 = F(trans1) // applica la funzione F() target.append(trans2) // aggiunge il risultato al target // stile funzionale compose2 = lambda A, B: lambda x: A(B(x)) // Definisce come applicare due //generiche trasformazioni A e B target = map(compose2(f, G), source_list) // Applica due specifiche funzioni //F e G a ogni elemento in input L esempio evidenzia lo stile imperativo che descrive le fasi della costruzione per arrivare al risultato finale, e lo stile funzionale che descrive il rapporto matematico, a livello di funzioni, tra input e output [8]. Come si può intuire dall esempio, nella programmazione funzionale non c è alcuna esplicita allocazione di memoria o assegnazione di variabili. Questa operazioni avvengono automaticamente ogni volta viene invocata una funzione: l'allocazione di memoria avviene per creare lo spazio necessario per i parametri e il valore di ritorno e l'assegnazione avviene per copiare i parametri nel nuovo spazio allocato e per copiare il valore di ritorno alla funzione chiamante. 12

18 Capitolo 1: MapReduce Entrambe le operazioni avvengono solo alla chiamata della funzione e al ritorno da essa e quindi gli effetti collaterali sono eliminati. Eliminando gli effetti collaterali dalle funzioni, si ottiene la cosiddetta trasparenza referenziale [9], la quale assicura che il risultato di una funzione sia lo stesso per uno stesso insieme di parametri, indifferentemente da quando e dove questa funzione venga valutata. La trasparenza referenziale rende molto più facile sia la dimostrazione della correttezza del programma sia l'identificazione automatica delle computazioni indipendenti per l'esecuzione parallela. Per capire il concetto di trasparenza referenziale viene introdotto un esempio. Si consideri la chiamata al metodo getinput(), che non accetta parametri e restituisce l'input di una tastiera. Una chiamata a questo metodo restituisce un valore che dipende solo dal testo che l utente digita, e quindi più chiamate alla stessa funzione, tutte con lo stesso parametro (in questo caso un parametro "vuoto"), possono rendere valori differenti. 1.3 MapReduce MapReduce è un paradigma di programmazione applicabile a molti problemi di grande dimensioni. Un problema tipico MapReduce viene risolto nei seguenti passi: - iterare su un grande numero di record; - estrarre qualcosa di interessante da ogni record (map); - ordinare i risultati intermedi e distribuirli sui relativi reducer; - aggregare i risultati intermedi (reduce); - generare l output finale. L utente deve specificare la funzione map e la funzione reduce. La funzione map processa una coppia chiave/valore per generare un insieme di coppie intermedie chiave/valore e la funzione reduce unisce tutti i valori intermedi associati alla stessa chiave intermedia - map(k1,v1) -> list(k2,v2) - reduce(k2, list (v2)) -> list(v2) 13

19 Capitolo 1: MapReduce La funzione map prende una coppia di chiave/valori in un certo dominio e ritorna una coppia chiave/valori in un altro dominio. Essa è applicata in parallelo su ogni elemento dell input del dataset. Questo produce una lista (k2,v2) di coppie per ogni chiamata. La funzione reduce prende una coppia chiave/lista di valori in certo dominio per produrre una lista di valori nello stesso dominio. La funzione tipicamente produce o nessun valore o un valore (anche se la chiamata permette di ritornare una lista di valori). Pertanto il framework MapReduce trasforma una lista di chiave/valore in una lista chiave/valore (Figura 5). Figura 5: Risoluzione di un problema con approccio MapReduce. Questo comportamento è lievemente differente dalla combinazione delle funzioni map e reduce nella programmazione funzionale, che accetta come input una lista ma restituisce un unico valore che combina tutti i valori ritornati dalla funzione map. Normalmente il programmatore specifica anche una funzione partition: - partition (k, numero di partizioni ) partizione per k Che permette di avere operazioni di reduce in parallelo per chiavi diverse. La funzione partition prende come input la chiave intermedia e il numero di reducer, e restituisce il reducer che si occupa della chiave intermedia. Normalmente la funzione precedente è una semplice funzioni hash della chiave: hash(k ) mod n. MapReduce gestisce tutta una serie di problematiche rendendole invisibili al programmatore. Infatti la libreria MapReduce si occupa in automatico di: 14

20 Capitolo 1: MapReduce - gestire la distribuzione dei dati o I dati iniziali ai map worker o Trasferisce le coppie chiavi-valore intermedie ai reduce worker o Ottimizzare localmente, quando possibile - gestire la schedulazione o assegnare i worker ai task di tipo map o reduce - gestire i guasti o individua i worker falliti e ri-esegue i task ad essi assegnati Il sistema usa alcune ottimizzazione: - normalmente muove il processo dove si trovano i dati da analizzare; - usa la funziona combiner eseguita sulla stessa macchina del mapper come una sorta di mini-reduce sui dati appena generati. In questo modo riesce ad inviare al reducer dati più elaborati in modo da risparmiare banda; - risolve il problema dell esistenza di mapper lenti che potrebbero rallentare l intera computazione. Infatti il reducer deve attendere tutti i risultati dei vari mapper per poter aggregare i dati intermedi. Per evitare di trovare macchine lente che rallentano l intero processo viene introdotto una esecuzione ridondante di map, in modo tale che il primo mapper che termina l esecuzione invia i dati al reducer. Ogni operazione è eseguita su un file system distribuito che serve a collegare i differenti processi. Un algoritmo parallelo è usualmente strutturato come esecuzioni multiple di MapReduce (Figura 6). Figura 6: Risoluzione di un problema con esecuzioni multiple di MapReduce. 15

21 Capitolo 1: MapReduce DataFlow Nel seguente paragrafo viene analizzato il modello MapReduce dal punto dei vista della trasformazione dei dati di input fino ai dati di output. Le varie operazioni, mostrate in Figura 7, possono essere riassunti nelle seguenti fasi: split, sort, merge e join. Figura 7: MapReduce con esempio. L intero processo di trasformazione dei dati viene descritto in dettaglio nei seguenti passi: - Un job MapReduce inizia da un insieme predefinito di dati di input (normalmente posizionanti in una directory di un file system distribuito). Un processo master (che è il coordinatore centrale) viene lanciato e ottiene una job configuration, che descrive il job da eseguire. - In accordo con la job configuration, il master lancia diversi processi mapper e reducer su diverse macchine. Lancia inoltre un input reader per leggere i dati da dalla directory di input (localizzata nel file system distribuito). L input reader partiziona i dati letti e li distribuisce sui vari mapper. Questa fase è detta split e avvia il parallelismo. - Dopo aver ottenuto la parte di dati, il processo mapper esegue una funzione map (fornita dall utente) e produce una collezione di coppie (chiave/valore). Ogni coppia di risultati viene ordinata e in accordo alla chiave inviata al corrispondente processo reducer. Questa è la fase sort. 16

22 Capitolo 1: MapReduce - Tutte le coppie con la stessa chiave intermedia verranno inviati allo stesso processo reducer, che colleziona tutti le coppie della stessa chiave intermedia e invoca una funzione reduce (fornita dall utente) che produce una singola coppia (chiave, valori aggregati) come risultato. Questa fase è detta merge. - L output del processo reducer viene raccolto dall Output writer, che è la fase effettiva di join che fa terminare il parallelismo MapReduce Esempio: WordCount Il WordCount è un classico esempio utilizzato per descrivere il funzionamento del MapReduce. L obiettivo dell esempio è quello di contare il numero di occorrenze di ogni parola all interno di una larga collezione di documenti. L input è un insieme di coppie chiave/valore, dove la chiave rappresenta il nome del documento e il valore il testo del documento, mentre l output è una lista di coppie chiave/valore, dove la chiave è una parola e il valore è il numero delle occorrenze. Di seguito viene mostrato il pseudo codice del WordCount: map(key, value){ //key: nome del documento; value: testo del documento for each word w in value: emit(w, 1) reduce(key, values){ //key: una parola; value: un iteratore di interi result = 0 for each count v in values: result += v emit(result) La funzione map restituisce per ogni parola il conteggio della sua occorrenza (in questo esempio semplicemente 1 ). La funzione reduce somma insieme i conteggi emessi per una parola in particolare. Di seguito viene mostrato, in Figura 8, un esempio grafico del WordCount utilizzando MapReduce. 17

Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com

Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com Elaborazione dati parallela con map/reduce Roberto Congiu rcongiu@yahoo.com Indice delle slide Introduzione a Map/Reduce Descrizione del modello Implementazione Ottimizzazioni Introduzione Map/Reduce e

Dettagli

Una architettura peer-topeer per la visualizzazione 3D distribuita

Una architettura peer-topeer per la visualizzazione 3D distribuita Una architettura peer-topeer per la visualizzazione 3D distribuita Claudio Zunino claudio.zunino@polito.it Andrea Sanna andrea.sanna@polito.it Dipartimento di Automatica e Informatica Politecnico di Torino

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Modelli e Sistemi di Elaborazione Peer-to-Peer

Modelli e Sistemi di Elaborazione Peer-to-Peer Università degli Studi della Calabria Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Matematica Modelli e Sistemi di Elaborazione Peer-to-Peer Concetti di base sul Peer-to-Peer: -

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque? NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

IT Cloud Service. Semplice - accessibile - sicuro - economico

IT Cloud Service. Semplice - accessibile - sicuro - economico IT Cloud Service Semplice - accessibile - sicuro - economico IT Cloud Service - Cos è IT Cloud Service è una soluzione flessibile per la sincronizzazione dei file e la loro condivisione. Sia che si utilizzi

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Gartner Group definisce il Cloud

Gartner Group definisce il Cloud Cloud Computing Gartner Group definisce il Cloud o Cloud Computing is a style of computing in which elastic and scalable information technology - enabled capabilities are delivered as a Service. Gartner

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

C Cloud computing Cloud storage. Prof. Maurizio Naldi

C Cloud computing Cloud storage. Prof. Maurizio Naldi C Cloud computing Cloud storage Prof. Maurizio Naldi Cos è il Cloud Computing? Con cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio, di memorizzare/

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli

MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli Università degli Studi di Milano Dept. of Computer Science MapReduce Matteo Camilli matteo.camilli@unimi.it http://camilli.di.unimi.it Progettazione del Software a.a. 2012/13 1 Motivazioni Vogliamo processare

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Dettagli

Scenario di Progettazione

Scenario di Progettazione Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Sistemi Operativi. Conclusioni e nuove frontiere

Sistemi Operativi. Conclusioni e nuove frontiere Sistemi Operativi (modulo di Informatica II) Conclusioni e nuove frontiere Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Definizione di sistema operativo Evoluzione futura

Dettagli

Cloud Computing....una scelta migliore. ICT Information & Communication Technology

Cloud Computing....una scelta migliore. ICT Information & Communication Technology Cloud Computing...una scelta migliore Communication Technology Che cos è il cloud computing Tutti parlano del cloud. Ma cosa si intende con questo termine? Le applicazioni aziendali stanno passando al

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

Dettagli

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g Sommario Oracle Database 10g (laboratorio) Dr. Daniele Barone Dr. Simone Grega 1 2 Oracle Database 10g Offre alte qualità del servizio: Performance; Scalabilità; Sicurezza; Affidabilità. Gestione autonoma

Dettagli

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Gestione delle transazioni Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Transazioni v L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Hardware delle reti LAN

Hardware delle reti LAN Hardware delle reti LAN Le reti LAN utilizzano una struttura basata su cavi e concentratori che permette il trasferimento di informazioni. In un ottica di questo tipo, i computer che prendono parte allo

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI

E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI E-MAIL INTEGRATA Ottimizzazione dei processi aziendali Con il modulo E-mail Integrata, NTS Informatica ha realizzato uno strumento di posta elettronica

Dettagli

IL CLOUD COMPUTING DALLE PMI ALLE ENTERPRISE. Salvatore Giannetto Presidente Salvix S.r.l

IL CLOUD COMPUTING DALLE PMI ALLE ENTERPRISE. Salvatore Giannetto Presidente Salvix S.r.l IL CLOUD COMPUTING Salvatore Giannetto Presidente Salvix S.r.l Agenda. - Introduzione generale : il cloud computing Presentazione e definizione del cloud computing, che cos è il cloud computing, cosa serve

Dettagli

Università degli Studi di Salerno

Università degli Studi di Salerno Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Introduzione all Architettura del DBMS

Introduzione all Architettura del DBMS Introduzione all Architettura del DBMS Data Base Management System (DBMS) Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo

Dettagli

Sistemi centralizzati e distribuiti

Sistemi centralizzati e distribuiti Sistemi centralizzati e distribuiti In relazione al luogo dove è posta fisicamente la base di dati I sistemi informativi, sulla base del luogo dove il DB è realmente dislocato, si possono suddividere in:

Dettagli

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 StruxureWare Data Center ExpertDispositivo virtuale Il server StruxureWare Data Center Expert 7.2 è disponibile come dispositivo virtuale, supportato

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Esercitazione su Windows. Introduzione al calcolatore Introduzione a Windows

Esercitazione su Windows. Introduzione al calcolatore Introduzione a Windows Esercitazione su Windows Introduzione al calcolatore Introduzione a Windows Sistemi Operativi Moderni Multi-Utente Multi-Processo Strutturati a Cipolla Dispongono di Interfaccia Grafica (GUI) oltre che

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Una tabella Pivot usa dati a due dimensioni per creare una tabella a tre dimensioni, cioè una tabella

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

In estrema sintesi, NEMO VirtualFarm vuol dire:

In estrema sintesi, NEMO VirtualFarm vuol dire: VIRTUAL FARM La server consolidation è un processo che rappresenta ormai il trend principale nel design e re-styling di un sistema ICT. L ottimizzazione delle risorse macchina, degli spazi, il risparmio

Dettagli

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Calcolatori. Il Livello delle Applicazioni Reti di Calcolatori Il Livello delle Applicazioni Il DNS Gli indirizzi IP sono in formato numerico: sono difficili da ricordare; Ricordare delle stringhe di testo è sicuramente molto più semplice; Il Domain

Dettagli

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server

Dettagli

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo. Pag. 1 di 5 6FRSR analizzare problemi complessi riguardanti la gestione di un sito interattivo proponendo soluzioni adeguate e facilmente utilizzabili da una utenza poco informatizzata. 2ELHWWLYL GD UDJJLXQJHUH

Dettagli

Introduzione al Cloud Computing

Introduzione al Cloud Computing Risparmiare ed innovare attraverso le nuove soluzioni ICT e Cloud Introduzione al Cloud Computing Leopoldo Onorato Onorato Informatica Srl Mantova, 15/05/2014 1 Sommario degli argomenti Definizione di

Dettagli

Software di base. Corso di Fondamenti di Informatica

Software di base. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Software di base Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli