Interazione tra Processi. Sistemi Operativi T AA

Documenti analoghi
Il Modello a scambio di messaggi

Modello a scambio di messaggi

Introduzione alla Programmazione Concorrente

Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi

Interazione, sincronizzazione e comunicazione tra processi

Sommario. G. Piscitelli

Processi e thread. Concetto di processo

Il Modello a scambio di messaggi

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

I Processi. Il Concetto di Processo

Capitolo 4: Processi

Modello a scambio di messaggi

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

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Interazione e sincronizzazione

Sistemi Operativi (modulo di Informatica II)

CAPITOLO 27 SCAMBIO DI MESSAGGI

I THREAD O PROCESSI LEGGERI

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

Sistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15

Inter Process Communication. Laboratorio Software C. Brandolese

Le risorse. Alcune definizioni

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

RTAI IPC. Andrea Sambi

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune

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

Sistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente

Modelli di interazione tra processi

PROGRAMMA DISCIPLINARE SVOLTO a. s / 2016

Modelli di interazione tra processi

SISTEMI DI ELABORAZIONE

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Sistemi Operativi: Concetti Introduttivi

Principles of Concurrent Programming

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

Componenti di un sistema operativo

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

Esercizio sulla gestione di file in Unix

Livello di trasporto: meccanismi trasferimento dati affidabile

X Prefazione dei paradigmi della programmazione concorrente. Successivamente, l evoluzione delle tecnologie hardware, che hanno consentito lo sviluppo

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

ALTRI TIPI DI CONNESSIONE

System call per la gestione di processi

Protocolli multimediali

Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica

LABORATORIO di Reti di Calcolatori

Reti (già Reti di Calcolatori )

Architetture di rete. 4. Le applicazioni di rete

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete

ACSO Programmazione di Sistema e Concorrente

Modelli di interazione tra processi

Lab 1: Java Multithreading

Parte 2: Gestione dei Processi. 4.1 Concetto di Processo Stato del processo

Lab 4: Locks, Condition Variables in Java

Configurazione delle interfacce di rete

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

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

4b. Esercizi sul livello di Rete Inoltro in IP

Struttura Logica del S.O:

Le motivazioni che hanno favorito la nascita e lo sviluppo delle reti di calcolatori sono molteplici:

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

ESERCITAZIONE 5!! 7 dicembre 2016!! Programmazione concorrente in ADA!!

LabVIEW. Introduzione. Laboratory Virtual Instrument Engineering Workbench. Esempio di pannello frontale. Misure Elettroniche 1


Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

POLO REGIONALE DI FATTURAZIONE ELETTRONICA

Reti di Calcolatori RETI PEER-TO-PEER

Reti di Calcolatori RETI PEER-TO-PEER. Reti Peer-To-Peer. Cosa sono? Classificazione NAPSTER Gnutella Esempio di funzionamento di Gnutella

Servizi di interscambio dati e cooperazione applicativa Guida alla gestione dei servizi web Mipaaf

Certificazione e.toscana Compliance. Applicativi di Sistemi Informativi degli Enti Locali (SIL)

SISTEMI OPERATIVI. La comunicazione tra processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Lezione 16. Il Software di base

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

La gestione dell I/O (Cap. 5, Tanenbaum)

MODELLO AD AMBIENTE GLOBALE

Pronto Esecuzione Attesa Terminazione

2) Sistemi operativi. Lab. Calc. AA 2006/07

ESERCIZIO SincrAmbGlob-1

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento

contactsend XMLDelivery engagement marketing contactsend

Laboratorio di Reti, Corsi A e B. Text-Twist. Progetto di Fine Corso A.A. 2016/17

Il Sistema Operativo. Informatica Sistema Operativo 1

Introduzione al Multithreading

Organizzazione di un SO monolitico

Esercitazione [11] Riepilogo sui Semafori. Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo

Symantec IT Management Suite 8.0 powered by Altiris technology

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)

Il modello a thread : motivazioni

Monitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi.

RETI DI CALCOLATORI Home Work ritardi e livello applicativo

Messi Notificatori. Ogni pratica è assegnata ad un operatore, quindi è possibile conoscere in tempo reale, chi ha in carico che cosa

SMS Gateway - Specifiche WS. Specifica Tecnica

Transcript:

Interazione tra Processi Sistemi Operativi T AA 2012-13 1

Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun influenzata dall esecuzione dell altro processo o viceversa. due processi sono indipendenti se l esecuzione di ognuno non è in alcun modo influenzata dall altro. processi interagenti: cooperanti: i processi interagiscono volontariamente per raggiungere obiettivi comuni (fanno parte della stessa applicazione) in competizione: i processi, in generale, non fanno della stessa applicazione, ma interagiscono indirettamente, per l acquisizione di risorse comuni. Sistemi Operativi T AA 2012-13 2

Processi Interagenti Linterazione puo` avvenire mediante due meccanismi: Comunicazione: scambio di informazioni tra i processi interagenti. Sincronizzazione: imposizione di vincoli temporali sullesecuzione dei processi. Ad esempio, listruzione K del processo P1 puo` essere eseguita soltanto dopo listruzione J del processo P2 P1.. <istruzione K> sincronizzazione.. <istruzione J>.. Sistemi Operativi T AA 2012-13 3 P2

Processi Interagenti Realizzazione dell interazione:dipende dal modello di processo: modello ad ambiente locale (processo pesante): non c è condivisione di variabili la comunicazione avviene attraverso scambio di messaggi la sincronizzazione avviene attraverso scambio di eventi (segnali) modello ad ambiente globale (thread): più processi possono condividere lo stesso spazio di indirizzamento => possibilità di condividere variabili variabili condivise + strumenti di sincronizzazione (es.semafori) Sistemi Operativi T AA 2012-13 4

Processi interagenti mediante scambio di messaggi Facciamo riferimento al modello ad ambiente locale: non vi è memoria condivisa i processi possono interagire (cooperano/competono) mediante scambio di messaggi: comunicazione mediante scambio di eventi (o segnali): sincronizzazione Il Sistecomunicazioma Operativo offre meccanismi a supporto della ne tra processi (Inter Process Communication, o IPC). Operazioni Necessarie: send: spedizione di messaggi da un processo ad altri receive: ricezione di messaggi Sistemi Operativi T AA 2012-13 5

Scambio di messaggi send msg P 0 P 1 receive Lo scambio di messaggi avviene mediante un canale di comunicazione tra i due processi Caratteristiche del canale: monodirezionale, bidirezionale uno-a-uno, uno-a-molti, molti-a-uno, molti-a-molti capacità modalità di creazione: automatica, non automatica Sistemi Operativi T AA 2012-13 6

Meccanismi di comunicazione tra processi Aspetti caratterizzanti: caratteristiche del canale caratteristiche del messaggio:» dimensione» tipo tipo della comunicazione:» diretta o indiretta» simmetrica o asimmetrica» bufferizzata o no»... Sistemi Operativi T AA 2012-13 7

Naming In che modo viene specificata la destinazione di un messaggio? Comunicazione diretta: al messaggio viene associato l identificatore del processo destinatario (naming esplicito) send(proc, msg) Comunicazione indiretta: il messaggio viene indirizzato a una mailbox (contenitore di messaggi) dalla quale il destinatario preleverà il messaggio: send(mailbox, msg) Sistemi Operativi T AA 2012-13 8

Comunicazione diretta send(msg, P1) P 0 P 1 Il canale è creato automaticamente tra i due processi che devono conoscersi reciprocamente: canale punto-a-punto canale bidirezionale: p0: send(query, P1); p1: send(answ, P0) per ogni coppia di processi esiste un solo canale(<p0, P1>) Sistemi Operativi T AA 2012-13 9

Esempio: Produttore & Consumatore Processo produttore P: pid C =...; main() { msg M; do { produco(&m);... send(c, M); }while(!fine); } Processo consumatore C: pid P=...; main() { msg M; do { receive(p, &M);... consumo(m); }while(!fine); } Comunicazione simmetrica: il destinatario fa il naming esplicito del mittente Sistemi Operativi T AA 2012-13 10

Comunicazione asimmetrica Processo produttore P:... main() { msg M; do { produco(&m);... send(c, M); }while(!fine); } Processo consumatore C:... main() { msg M; pid id; do { receive(&id, &M);... consumo(m); }while(!fine); } Comunicazione asimmetrica: il destinatario non è obbligato a conoscere l identificatore del mittente: la variabile id raccoglie l identificatore del mittente. Sistemi Operativi T AA 2012-13 11

Comunicazione diretta Problema: scarsa modularità: la modifica del nome di un processo implica la revisione di tutte le operazioni di comunicazione difficoltà di riutilizzo utilità di servizi di directory (name server) Sistemi Operativi T AA 2012-13 12

Comunicazione indiretta send(msg, mbx) receive(msg, mbx) P 0 mbx P 1 I processi cooperanti non sono tenuti a conoscersi reciprocamente e si scambiano messaggi depositandoli/prelevandoli da una mailbox condivisa. La mailbox è una risorsa astratta condivisibile da più processi che funge da contenitore dei messaggi. Sistemi Operativi T AA 2012-13 13

Comunicazione indiretta Proprietà: il canale di comunicazione è rappresentato dalla mailbox (non viene creato automaticamente) il canale può essere associato a più di 2 processi:» mailbox di sistema: molti-a-molti (come individuare il processo destinatario di un messaggio?)» mailbox del processo destinatario (porta): molti-a-uno canale bidirezionale: p0: send(query, mbx) p1: send(answ, mbx) per ogni coppia di processi possono esistere più canali (uno per ogni mailbox condivisa) Sistemi Operativi T AA 2012-13 14

Buffering del canale Ogni canale di comunicazione è caratterizzato da una capacità: numero dei messaggi che è in grado di contenere contemporaneamente. Gestione secondo politica FIFO: P i messaggi vengono posti in una coda in attesa di essere ricevuti la lunghezza massima della coda rappresenta la capacità del canale. send(msg,..) receive(msg,..) P Sistemi Operativi T AA 2012-13 15

Buffering del canale Capacità nulla: non vi è accodamento perchè il canale non è in grado di gestire messaggi in attesa processo mittente e destinatario devono sincronizzarsi all atto di spedire (send) / ricevere (receive) il messaggio: comunicazione sincrona o rendez vous send e receive possono essere sospensive:... send(q,m)...... attesa sincronizzazione... receive(p,m) Processo P Processo Q Sistemi Operativi T AA 2012-13 16

Buffering del canale Capacità non nulla (limitata): esiste un limite N alla dimensione della coda: se la coda non è piena, un nuovo messaggio viene posto in fondo se la coda è piena: la send è sospensiva se la coda è vuota: la receive può essere sospensiva [Capacità illimitata: lunghezza della coda teoricamente infinita: non c è possibilità di sospensione.] Sistemi Operativi T AA 2012-13 17

Send sincrona/asincrona Quindi, a seconda della capacità del canale, la send può essere sospensiva o no: Canale a Capacità nulla: Send sincrona Se il destinatario non è pronto per ricevere il messaggio, il mittente attende. Canale a Capacità non nulla: Send asincrona La send non è sospensiva: il mittente deposita il messaggio nel canale e continua la sua esecuzione. Sistemi Operativi T AA 2012-13 18

Remote Procedure Call (RPC) È un tipo di comunicazione sincrona, in cui il mittente si sospende fino a che il destinatario non restituisce una risposta (reply) al messaggio inviato: il messaggio potrebbe richiedere lesecuzione di un servizio... send(q,m) attesa sincronizzazione... receive(p,m) <esecuzione servizio> reply(p, answ) Processo P Processo Q Sistemi Operativi T AA 2012-13 19

Caratteristiche della comunicazione tra processi Unix Due meccanismi di comunicazione: pipe: comunicazione locale (nell ambito della stessa gerarchia di processi) socket: comunicazione in ambiente distribuito (tra processi in esecuzione su nodi diversi di una rete) Pipe:comunicazione» indiretta (senza naming esplicito)» canale unidirezionale molti-a-molti» bufferizzata (capacità limitata): possibilità di sospensione sia per mittenti che per destinatari. Sistemi Operativi T AA 2012-13 20

Sincronizzazione tra processi Si è visto che due processi possono interagire per: cooperare: i processi interagiscono allo scopo di perseguire un obiettivo comune competere: i processi possono essere logicamente indipendenti, ma necessitano della stessa risorsa (dispositivo, file, variabile, ecc.) per la quale sono stati dei vincoli di accesso: ad esempio:» gli accessi dei due processi alla risorsa devono escludersi mutuamente nel tempo (Mutua Esclusione nell accesso alla risorsa) In entrambi i casi è necessario disporre di strumenti di sincronizzazione. Sistemi Operativi T AA 2012-13 21

Sincronizzazione tra processi La sincronizzazione permette di imporre vincoli sulle operazioni dei processi interagenti. Nella cooperazione: Ad Esempio: Per imporre un particolare ordine cronologico alle azioni eseguite dai processi interagenti. Per garantire che le operazioni di comunicazione avvengano secondo un ordine prefissato. Nella competizione: Per garantire la mutua esclusione dei processi nell accesso alla risorsa condivisa. Per realizzare politiche di accesso alle risorse condivise Sistemi Operativi T AA 2012-13 22

Sincronizzazione tra processi nel modello ad ambiente locale In questo ambiente non vi e` la possibilita` di condividere memoria: Gli accessi alle risorse "condivise" vengono controllati e coordinati dal sistema operativo. La sincronizzazione avviene mediante meccanismi offerti dal sistema operativo che consentono la notifica di eventi asincroni (privi di contenuto informativo) tra un processo ed altri: Es. segnali unix Sistemi Operativi T AA 2012-13 23

Sincronizzazione tra processi nel modello ad ambiente globale Facciamo riferimento a processi che possono condividere variabili (modello ad ambiente globale, o a memoria condivisa) per descrivere alcuni strumenti di sincronizzazione tra processi. In questo ambiente: cooperazione: lo scambio di messaggi avviene attraverso strutture dati condivise (ad es., mailbox) competizione: le risorse sono rappresentate da variabili condivise (ad esempio, puntatori a file) In entrambi i casi è necessario sincronizzare i processi per coordinarli nellaccesso alla memoria condivisa: problema della mutua esclusione 24