Comunicazione tra Processi



Похожие документы
Il Sistema Operativo (1)

Introduzione alle applicazioni di rete

SISTEMI OPERATIVI DISTRIBUITI

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

Architettura di un sistema operativo

Approccio stratificato

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

Architetture software. Virtualizzazione

Le reti. Introduzione al concetto di rete. Classificazioni in base a

Pronto Esecuzione Attesa Terminazione

Sistema di protezione (1)

Sistema di protezione (2) Protezione (1)

Organizzazione Monolitica

Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

STRUTTURE DEI SISTEMI DI CALCOLO

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il Software. Il software del PC. Il BIOS

Sistemi Operativi (modulo di Informatica II)

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

27/03/2013. Contenuti

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Siti web centrati sui dati (Data-centric web applications)

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

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

GESTIONE DEI PROCESSI

Sistemi Operativi (modulo di Informatica II) I processi

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

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Software di base. Corso di Fondamenti di Informatica

Applicazioni web centrati sui dati (Data-centric web applications)

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

I THREAD O PROCESSI LEGGERI Generalità

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

La Gestione delle risorse Renato Agati

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella

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

Hardware di un Computer

Architetture software

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

Introduzione ai Sistemi Operativi

Programmazione ad Oggetti. Java Parte I

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

CAPITOLO 27 SCAMBIO DI MESSAGGI

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Struttura del calcolatore

Architetture Informatiche. Dal Mainframe al Personal Computer

Java Virtual Machine

Architetture Informatiche. Dal Mainframe al Personal Computer

MODELLO AD AMBIENTE GLOBALE

Dispensa di Informatica I.1

Il sistema operativo TinyOS

MODELLISTICA DI IMPIANTI E SISTEMI 2

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi. Conclusioni e nuove frontiere

Capitolo 3: Strutture dei sistemi operativi

Gestione del processore e dei processi

Il problema del produttore e del consumatore. Cooperazione tra processi

Lezione n.10 LPR- Informatica Applicata RMI CallBacks

Programmazione di sistemi distribuiti

Gestione della memoria centrale

Client - Server. Client Web: il BROWSER

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

Architettura di un sistema di calcolo

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

C. P. U. MEMORIA CENTRALE

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

VMware. Gestione dello shutdown con UPS MetaSystem

C Cloud computing Cloud storage. Prof. Maurizio Naldi

Reti di Telecomunicazione Lezione 6

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Sistema operativo: Gestione dei processi

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Corso di Sistemi di Elaborazione delle informazioni

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology

Sommario. G. Piscitelli

Hardware delle reti LAN

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Транскрипт:

Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo di comunicazione di basso livello in un sistema distribuito è lo scambiodimessaggi. Su di esso possono essere costruiti meccanismi di comunicazione più semplici: Remote procedure call, Active messages, Publish/subscribe, Streams 1

Linguaggi a Memoria Distribuita Questi linguaggi riflettono il modello dei calcolatori a memoria distribuita composti da un insieme di elementi di elaborazione connessi da una rete (multicomputers, clusters, LAN). Rete P P P M M M In questo modello un programma parallelo consiste da un insieme di processi in esecuzione su più processori che cooperano tramite lo scambio di messaggi (message passing). Due principali aspetti in questo tipo di programmazione sono la creazione/attivazione dei processi concorrenti ed la loro cooperazione. Linguaggi a Memoria Distribuita Alcuni forniscono delle primitive per la creazione esplicita dei processi durante l esecuzione del programma (creazione dinamica): fork/join, new e create. In altri il numero dei processi è definito a tempo di compilazione (creazione statica): par, parbegin, cobegin/coend. 2

MPI MPI (Message Passing Interface) è una libreria standard per lo sviluppo di programmi paralleli e distribuiti attraverso primitive di scambio messaggi. MPI è disponibile per macchine massicciamente parallele, reti di workstation eterogenee, PC, etc. applicazioni portabili Un programma parallelo in MPI è strutturato come una collezione di processi concorrenti che eseguono programmi scritti in un linguaggio sequenziale con chiamate ad una libreria (MPI) per realizzare lo scambio di messaggi. In MPI-1 non c è creazione di processi! MPI La libreria MPI contiene funzioni per supportare la comunicazione punto-a-punto fra coppie di processi, come ad esempio MPI_Send(mess, strlen(mess)+1, type, 1, tag, MPI_COM); MPI_Recv(mess, leng, type,0, tag, MPI_COM, &status); Le funzioni per comunicazioni collettive all interno di gruppi di processi come: MPI_Bcast (inbuf, incnt, intype, root, comm); MPI_Gather (outbuf, outcnt, outype, inbuf, incnt,..); MPI offre un modello di programmazione di basso livello, tuttavia anch'esso è molto usato molto a causa della sua portabilità. 3

Chiamata di Procedura Convenzionale Passaggio di parametri in una chiamata di procedura (read): a) lo stack prima della chiamata b) lo stack mentre la chiamata della procedura è attiva Stubs per Client e Server Schema di una RPC tra un programma cliente and programma server. 4

Passi di una Remote Procedure Call 1. La chiamata di procedura del Client chiama un client stub 2. Il Client stub costruisce un messaggio e chiama il SO locale 3. Il SO locale invia un messaggio al SO remoto 4. Il SO remoto passa il messaggio al server stub 5. Il server stub preleva i parametri e invoca il Server 6. Il Server effettua le operazioni, ritorna il risultato allo stub 7. Il server stub mette il risultato in un messaggio, chiama il SO del server 8. SO del server invia il messaggio al SO del client 9. Il SO del client passa il messaggio allo stub del client 10. Lo stub preleva il risultato e lo ritorna al Client RPC Asincrona (1) 2-12 a) L interazione tra client e server in una RPC tradizionale b) L interazione usando una RPC asincrona 5

RPC Asincrona (2) 2-13 Un client e un server interagiscono con RPC asincrone RPC Asincrona (3) RPC asincrone one-way Il client continua dopo avere effettuato una chiamata di procedura remota Simile ad unasend senza risposta Affidabilità non assicurata: il cliente non sa se la richiesta verrà servita. Client Request Server Time 6

Persistenza e Sincronia nella Comunicazione (1) 2-20 Organizzazione generale di un sistema di comunicazione in cui i nodi sono connessi in rete. Persistenza e Sincronia nella Comunicazione (2) Una comunicazione si dice persistente se un messaggio che è stato inviato rimane memorizzato nel sistema di comunicazione finchè non verrà consegnato al destinatario. Il destinatario non deve essere necessariamente attivo contemporaneamente al mittente. (Esempi: message-queuing sys) Una comunicazione si dice transiente se il messaggio viene inviato solo se il mittente e il destinatario sono attivi contemporaneamente. Se il communication server non puo inviare il messaggio, questo viene eliminato. (Esempi: socket, MPI) 7

Persistenza e Sincronia nella Comunicazione (3) Le comunicazioni possono essere anche Sincrone: il mittente si blocca fino a che il destinatario riceve il messaggio o Asincrone: il mittente continua senza attendere che il destinatario riceva il messaggio. Queste si possono combinare con le comunicazioni persistenti e transienti Persistenza e Sincronia nella Comunicazione (4) Comunicazione persistente di lettere nell epoca del Pony Express. 8

Persistenza e Sincronia nella Comunicazione (5) 2-22.1 a) Comunicazione persistente asincrona b) Comunicazione persistente sincrona Persistenza e Sincronia nella Comunicazione (6) 2-22.2 c) Comunicazione transiente asincrona d) Comunicazione transiente sincrona Receipt-based 9

Persistenza e Sincronia nella Comunicazione (7) e) Comunicazione transiente sincrona Delivery-based f) Comunicazione transiente sincrona Response-based Macchine Virtuali Il concetto di Macchina Virtuale è stato definito molto tempo fa (anni 60) in un contesto centralizzato. Una Macchina Virtuale permette di rappresentare le risorse hardware diversamente dai loro limiti fisici. Un singolo computer puo essere rappresentato e usato come differenti ambienti di elaborazione. Applicazione Macchina Virtuale Computer Appl1 Appl1 Appl3 MV1 MV2 MV3 Computer 10

Macchine Virtuali in Sistemi Distribuiti In un sistema distribuito tramite le Macchine Virtuali si possono virtualizzare risorse remote per comporre sistemi distribuiti virtuali che integrano risorse hardware (RAM, CPU, ) presenti in siti remoti. Un livello di Macchina Virtuale nasconde la diversità delle piattaforme ed offre un ambiente omogeneo e confezionato sulle esigenze degli utenti e delle loro applicazioni Appl1 Sistema Operativo Appl2 Appl3 Appl4 Sistema Operativo Macchina Virtuale Risorse Hardware Distribuite Macchine Virtuali in Sistemi Distribuiti Secondo questo approccio si può costruire dinamicamente un sistema distribuito composto da diverse CPU, memorie, dischi, reti, device, etc. L approccio basato su una macchina virtuale permette di sviluppare applicazioni distribuite che usino molte macchine in maniera trasparente. (ES: JVM?). Appl1 Sistema Operativo Appl2 Appl3 Appl4 Sistema Operativo Macchina Virtuale Risorse Hardware Distribuite 11