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

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Amministrazione dei servizi di stampa. Sommario Introduzione ai servizi di stampa Introduzione ai servizi di stampa Terminologia della stampa Terminologia.
Meccanismi di IPC Problemi classici di IPC
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Gestione dei processi A. Ferrari.
Java: programmazione concorrente con condivisione di memoria
Algoritmi e Programmazione
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
Basi di dati attive Dispongono di un sottosistema integrato per definire e gestire regole di produzione (regole attive) Regole di tipo: Evento-Condizione-Azione.
Modulo sulla concorrenza
Sintassi- Semantica operazionale
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.
Esercitazione con socket
Processi Concetto di processo Scheduling dei processi
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.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
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à
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 27/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Corso di Programmazione di Sistema Anno accademico 2006/2007 Presentazione del corso Umberto Villano, 4 Ottobre 2006.
Processi e Thread.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Struttura dei sistemi operativi (panoramica)
I Thread.
Algoritmi e Strutture Dati
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Sistemi Operativi GESTIONE DEI PROCESSI.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Reti di Calcolatori Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore.
Composizione parallela - alternanza di azioni
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Dall’algoritmo al programma.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Algoritmi e Programmazione strutturata
L’ingegneria del software
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
La schedulazione dei processi
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Threads.
Progettazione concettuale di SI basati su Web
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
I processi.
Elettronica Digitale (II Parte) 10-11_5 1 ELETTRONICA DIGITALE II (5) 6/12 Il processo di assemblaggio.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Gestione del processore (Scheduler)
Reti di computer Non esiste una classificazione univoca delle reti ma due aspetti hanno un particolare importanza Tecnologia di trasmissione Scala.
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Algoritmi.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Automi temporizzati.
Esercizi.
Business Process Management Orchestrazione di Web Service basata su standard BPEL per la realizzazione di un servizio di tour operator Università degli.
Progettazione concettuale di SI basati su Web B. Pernici.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Transcript della presentazione:

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). FSP - dichiarazione di costanti e di intervalli Luso di indici serve per modellare calcoli

Concurrency: concurrent execution2 ©Magee/Kramer SOMMA CON RETI DI PETRI Se lordine di lettura viene considerato nella definizione degli stati la coppia (1,0) è diversa dalla coppia (0,1): Leggo 0,0Leggo 0,1 Leggo 1,0 Leggo 1,1 Stampo 0Stampo 1 Stampo 2 Leggo 0,0Leggo 0,1Leggo 1,0Leggo 1,1 Stampo 0Stampo 1 Stampo 2

Concurrency: concurrent execution3 ©Magee/Kramer Capitolo 3 Processi concorrenti

Concurrency: concurrent execution4 ©Magee/Kramer Esecuzione concorrente Concetti : processi - esecuzione concorrente e alternanza (interleaving). Interazione di processi. Modelli :composizione parellela di processi asincroni - interleaving interazione - azioni condivise labeling di processi, relabeling di azioni e hiding structure diagrams Pratica :programmi Java con Multithread

Concurrency: concurrent execution5 ©Magee/Kramer Definizioni Concorrenza computazioni logicamente simultanee. Non implica multipli processori Richiede esecuzione alternata su un singolo processore A Tempo B C Sia la concorrenza sia il parallelismo richiedono un accesso controllato a risorse condivise. Nel libro di testo i termini parallelo e concorrente sono utilizzati come sinonimi. Un azione a è concorrente a unazione b se il loro ordine di esecuzione è indifferente Processore condiviso da tre processi Parallelismo computazioni fisicamente simultanee. Richiede multipli processori

Concurrency: concurrent execution6 ©Magee/Kramer Modellare la concorrenza Si riesce a modellare la velocità di esecuzione? Velocità arbitraria (il tempo NON è modellato) Come si modella la concorrenza? Ordine relativo delle azioni di processi differenti è arbitrario (alternanza dei processi MA conservazione della sequenza di azioni in ogni processo) Qualè il risultato? Modello generale indipendente dallo scheduling (modello di esecuzione asincrona)

Concurrency: concurrent execution7 ©Magee/Kramer Composizione parallela - alternanza di azioni think talk scratch think scratch talk scratch think talk Se P e Q sono processi allora (P||Q) rappresenta lesecuzione concorrente di P e Q. Loperatore || è denominato operatore di composizione parallela. ITCH = (scratch->STOP). CONVERSE = (think->talk->STOP). ||CONVERSE_ITCH = (ITCH || CONVERSE). Possibili sequenze di azioni risultanti da unalternanza dei processi.

Concurrency: concurrent execution8 ©Magee/Kramer 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

Concurrency: concurrent execution9 ©Magee/Kramer Composizione parallela - alternanza di azioni Modello Reti SA scratch ITCH think talk CONVERSE CONVERSE-ITCH ? think talk scratch fork join

Concurrency: concurrent execution10 ©Magee/Kramer Composizione parallela - proprietà algebriche Commutativa: (P||Q) = (Q||P) Associativa: (P||(Q||R))= ((P||Q)||R) = (P||Q||R).

Concurrency: concurrent execution11 ©Magee/Kramer Modellare linterazione - azioni condivise MAKER = (make->ready->MAKER). USER = (ready->use->USER). ||MAKER_USER = (MAKER || USER). MAKER si sincronizza con USER quando ready. Se due processi che devono essere composti hanno delle azioni in comune, queste azioni sono dette condivise. Per mezzo di azioni condivise si modella linterazione tra processi. Mentre le azioni non condivise possono essere alternate in modo arbitrario, unazione condivisa deve essere eseguita nello stesso istante da tutti i processi che vi partecipano

Concurrency: concurrent execution12 ©Magee/Kramer Modelli make use LTS RETI SA make ready MAKER ready use USER use Ready make MAKER-USER

Concurrency: concurrent execution13 ©Magee/Kramer labeling di processi a:P pone il prefisso a ad ogni etichetta di azione dellalfabeto del processo P. SWITCH = (on->off->SWITCH). ||DOPPIO_SWITCH = (a:SWITCH || b:SWITCH). Due istanze di un processo 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 :

Concurrency: concurrent execution14 ©Magee/Kramer process labeling by a set of prefix labels {a1,..,ax}::P sostituisce ogni etichetta n di azione nellalfabeto 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).

Concurrency: concurrent execution15 ©Magee/Kramer Prefissi di processi per risorse condivise a:UTENTE a:riservaa:usa a:rilascia b:UTENTE b:riservab:usa b:rilascia a:riserva a:usa a:rilascia b:rilascia b:usab:riserva CONDIVISIONE DI RISORSE a:riserva b:riserva a:rilascia b:rilascia RISORSA

Concurrency: concurrent execution16 ©Magee/Kramer Prefissi di processi per risorse condivise riserva non disponibile rilascia disponibile riserva usa rilascia riserva usa rilascia disponibile non disponibile riserva usa rilascia

Concurrency: concurrent execution17 ©Magee/Kramer relabeling di azioni Queste funzioni assicurano che processi composti possano essere sincronizzati su azioni particolari 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}. CLIENT = (call->wait->continue->CLIENT). SERVER = (request->service->reply->SERVER).

Concurrency: concurrent execution18 ©Magee/Kramer relabeling di azioni ||CLIENT_SERVER = (CLIENT || SERVER) /{call/request, reply/wait}.

Concurrency: concurrent execution19 ©Magee/Kramer relabeling di azioni wait call continue request service reply call continue service reply

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

Concurrency: concurrent execution21 ©Magee/Kramer hiding di azioni - astrazione per ridurre la complessità Applicato a un processo P, loperatore di hiding \{a1..ax} rimuove i nomi di azioni a1..ax dallalfabeto di P e rende queste azioni celate "silenti". Le azioni silenti sono etichettate tau. Azioni silenti in processi distinti NON sono condivise. Applicato a un processo P, loperatore di nasconde tutte le azioni nellalfabeto di P che NON appaiono nellinsieme a1..ax. Talvolta è più appropriato specificare linsieme di azioni che devono essere mostrate.... (operatore complementare)

Concurrency: concurrent execution22 ©Magee/Kramer Hiding di azioni UTENTE = (riserva->usa->rilascia->UTENTE) \{usa}. UTENTE = Le seguenti definizioni sono equivalenti: La minimizzazione rimuove azioni tau nascoste per produrre un LTS con comportamento osservabile equivalente. riservausa rilascia riserva rilascia

Concurrency: concurrent execution23 ©Magee/Kramer structure diagrams P a b Processo P con alfabeto {a,b}. P a b Q m Composizione Parallela (P||Q) / {m/a,m/b,c/d} c d c x x x P Q a S y x Composite process ||S = {x,y}