11
1 Università degli Studi di Bari- Aldo Moro CdL MAGISTRALE in INFORMATICA A.A. 2013-2014 Sistemi Distribuiti Prof. S.Pizzutilo Programma del corso Sistemi Distribuiti (6 CFU) Introduzione e terminologia I princìpi fondamentali : Inter-process communication (IPC) Concorrenza e sincronizzazione di processi remoti 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 (Sistemi edge-server, Sistemi distribuiti collaborativi) Cluster: Architettura e tecniche di comunicazione; funzionalità (Fail-over service, Load-balancing, High Performance Computing) Grid: Architettura e tecniche di comunicazione; funzionalità (Storage, Data Base, Process control, HPC) 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)

Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

1

Università degli Studi di Bari- Aldo Moro

CdL MAGISTRALE in INFORMATICA

A.A. 2013-2014

Sistemi Distribuiti

Prof. S.Pizzutilo

Programma del corso Sistemi Distribuiti (6 CFU)

Ø  Introduzione e terminologia Ø  I princìpi fondamentali :

ü  Inter-process communication (IPC) ü  Concorrenza e sincronizzazione di processi remoti

Ø  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 (Sistemi edge-server, Sistemi distribuiti

collaborativi) ü  Cluster: Architettura e tecniche di comunicazione; funzionalità (Fail-over service, Load-balancing, High

Performance Computing) ü  Grid: Architettura e tecniche di comunicazione; funzionalità (Storage, Data Base, Process control, HPC) ü  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)

Page 2: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

2

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

Sistema distribuito

Ø  Tipici aspetti dei sistemi distribuiti: §  comunicazione: trasmissione di informazione fra entità, §  sincronizzazione: nozione di “evento” comune, §  concorrenza: evoluzione contemporanea delle entità, §  non determinismo: latenza reti, perdita messaggi.

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

Page 3: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

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: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

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)

Architettura 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: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

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 sono risolvibili con programmi scomponibili in procedure

indipendenti ( processi - thread )

2)  La dimensione di ogni singolo processo deve poter essere contenuta in ciascuna unità di calcolo.

Software: COARSE GRAINED e FINE GRAINED PARALLELISM

Hardware: LOOSELY COUPLED SYSTEMS distributed computing systems, own local memory, richiedono poche interazioni, reti TIGHTLY COUPLED SYSTEMS parallel processing systems , shared central memory, richiedono molte interazioni

3) Deve esistere una strategia complessiva di interazione tra i nodi. ( da…CONTROL FLOW a…DATA FLOW )

4) I linguaggi paralleli ( con strutture linguistiche appropriate )

Parallel Computing SD pdv modello logico di calcolo

Page 6: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

6

Il modello di comunicazione : dal client-server al P2P

Nodo Server

Fornisce servizi e contiene dati che

possono essere condivisi

Nodo Client Fruisce dei servizi

del server

Infrastruttura di

collegamento

richiesta

risposta

•  Protocollo di comunicazione: insieme di regole che disciplinano la comunicazione tra i diversi nodi della rete (es. TCP/IP) Ogni nodo è identificato mediante un indirizzo numerico (indirizzo IP)

SD pdv Logico

Ø  L’Infrastruttura di collegamento è un sistema di comunicazione che collega diversi nodi.

§  nodi: sistemi di elaborazione, (host) §  connettori: cavi coassiali, cavi UTP, fibre

ottiche, onde radio, bridge, gateway…

Client e Server tipici di un sistema distribuito

•  File Server : insieme di processi che garantiscono l’accesso ai dischi o ad altri dispositivi di memorizzazione condivisi da parte di più utenti. Sono controllati la memorizzazione ed il ritrovamento dei files. Tali processi garantiscono protezione da scrittura e lettura non autorizzate (file system).

•  Printer Server : Dispositivi H/S che permettono ai diversi utenti del sistema di concedere accesso al servizio di stampa da un nodo qualsiasi del sistema in condivisione.

•  Mail Server. Insieme di programmi che garantiscono la spedizione e la ricezione di “lettere” tra i nodi del sistema.

•  Boot Server. Fa partire il sistema da power-on o quando c'e' un problema interno grave non risolvibile. Necessita di un meccanismo hardware per l'inizializzazione (interrupt reset). Esegue ogni tanto un polling sui server per vedere se sono ancora vivi.

•  Gateway server. Converte messaggi da un protocollo ad un altro (o cambia semplicemente gli indirizzi) per passare da un protocollo della rete locale al protocollo della rete esterna, e viceversa.

•  Name server : Servizio che converte i nomi in rete in indirizzi numerici di rete (DNS).

•  Data Base server: per gestire separatamente il DBMS sulla base di query SQL lanciate da client autorizzati.

•  Transaction server: per gestire su una macchina le transazioni richieste da altre macchine in rete.

• WEB server: per trasmettere mediante un protocollo http ai client che ne fanno richiesta pagine in formato html.

SD pdv Logico

•  File Client : insieme di processi utente che garantiscono l’accesso ai dischi o ad altri dispositivi di memorizzazione di più utenti (ftp, ntfs…)

•  Printer Client : Dispositivi H/S che permettono agli utenti del sistema di avere accesso al servizio di stampa da un nodo qualsiasi collegato in rete con la macchina server.

•  Mail client. Software applicativi che consentono la spedizione e la ricezione di “lettere” tra la macchina dell’utente ed il provider di posta (Thunderbird, Eudora, Mail, Outlook express,…) .

•  Boot client. Firmware su client che consente di fa partire il sistema da altre macchine o dispositivi diversi. .

• Gateway client. Macchine di una LAN che devono necessariamente collegarsi al gateway server della LAN per utilizzare servizi di comunicazione con l’esterno.

• Name client : Servizio che consente il collegamento ad un server per converte i nomi in rete in indirizzi numerici di rete (DNS).

•  Data Base client: per gestire query SQL su un DBMS separato su una macchina dedicata.

•  Transaction client: per gestire su una macchina le transazioni . Ad es. un client invoca una procedura remota che risiede sul server con un motore per eseguire gruppi di statement SQL. (comandi SU, Rlogin,…)

•  WEB client: browser WEB per trasmettere mediante un protocollo http ai server WEB pagine html (netscape, firefox,…)

Page 7: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

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: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

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: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

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: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

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: Sistemi Distribuitidisys/introsidys.pdf · (CSCW computer supported cooperative working) Condivisione delle risorse, senza necessita' di replicarle su ... permette l’accesso a risorse

11

Thread in Solaris2 SD pdv Sistema Operativo