Il Modello a scambio di messaggi
|
|
|
- Achille Festa
- 9 anni fa
- Visualizzazioni
Transcript
1 Il Modello a scambio di messaggi 1
2 Interazione nel modello a scambio di messaggi Se la macchina concorrente e` organizzata secondo il modello a scambio di messaggi: PROCESSO=PROCESSO PESANTE non vi è memoria condivisa tra processi i processi possono interagire mediante scambio di messaggi: comunicazione e sincronizzazione Il nucleo offre meccanismi a supporto: della comunicazione tra processi (Inter Process Communication, o IPC). della sincronizzazione (ad esempio, segnali) Il linguaggio concorrente offre costrutti per esplicitare l'interazione. Per la comunicazione: send: spedizione di messaggi da un processo ad altri receive: ricezione di messaggi 2
3 Modalita` di comunicazione Classificazione in base a due caratteristiche: 1. designazione dei processi sorgente e destinatario di ogni comunicazione 2. tipo di sincronizzazione tra processi comunicanti Caratteristiche ortogonali: le soluzioni proposte per 1) e 2) sono tra loro indipendenti. 3
4 PRIMITIVE DI SINCRONIZZAZIONE BASATE SULLO SCAMBIO DI MESSAGGI In generale: SEND <expression-list> to <destination-designator>; RECEIVE <variable-list> to <source-designator>; l esecuzione della send valuta expression list che diventa il messaggio; destination-designator dà al programmatore il controllo su dove inviare il messaggio L esecuzione della receive riceve il messaggio nella lista delle variabili "variable-list"; sourcedesignator dà al programmatore il controllo sull origine dei messaggi. 4
5 Designazione dei processi Sorgente e Destinatario di ogni comunicazione Canale: collegamento logico tramite il quale due processi comunicano. E compito del nucleo del linguaggio fornire l astrazione canale come meccanismo primitivo per lo scambio di informazioni. Il linguaggio deve fornire gli strumenti linguistici per specificare sia la sorgente che la destinazione di ogni messaggio. 5
6 Designazione dei processi Sorgente e Destinatario Comunicazione simmetrica: Vengono direttamente usati i nomi dei processi per denotare un canale, sia dal mittente che dal destinatario. Comunicazione asimmetrica: Il processo mittente nomina esplicitamente il destinatario il processo destinatario non esprime il nome del processo con il quale vuole comunicare. 6
7 CANALE DI COMUNICAZIONE La coppia destination-designator/source-designator definisce un canale di comunicazione. Schema simmetrico: i processi si nominano esplicitamente: send <message> to P2 receive <message> from P1 P1 P2 comunicazione uno-a-uno (canale=link) 7
8 SCHEMA ASIMMETRICO Il mittente nomina esplicitamente il destinatario ma questi, al contrario, non esprime il nome del processo con cui desidera comunicare Modello CLIENTE-SERVITORE corrisponde all uso di un processo come gestore di una risorsa Pi (cliente) Pr (servitore). receive<richiesta>;. <esecuzione>; send<richiesta> to Pr; send<risultato>to Pi; receive <risultato>;
9 SCHEMA ASIMMETRICO Schema molti a uno: i processi clienti specificano il destinatario delle loro richieste. Il processo servitore è pronto a ricevere messaggi da qualunque cliente (canale=porta) Schema uno a molti o molti a molti: processi cliente che inviano richieste non ad un particolare servitore, ma ad uno qualunque scelto tra un insieme di servitori equivalenti(canale=mailbox) 9
10 Tipi di sincronizzazione dei processi comunicanti Tre alternative per la semantica della send: 1. send asincrona 2. send sincrona 3. send tipo chiamata di procedura remota (RPC) Due alternative per la receive: 1. receive bloccante 2. receive non bloccante 10
11 send asincrona Il processo mittente continua la sua esecuzione immediatamente dopo che il messaggio è stato inviato. Il messaggio ricevuto contiene informazioni che non possono essere associate allo stato attuale del mittente (difficoltà nella verifica dei programmi). La send non è un punto di sincronizzazione. Puo` essere necessario prevedere, per realizzare un particolare schema di interazione, lo scambio esplicito di messaggi di controllo (che non contengono informazioni da elaborare). 11
12 send asincrona Primitiva di basso livello: Facilità di realizzazione. Carenza espressiva (difficoltà di uso del meccanismo e di verifica dei programmi). Necessita` di bufferizzazione: il nucleo associa al destinatario un buffer di capacità illimitata per l'accodamento dei messaggi. Se si vuole mantenere immutata la semantica della send occorre sospendere il processo mittente in caso di coda piena. 12
13 Send sincrona ( rendez-vous semplice) Il processo mittente si blocca in attesa che il messaggio sia stato ricevuto. sincronizzazione stretta tra mittente e destinatario Ogni messaggio ricevuto contiene informazioni corrispondenti allo stato attuale del processo mittente. Ciò semplifica la scrittura e la verifica dei programmi. 13
14 Send tipo chiamata a procedura remota ( rendez-vous esteso) Il processo mittente rimane in attesa fino a che il ricevente non ha terminato di svolgere l azione richiesta. Analogia semantica con la chiamata di procedura. Modello cliente-servitore. Riduzione di parallelismo. Punto di sincronizzazione: semplificazione della verifica dei programmi. 14
15 receive bloccante Sospende il processo se non ci sono messaggi sul canale; costituisce un punto di sincronizzazione. Problema: un processo desidera ricevere solo alcuni messaggi ritardando l eleborazione di altri. Soluzione: specificare più canali di ingresso per ogni processo, ciascuno dedicato a messaggi di tipo diverso. Deve essere possibile inoltre specificare su quali canali attendere, in base a condizioni arbitrarie e/o allo stato del canale. In caso di presenza contemporanea di messaggi su questi canali la scelta può essere fatta secondo criteri di priorità e in modo non deterministico. 15
16 receive non bloccante Si può ricorrere a una primitiva (receive non bloccante) che verifica lo stato di un canale, restituisce un messaggio se presente o un indicazione di canale vuoto. Ciò consente ad un processo di selezionare l insieme di canali da cui prelevare un messaggio. Inconveniente: qualora sia necessario attendere un messaggio da uno specifico canale occorre far uso di cicli di attesa attiva. Una delle soluzioni più adottate per garantire le stesse funzionalità di una primitiva non bloccante, evitando le attese attive e consentendo la verifica dello stato dei canali è quella che fa uso dei comandi con guardia 16
Il Modello a scambio di messaggi
Il Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto typedef struct{ origine; destinazione; contenuto;
Modello a scambio di messaggi
Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;
Modello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
MODELLO AD AMBIENTE GLOBALE
MODELLI DI INTERAZIONE TRA PROCESSI Modello ad ambiente globale ( global environment ) Modello a scambio di messaggi ( message passing ) MODELLO AD AMBIENTE GLOBALE Il sistema è visto come un insieme di
Modelli di interazione tra processi
Modelli di interazione tra processi Modelli di interazione Modello a memoria comune (ambiente globale) Modello a scambio di messaggi (ambiente locale, message passing) Modello a memoria comune Il sistema
Modelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
Modelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
Interazione tra Processi. Sistemi Operativi T AA
Interazione tra Processi Sistemi Operativi T AA 2009-2010 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Processi cooperanti La comunicazione tra processi Necessità
Sommario. G. Piscitelli
Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione
CAPITOLO 27 SCAMBIO DI MESSAGGI
CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:
Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi
Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione
Panoramica Introduttiva su Inter-Process Communication (IPC)
Panoramica Introduttiva su Inter-Process Communication (IPC) Inter-Process Communication: panoramica (1) Dei processi si dicono cooperanti se si influenzano l'un con l'altro. Per potersi influenzare dei
Sistemi Operativi (modulo di Informatica II)
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità
Teoria dell Informazione
Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro
Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 03/04 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 2
Introduzione a Visual Studio 2005
Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Introduzione a Visual Studio 2005 Outline Solutions e Projects Visual Studio e il linguaggio C Visual Studio Schermata
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Open Database Connectivity (ODBC)
Open Database Connectivity (ODBC) Open Database Connectivity (ODBC), proposto dalla Microsoft nel 1991, fornisce un interfaccia applicativa standard che permette ad una generica applicazione di accedere
Le Reti Informatiche
Le Reti Informatiche modulo 2 Prof. Salvatore Rosta www.byteman.it [email protected] 1 Commutazione di Circuito Le reti telefoniche utilizzano la tecnica della commutazione di circuito. I commutatori
Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori
Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Evoluzione dei sistemi informatici Cos è una rete? Insieme di
SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:
SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i
Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.
Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio
MODELLI ISO/OSI e TCP/IP
PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP 2.1 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un
Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus
Periferiche Interface Interface Interface Interface CPU SREG CREG DREG Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente: Control REGister; Status REGister; Data
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 20 Giovedì 22-12-2016 Comunicazione: pipe In Unix, processi possono comunicare
Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese
Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione
Il Sistema Operativo
Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche
MODELLI ISO/OSI e TCP/IP
PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti wireless
ISO- OSI e architetture Client-Server
LEZIONE 9 ISO- OSI e architetture Client-Server Proff. Giorgio Valle Raffaella Folgieri [email protected] [email protected] Lez 10 modello ISO-OSI e architettura client-server 1 Nelle scorse
Instradamento in IPv4
Antonio Cianfrani Instradamento in IPv4 Funzione di instradamento nei Router IP I Router IP hanno la funzione di instradare i datagrammi in rete: ricevono un datagramma da una interfaccia, eseguono alcune
Struttura Logica del S.O:
Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è
Le funzioni in JavaScript. Modularizzazione
Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi
Regole e modalità di utilizzo della PEC e della PEO istituzionale
ALLEGATO 2 al Manuale per la Gestione del Protocollo informatico, dei Flussi documentali e degli Archivi Regole e modalità di utilizzo della PEC e della PEO istituzionale 3 All. 2 Regole e modalità di
RTAI IPC. Andrea Sambi
RTAI IPC Andrea Sambi Inter-Process Communication Inter-Process Communication (IPC) indica la possibilità di scambiare informazioni tra processi attivi Per rendere lo sviluppo delle applicazioni il più
Lo strato di applicazione in Internet
Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web,
Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.
Esame Laboratorio di Sistemi Operativi 2-01-2008 Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 1 ora. Domande chiuse:
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Gestione e organizzazione dei dischi COMPITI
Principles of Concurrent Programming
Principles of Giuseppe Anastasi [email protected] Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
Esercizi su UDP. Esercitazione di Laboratorio di Programmazione di Rete A. Daniele Sgandurra 22/10/2008. Università di Pisa
Esercizi su UDP Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 22/10/2008 Un Tipico Client UDP Un client UDP invia datagrammi ad un server in attesa di essere
I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.
I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non
Linguaggi di programmazione
Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché
Le risorse. Alcune definizioni
Le risorse Dicesi risorsa un qualunque oggetto, fisico o logico, di cui un processo necessita per portare a termine la sua evoluzione. Poiché un processo evolve eseguendo istruzioni (procedure), una risorsa
Esempio produttori consumatori. Primitive asincrone
Primitive asincrone Send non bloccante: il processo mittente, non appena inviato il messaggio, prosegue la sua esecuzione. Il supporto a tempo di esecuzione deve fornire un meccanismo di accodamento dei
Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
Modelli di programmazione parallela
Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici
La gestione dell I/O (Cap. 5, Tanenbaum)
La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Introduzione >> Sommario Sommario Panoramica Alcuni Esempi
INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
Il Processore. Informatica di Base -- R.Gaeta 27
Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale
Spunti, esempi, logiche del comunicare nelle organizzazioni La comunicazione in azienda
Spunti, esempi, logiche del comunicare nelle organizzazioni La comunicazione in azienda Marina Maderna L incontro è l occasione per Esplorare il tema della comunicazione nelle organizzazioni: Perché si
Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
Comunicazione. La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI
Comunicazione La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI Concettualmente la comunicazione point to point e' molto semplice: Un processo invia un
CORSO DI FORMAZIONE DOCENTI DELLE SCUOLE PUBBLICHE A GESTIONE PRIVATA ECDL, LA PATENTE EUROPEA PER L USO DEL COMPUTER GUIDA SINTETICA
M ECDL ECDL, LA PATENTE EUROPEA PER L USO DEL COMPUTER LA POSTA ELETTRONICA Parte Generale GUIDA SINTETICA 1 - Primi passi Aprire il programma di posta elettronica Outlook Express Aprire la cassetta delle
Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune
Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune a) Uso di una risorsa condivisa Siano P 1, P 2, P 3,, P k i processi che condividono l uso di una risorsa comune
Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
LABORATORIO di Reti di Calcolatori
LABORATORIO di Reti di Calcolatori Architetture client-server 1 of 12 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed.,
Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware
