Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message...

11
1 Università degli Studi di Bari- Aldo Moro Dipartimento di Informatica CdL MAGISTRALE in INFORMATICA A.A. 2015-16 corso di Sistemi Distribuiti Modulo 1 > Introduzione e concetti generali Prof. S.Pizzutilo Sistema distribuito Il punto chiave: il concetto di INTERAZIONE: momento di sincronia/comunicazione fra entità concorrenti. Un Sistema Distribuito è un insieme di processori indipendenti: interconnessi da una rete di comunicazione, in cui ciascun processore ha proprie risorse (processore, memoria locale, registri e software di base ed applicativo), che cooperano per condividere risorse ovunque distribuite. intranet ISP desktop computer: backbone satellite link server: network link: AP La comunicazione tra due processori qualsiasi (processi su processori diversi) del sistema avviene attraverso : - lo scambio di messaggi sulla rete di comunicazione o - mediante la condivisione di risorse.

Transcript of Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message...

Page 1: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

1

Università degli Studi di Bari- Aldo Moro Dipartimento di Informatica

CdL MAGISTRALE in INFORMATICA

A.A. 2015-16

corso di Sistemi Distribuiti

Modulo 1 > Introduzione e concetti generali

Prof. S.Pizzutilo

Sistema distribuito

Ø  Il punto chiave: §  il concetto di INTERAZIONE: momento di sincronia/comunicazione

fra entità concorrenti.

Un Sistema Distribuito è un insieme di processori indipendenti: •  interconnessi da una rete di comunicazione, •  in cui ciascun processore ha proprie risorse (processore, memoria locale, registri e software di base ed applicativo), •  che cooperano per condividere risorse ovunque distribuite.

intranet ISP

desktop computer:

backbone

satellite link server:

network link:

☎ ☎

AP

La comunicazione tra due processori qualsiasi (processi su processori diversi) del sistema avviene attraverso : -  lo scambio di messaggi

s u l l a r e t e d i comunicazione o

-  mediante la condivisione di risorse.

Page 2: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

2

Programma del corso Sistemi Distribuiti (6 CFU)

Ø  Introduzione e terminologia Ø  I princìpi fondamentali :

ü  Inter-process communication (IPC) ü  Concorrenza e sincronizzazione di processi remoti ü  La sicurezza e la mutua autenticazione nei sistemi distribuiti

Ø  Le architetture dei sistemi distribuiti: ü  Architetture centralizzate: Sistemi client-server sincroni e asincroni; stratificazione delle applicazioni ed

architetture multilayered. ü  Architetture decentralizzate: Sistemi peer-to-peer.

Ø  Tipologie di architetture: ü  Rete overlay; Rete overlay non strutturata; Superpeer; reti Ibride ü  Cluster: Architettura e tecniche di comunicazione; funzionalità (Fail-over service, Load-balancing, H P C) ü  Grid: Architettura e tecniche di comunicazione ü  CLOUD Computing System ü  SOA ü  I Sistemi pervasivi: Sistemi domestici (PDA, smart phone, recommender systems, …), Sistemi per la sanità

(sistemi Body Area Network), Reti di sensori (Mesh network, Mobile ad hoc network,…)

  Richiami di UNIX: kernel, file system, processi, thread, daemon, comandi di Network administration, il NTFS,

  La comunicazione tra processi remoti : gli strumenti ( le socket, RPC, JAVA RMI)

Testi consigliati e riferimenti bibliografici:

  A. Tanenbaum e M. van Steen, Sistemi Distribuiti ed. Pearson-Prentice Hall, seconda edizione 2007.

Articoli, dispense e risorse on line distribuiti o segnalati durante il corso

http://www.di.uniba.it/~disys

Page 3: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

3

Caratteristiche dei sistemi distribuiti (1)

ü  Condivisione delle risorse (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su tutti gli utenti (printer, dischi, data base, array processor).

•  Guadagno in tempo dovuto alla possibilita' di esecuzione parallela, o di usare un host meno carico o con particolari caratteristiche (floating point...) •  Reliability: se il sistema e' ridondante si puo' continuare a lavorare (ridondanza hardware, software, dati). Occorre in questo caso rilevare il fallimento di un nodo e trasferirne le funzioni ad un altro. Infine si reintegra il nodo, dopo averlo aggiustato .

Caratteristiche dei sistemi distribuiti (2)

ü  Openess E’ la caratteristica che determina se e come un sistema può essere esteso. Si basa su regole standard che descrivono la sintassi (Interfacce scritte in IDL) e la semantica dei servizi (es. XML), quali ad esempio i protocolli di comunicazione ed i servizi di condivisione delle risorse (Interoperabilità e portabilità).

ü  Concurrency Proprietà in base alla quale più processi possono coesistere su un’unica risorsa.. Richiede sincronizzazione.

ü  Scalability Proprietà che permette di non cambiare il sistema o il software applicativo per passare da una scala dimensionale all’altra.

ü  Fault tolerance La tolleranza del sistema ai guasti si ottiene o mediante la ridondanza hardware o mediante tecniche di software recovery.

Page 4: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

4

ü  Trasparenza : 4 Access transparency: permette l’accesso a risorse locali e remote usando operazioni identiche. 4 Location transparency: consente l’accesso alle risorse senza che si conosca la loro dislocazione. 4 Concurrency transparency: permette a più processi di operare in maniera concorrente

usando risorse condivise senza generare collisioni. 4 Replication transparency: permette l’uso di istanze multiple delle risorse per migliorare le

prestazioni del sistema complessivo senza che gli utenti o le applicazioni sappiano se tali istanze siano o meno duplicati di risorse.

4 Failure transparency: permette di nascondere gli eventuali fault, consentendo agli utenti o alle applicazioni di terminare i loro task malgrado l’occorrenza di fault h/s.

4 Mobility transparency: permette lo spostamento delle risorse all’interno del sistema distribuito senza alcun effetto sulle operazioni degli utenti .

4 Performance transparency: permette di riconfigurare il sistema per migliorare le prestazioni al variare dei carichi di lavoro.

4 Scaling transparency: permette l’espansione del sistema e delle applicazioni senza cambiare la struttura del sistema stesso o gli algoritmi usati delle applicazioni.

Caratteristiche dei sistemi distribuiti (3)

Analisi di un Sistema Distribuito

Sistema Distribuito dal punto di vista... •  Hardware (nodi ed infrastruttura di comunicazione)

•  modello logico di calcolo

•  del Sistema Operativo

•  dei linguaggi

MIMD, Cluster, Grid, Virtualizzazione, LAN

terminali, client/server, P2P, CSCW, WEB centric

S.O. centralizzato, di rete, distribuito, group toolkit, middleware

Linguaggi basati su variabili globali (concurrent Pascal), linguaggi basati su scambio di messaggi (Occam, ADA), linguaggi per la programmazione in rete (Java, CORBA), linguaggi WEB centric (TCL/TK, CGI, HTML, XML…)

Page 5: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

5

Parallelismo fisico Topologia strutturale

Memoria C.

Memoria C.

mp1

mp1

mp2

mp2

mp3

mp3

mp1 mp2 mp3

Mem.loc.

Mem.loc.

Mem.loc. Mem.loc.

Mem.loc. Mem.loc.

multiprocessor

multiprocessor con mem. locali

multicomputer

SD pdv Hardware

intranet ISP

backbone

☎ ☎ ☎ ☎

1

3(0, 1, 2)

4

89

0(3, 4)

(7, 8, 9)

… ma il punto di vista hardware non basta, occorre esaminare gli aspetti relativi al software in grado di far cooperare (comunicare) le componenti HW.

1)  I problemi del calcolo parallelo e/o distribuito sono risolvibili con programmi scomponibili in procedure indipendenti ( processi - thread ) eseguiti su processori diversi.

2)  La dimensione (la granulosità) di ogni singolo processo/thread deve poter essere contenuta in ciascuna unità di calcolo (livelli diversi di coupling).

Software: COARSE GRAINED ( dati trasmessi poco frequentemente dopo una computazione pesante su ogni processore) per il calcolo distribuito.

FINE GRAINED PARALLELISM (task eseguiti in poco tempo e realizzati con piccole qualtità di codice e dati rappresentati in poche parole di memoria e trasmessi frequentemente tra i processori) per il calcolo parallelo.

Hardware: LOOSELY COUPLED SYSTEMS distributed computing systems, own local

memory, richiedono poche interazioni tgra i processori, reti. TIGHTLY COUPLED SYSTEMS parallel processing systems , shared central memory, richiedono molte interazioni.

Parallel and Distributed Computing

SD pdv modello logico di calcolo

Page 6: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

6

SD pdv modello logico di calcolo

Parallel Computing

3) Deve esistere una strategia complessiva di interazione tra i nodi della computazione: DA… una strategia CONTROL FLOW (flusso di controllo governato da istruzioni di tipo jump, salti condizionati, loop, iterazioni, subroutine, call,…) che si riferisce all’ordine con cui le singole istruzioni o chiamate a procedura vengono eseguite o valutate in un programma. (Control Flow Graph). A… una strategia DATA FLOW (nella quale l’esecuzione di un programma è governata dal flusso di dati inseriti o prodotti nel sistema, o meglio, il flusso di esecuzione delle istruzioni o delle funzioni è determinato dai tipi di dati in input ed in output dal sistema, dalla loro localizzazione sui diversi processori, dal tempo della loro produzione, dalla localizzazione della loro destinazione ed in definitiva dal loro contesto produttivo ). (Data Flow Diagram) 4) I linguaggi paralleli ( linguaggi con costrutti linguistici appropriati, che permettano di eseguire task diversi in parallelo ) ad es. PARLOG, Concurrent Pascal, Smalltalk, Java,…

Modelli di comunicazione

Client-server Function shipping Group multicast

1) trasmissione di una richiesta da un processo (client) ad un altro processo (server) 2) esecuzione della richiesta sul server 3) trasmissione di una risposta dal server al client Ogni richiesta contiene un identificatore che viene usato anche dal server per trasmettere la risposta al client.

E’ una estensione del modello client-server in cui il client non invia un messaggio con solo dati, bensì la procedura intera con cui il server deve operare sui dati. Il server in tal caso opera come ambiente di esecuzione (o interprete) dei programmi che il client gli invia.

Cor r i sponde ad un message passing con un target multiplo, formato da un gruppo di processi destinatari/server. In questo caso ad un singolo send corrisponde un receive eseguito da ciascun membro di un gruppo di processi. • Per localizzare un oggetto. • Per aumentare fault tolerance. • Per un multiple update.

Peer to Peer

Ogni computer (nodo autonomo ed indipendente) può operare indifferentemente come client o come server, consentendo accessi condivisi a diverse risorse (come file, periferiche e sensori) senza la necessità di un server centrale. Ciò comporta che ciascun computer della rete utilizzi programmi compatibili che consentano questo tipo di comunicazione.

SD pdv Logico

…dal client-server al P2P

Page 7: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

7

Il Peer to Peer SD pdv Logico

Una rete Peer to Peer (P2P) è una rete in cui ogni computer ( n o d o a u t o n o m o e d indipendente) può operare indifferentemente come client o come server, consentendo accessi condivisi a diverse risorse (come file, periferiche e sensori) senza la necessità di un server centrale. Ciò comporta che ciascun computer della rete utilizzi programmi compatibili che consentano questo tipo di comunicazione.

P2P ibrido

Sono necessari opportuni sistemi di sincronizzazione

I Sistemi Operativi

Insieme di Programmi che controllano le risorse di un computer e forniscono agli utenti (programmi applicativi ed utenti umani) servizi di gestione delle risorse fisiche ed interfacce (macchina virtuale) più facili da usare rispetto alla macchina reale.

Network Operating System

Distributed Operating System

Immagine non trasparente trasparente

Autonomia ogni S.O. gestisce i suoi processi i processi sono gestiti globalmente

Fault tolerance scarsa alta

SD pdv Sistema Operativo

Page 8: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

8

Sistemi Operativi multistrato

Librerie standard

gui Xwindow

Programmi di utilità (shell, editor, compilatori,…)

HARDWARE

SISTEMA OPERATIVO

utente

SD pdv Sistema Operativo

client server • OS • DSM Distr. System Management • GUI • Applicazioni,…..

• OS • DSM • GUI • DBMS • OLTP • WEB.

Servizi specifici ODBC, RPC, Mail, ORB,HTTP

DSM SNMP , ORB , CMIP

NOS DFS Security Directory Peertopeer, messaging, RPC

Transport stack

NetBIOS,TCP/IP, IPX SNA

SD pdv Sistema Operativo

Il Middleware

Per middleware si intende: Ø  uno strato software “in mezzo” tra il sistema operativo, ed i programmi applicativi, Ø  una classe di tecnologie software sviluppate per aiutare gli sviluppatori nella gestione della complessità e

della eterogeneità presenti nei sistemi distribuiti, Ø  software che fornisce un’astrazione di programmazione distribuita – un modello computazionale uniforme, Ø  software per mascherare alcune eterogeneità degli elementi sottostanti – reti, hardware, sistemi operativi,

linguaggi di programmazione, …

L’evoluzione nello sviluppo dei sistemi distribuiti e l’evoluzione degli strumenti di middleware sono correlate

Page 9: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

9

I servizi del S.O. nei Sistemi Distribuiti

Applicazioni, servizi

hardware piattaforma SIstema Operativo (kernel)

Middleware

Applicazioni, servizi

Computer &

Middleware

OS: kernel, librerie & server

network hardware

OS1

Computer & network hardware

Nodo 1 Nodo 2

Processi, threads, comunicazioni...

OS2 Processi, threads,

comunicazioni, ...

piattaforma

SD pdv Sistema Operativo

Comunicazione tra processi (IPC)

argomenti

risultato Procedura Chiamante

Procedura Chiamata argomenti argomenti risultati risultati

messaggio messaggio richiesta risposta messaggio messaggio

risposta richiesta RETE

Client Processo Chiamante

Server Processo Chiamato

Client Stub Server Stub

Chiamata a procedura remota

Chiamata a procedura locale

SD pdv Sistema Operativo

Page 10: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

10

I Processi

Ready pronto ad essere eseguito, ma non in esecuzione running in esecuzione waiting in attesa di un evento o di un dato

Un processo è un programma in esecuzione. Un processo necessita di alcune risorse per assolvere il proprio compito: tempo di CPU, memoria, file e dispositivi di I/O.

Ø  Il SO è responsabile delle seguenti attività in connessione con la gestione dei processi: §  Creazione e cancellazione di processi. §  Sospensione e riattivazione di processi. §  Fornire meccanismi per:

•  sincronizzazione di processi •  comunicazione fra processi

SD pdv Sistema Operativo

Thread

  Un thread (o lightweight process, LWP) è una unità base dell’uso della CPU e consiste di : Ø  un program counter Ø  un set di registri Ø  lo stack address space.

  Un thread condivide con altri thread : Ø  sezioni di codice Ø  sezioni di dati Ø  risorse del Sistema Operativo.

  Un insieme di thread ed il loro ambiente è detto “processo” o “task”.

  Un processo tradizionale,( o heavyweight process, HWP) corrisponde ad un task con un thread singolo.

SD pdv Sistema Operativo

Page 11: Università degli Studi di Bari- Aldo Moro Dipartimento di ...disys/introsidys15.pdf · message passing con un target multiplo, formato da un gruppo di processi destinatari/server.

11

Thread in Solaris2 SD pdv Sistema Operativo