Composizione parallela - alternanza di azioni

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Premessa: si assume di aver risolto (correttamente
Automi temporizzati.
Ricorsione in SQL-99.
x+x=2x Consideriamo la seguente frase:
Introduzione ai grafi Grafo diretto e non diretto
Esercizio d’esame Petri e Gantt B
Introduzione Cosa sono le reti di Petri?
Modulo sulla concorrenza
Sintassi- Semantica operazionale
SPIM Esercizi. Esercizio 1 – il comando li Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
Dato il sistema SA s1 s3 s5 s7 s8 b a con B c con Y b d con B e C s2 s4 s6 a con A g d con A e C s1s2 s4 s3 s5 s7 s8 s6 e con X b a d con C c con Y g b.
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
RETI INFORMATICHE.
Esercitazione con socket
Deadlock Modello del sistema Caratterizzazione dei deadlock
Sesso = fattore between (indicato dal fattore A)
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
4. Automi temporizzati Il comportamento dei sistemi ad eventi temporizzati non è definito semplicemente da una sequenza di eventi o di valori dello stato,
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sintesi FSM – Prima parte
Macchine non completamente specificate
Circuiti di memorizzazione elementari: i Flip Flop
Esercizi di esonero (a.a. 2007/2008) Compito C, terzo esercizio Data una sequenza di caratteri s1 ed una stringa s2 diciamo che s1 è contenuta in s2 se.
Analisi e Sintesi di circuiti sequenziali
Architetture e protocolli CCITTComunicazione: trasferimento di informazioni secondo convenzioni prestabilite La comunicazione richiede cooperazione.
Introduzione alla programmazione ll
I Thread.
Algoritmi e Strutture Dati
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
Servizi Postali 17/02/2011 Progetto gestione inidoneità Analisi di fattibilità di interventi di miglioramento delle postazioni per favorire il recupero.
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Sistemi Operativi GESTIONE DEI PROCESSI.
Intelligenza Artificiale
Concurrency: concurrent execution1 ©Magee/Kramer const N = 1 intervallo T = 0..N intervallo R = 0..2*N SUM = (in[a:T][b:T]->TOTAL[a+b]), TOTAL[s:R] = (out[s]->SUM).
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Rappresentazione di conoscenza Procedurale
Candidato : Giuseppe Circhetta Relatori :
Dall’algoritmo al programma.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
L’ingegneria del software
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
MODELLO LOGICO DEI DATI
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
La modellazione degli oggetti
1 Università di Pavia - corso di Calcolatori Elettronici C code: L1:g = g + A[i]; i = i + j; if (i != h) goto L1; MIPS code: L1:add $t1, $s3, $s3# $t1.
Teoria dei Circuiti Lez. 1.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
1 Parte 2 Fondamenti di programmazione. 2 Definizione intuitiva di algoritmo Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Reti di computer Non esiste una classificazione univoca delle reti ma due aspetti hanno un particolare importanza Tecnologia di trasmissione Scala.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Reti di computer Condivisione di risorse e
1 Ivan Lanese Dipartimento di Informatica Università di Pisa Prof. Ugo Montanari A graph-based framework for Fusion Calculus Relatore: Colloquio per l’esame.
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 1 -Domain Name System Ernesto Damiani Lezione 1 – Nomi e indirizzi.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 1 -Domain Name System Ernesto Damiani Lezione 3 – Complementi.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Approfondimenti SQL.
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Operazioni con le frazioni
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Query Optimization nei DDBMS.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

Composizione parallela - alternanza di azioni Se P e Q sono processi allora (P||Q) rappresenta l’esecuzione concorrente di P e Q. L’operatore || è denominato operatore di composizione parallela. ITCH = (scratch->STOP). CONVERSE = (think->talk->STOP). ||CONVERSE_ITCH = (ITCH || CONVERSE). thinktalkscratch thinkscratchtalk scratchthinktalk Possibili sequenze di azioni risultanti da un’alternanza dei processi.

Composizione parallela - alternanza di azioni Modello LTS 2 stati 3 stati 2  3 stati from CONVERSE from ITCH (0,0) (0,1) (0,2) (1,2) (1,1) (1,0) Descrizione del “comportamento”

Composizione parallela - alternanza di azioni Modello Reti SA CONVERSE-ITCH ? think talk scratch fork join think talk CONVERSE scratch ITCH

Composizione parallela - proprietà algebriche Commutativa: (P||Q) = (Q||P) Associativa: (P||(Q||R)) = ((P||Q)||R) = (P||Q||R).

Modellare l’interazione - azioni condivise Se due processi che devono essere composti hanno delle azioni in comune, queste azioni sono dette condivise. Per mezzo di azioni condivise si modella l’interazione tra processi. Mentre le azioni non condivise possono essere alternate in modo arbitrario, un’azione condivisa deve essere eseguita nello stesso istante da tutti i processi che vi partecipano MAKER = (make->ready->MAKER). USER = (ready->use->USER). ||MAKER_USER = (MAKER || USER). MAKER si sincronizza con USER quando ready.

Modelli make use LTS MAKER-USER MAKER USER RETI SA make make ready

labeling di processi a:P pone il prefisso a ad ogni etichetta di azione dell’alfabeto del processo P. Due istanze di un processo “switch”: SWITCH = (on->off->SWITCH). ||DOPPIO_SWITCH = (a:SWITCH || b:SWITCH). ||SWITCHES(N=3) = (forall[i:1..N] s[i]:SWITCH). ||SWITCHES(N=3) = (s[i:1..N]:SWITCH). Un array di istanze del processo switch :

In Reti SA Si devono creare tante istanze quanti sono i prefissi Ogni istanza ha le etichette con uno dei prefissi

process labeling con un insieme di etichette {a1,..,ax}::P sostituisce ogni etichetta n di azione nell’alfabeto di P con le etichette a1.n,…,ax.n. Inoltre, ogni transizione (n->X) nella definizione di P è sostituita dalle transizioni ({a1.n,…,ax.n} ->X). Il prefisso di processi è utile per modellare risorse condivise: RISORSA = (riserva->rilascia->RISORSA). UTENTE = (riserva->usa->rilascia->UTENTE). ||CONDIVISIONE DI RISORSE = (a:UTENTE || b:UTENTE || {a,b}::RISORSA).

Prefissi di processi per risorse condivise a:UTENTE a:riserva a:usa a:rilascia b:UTENTE b:riserva b:usa b:rilascia a:riserva b:riserva a:rilascia b:rilascia RISORSA a:riserva a:usa a:rilascia b:rilascia b:usa b:riserva CONDIVISIONE DI RISORSE

Prefissi di processi per risorse condivise b-riserva usa b-rilascia disponibile a-riserva Regola 3 della definizione Di T composizione non disponibile a-rilascia disponibile   a-riserva b-riserva non disponibile a-rilascia b-rilascia

Sistema SA ottenuto dalla T-composizione a-riserva a-usa a-rilascia b-riserva non disponibile 

relabeling di azioni Le funzioni di relabeling sono applicate ai processi per rinominare le azioni. La forma generale di una funzione di relabeling è la seguente: /{newlabel_1/oldlabel_1,… newlabel_n/oldlabel_n}. Queste funzioni assicurano che processi composti possano essere sincronizzati su azioni particolari CLIENT = (call->wait->continue->CLIENT). SERVER = (request->service->reply->SERVER).

relabeling di azioni ||CLIENT_SERVER = (CLIENT || SERVER) /{call/request, reply/wait}.

relabeling di azioni Si puo’ usare un operatore di wait call continue request service reply call continue service reply Si puo’ usare un operatore di Ri-etichettatura analogo per le Reti SA (Non nativo)

relabeling di azioni - etichette prefisso Una formulazione alternativa del sistema client server è descritta sotto per mezzo di etichette qualificate o prefisso : SERVERv2 = (accept.request ->service->accept.reply->SERVERv2). CLIENTv2 = (call.request ->call.reply->continue->CLIENTv2). ||CLIENT_SERVERv2 = (CLIENTv2 || SERVERv2) /{call/accept}.

hiding di azioni - astrazione per ridurre la complessità Applicato a un processo P, l’operatore di hiding \{a1..ax} rimuove i nomi di azioni a1..ax dall’alfabeto di P e rende queste azioni celate "silenti". Le azioni silenti sono etichettate tau. Azioni silenti in processi distinti NON sono condivise. Talvolta è più appropriato specificare l’insieme di azioni che devono essere mostrate .... (operatore complementare) Applicato a un processo P, l’operatore di interfaccia @{a1..ax} nasconde tutte le azioni nell’alfabeto di P che NON appaiono nell’insieme a1..ax.

Hiding di azioni Le seguenti definizioni sono equivalenti: UTENTE = (riserva->usa->rilascia->UTENTE) \{usa}. @{riserva,rilascia}. riserva usa rilascia La minimizzazione rimuove azioni tau nascoste per produrre un LTS con comportamento osservabile equivalente. riserva rilascia

Dato il sistema ….. s1 s2 s4 s3 s5 s7 s8 s6 e con X b a d con C c con Y g

Il corrispondente FSP e’: A = (e_conX --> b --> A | a_conB --> b --> c_conY --> d_conBeC -->A) B = (a_conA --> g --> d_conAeC --> B A_B = (A || B ) (i colori indicano le azioni da sovrapporre) Il cui LST e’ isomorfo al precedente grafo di raggiungibilita’: stesso numero di nodi (stati), stesso numero di archi con eguale etichettatura

FSP - dichiarazione di costanti e di intervalli L’uso di indici serve per modellare calcoli const N = 1 intervallo T = 0..N intervallo R = 0..2*N SUM = (in[a:T][b:T]->TOTAL[a+b]), TOTAL[s:R] = (out[s]->SUM).

SOMMA CON RETI DI PETRI Leggo 0,0 Leggo 0,1 Leggo 1,0 Leggo 1,1 Stampo 0 Stampo 1 Stampo 2 Se l’ordine di lettura viene considerato nella definizione degli stati la coppia (1,0) è diversa dalla coppia (0,1): Leggo 0,0 Leggo 0,1 Leggo 1,0 Leggo 1,1 Stampo 0 Stampo 1 Stampo 2