PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
|
|
|
- Bartolommeo Longo
- 9 anni fa
- Просмотров:
Транскрипт
1 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 algoritmo mediante un opportuno formalismo (linguaggio di programmazione) che rende possibile l esecuzione dell algoritmo da parte di un particolare elaboratore (entità astratta realizzata in hardware e parzialmente in software) in grado di eseguire algoritmi specificati in un linguaggio ad alto livello). Processo Sequenza di eventi cui dà luogo un elaboratore quando opera sotto il controllo di un programma memorizzato Evento = esecuzione di un operazione tra quelle appartenenti all insieme che l elaboratore sa riconoscere ed eseguire (elab oratore astratto) 2 1
2 PROCESSO SEQUENZIALE Sequenza di stati attraverso i quali passa l elaboratore durante l esecuzione di un programma (storia di un processo o traccia dell esecuzione del programma) Esempio: valutare il massimo comune divisore tra due numeri naturali x e y a) Controllare se i due numeri x e y sono uguali, nel qual caso il loro M.C.D. coincide con il loro valore b) Se sono diversi, valutare la loro differenza c) Tornare ad a) prendendo in considerazione il più piccolo dei due e la loro differenza Un programma descrive non un processo, ma un insieme di processi, ognuno dei quali è relativo all esecuzione del programma da parte dell elaboratore per un determinato insieme di dati in ingresso 3 Esempio: M.C.D. di x e y (numeri naturali) { a = x; b = y; while (a!= b) if (a > b) a = a b else b = b-a; } x y a b stato iniziale stato finale 4 2
3 Più processi possono essere associati allo stesso programma (istanze). Ciascuno rappresenta l esecuzione dello stesso codice con dati di ingresso diversi. Esempi: Il compilatore di un linguaggio può dare luogo a più processi, ciascuno relativo alla traduzione di un particolare programma Il software di controllo può dare luogo a più processi che controllano dispositivi uguali o diversi 5 GRAFO DI PRECEDENZA Un processo può essere rappresentato tramite un grafo orientato detto grafo di precedenza del processo I nodi del grafo rappresentano i singoli eventi del processo, mentre gli archi identificano le precedenze temporali tra tali eventi Un evento corrisponde all esecuzione di un operazione tra quelle appartenenti all insieme che l elaboratore sa riconoscere ed eseguire Essendo il processo strettamente sequenziale, il grafo di precedenza è ad Ordinamento Totale (ogni nodo ha esattamente un predecessore ed un successore) a = b = b = 6 a = 12 a = 6 6 3
4 PROCESSI NON SEQUENZIALI L ordinamento totale di un grafo di precedenza deriva dalla natura sequenziale del processo (a sua volta imposta dalla natura sequenziale dell elaboratore). In taluni casi l ordinamento totale è implicito nel problema da risolvere; spesso è un imposizione che deriva dalla natura sequenziale dell elaboratore. Esistono molti esempi di applicazioni che potrebbero più naturalmente essere rappresentate da processi (non sequenziali) tra i cui eventi esiste un ordinamento non totale ma solo parziale. 7 Esempio: valutazione dell espressione (3 * 4) + (2 + 3) * (6-2) Grafo di precedenza ad ordinamento totale: 3 * 4 = 12 Grafo di precedenza ad ordinamento parziale: INIZIO = 5 3 * 4 = = = = 4 5 * 4 = = 32 5 * 4 = = 32 FINE 8 4
5 Esempio segue: La logica del problema non impone un ordinamento totale fra le operazioni da eseguire; ad esempio è indifferente che venga eseguito (2 + 3) prima di eseguire (6-2) o viceversa. Entrambe le operazioni precedenti devono invece essere eseguite prima del prodotto dei loro risultati Certi eventi del processo sono tra loro scorrelati da qualunque relazione di precedenza temporale; il risultato dell elaborazione è indipendente dall ordine con cui gli eventi avvengono Molti settori applicativi possono essere rappresentati da processi non sequenziali: sistemi in tempo reale, sistemi operativi, sistemi di simulazione, etc 9 Esempio: Elaborazione di dati su un file sequenziale Grafo di precedenza ad ordinamento totale: N rec elaborazione N rec inizio file 1 file 2 L1 Var buffer : T; i : 1..N; Begin fori := 1toN do lettura (buffer); elaborazione(buffer); scrittura (buffer); end (L) (E) (S) E1 S1 Ln En Sn fine 10 5
6 Esempio segue: La logica del problema impone due soli vincoli 1. Le operazioni di lettura (o elaborazione o scrittura) dovranno essere eseguite in sequenza sugli N record 2. Le operazioni di lettura, elaborazione e scrittura di un record dovranno essere eseguite in quest ordine Non esiste alcuna relazione logica di precedenza tra la lettura dell i-esimo e la scrittura dell (i-1)-esimo Il grafo degli eventi più naturale risulta essere quello ad ordinamento parziale 11 Esempio segue: GRAFO AD ORDINAMENTO PARZIALE inizio L1 L2 L3 E1 E2 E3 S1 S2 S3 Ln En Sn fine 12 6
7 Un arco che collega un nodo di un processo con il nodo di un altro rappresenta il vincolo di precedenza tra i corrispondenti eventi Vincolo di sincronizzazione: ordinamento di eventi L esecuzione di un processo non sequenziale richiede elaboratore non sequenziale linguaggio di programmazione non sequenziale Elaboratore non sequenziale (in grado di eseguire più operazioni contemporaneamente): architettura parallela sistemi multielaboratori (a) sistemi monoelaboratori (b) P1 P1 P1 P2 P2 P2 (a) t (b) t 13 LINGUAGGI DI PROGRAMMAZIONE NON SEQUENZIALI Caratteristica comune: consentire la descrizione di un insieme di attività concorrenti tramite moduli sequenziali che possono essere eseguiti in parallelo (processi sequenziali) Scomposizione di un processo non sequenziale in un insieme di processi sequenziali, eseguiti contemporaneamente, ma analizzati e programmati separatamente Consente di dominare la complessità di un algoritmo non sequenziale Le attività rappresentate dai processi possono essere completamente indipendenti interagenti 14 7
8 SCOMPOSIZIONE DI UN ALGORITMO NON SEQUENZIALE IN PROCESSI SEQUENZIALI ESEGUITI CONCORRENTEMENTE P1 P2 P3 e11 e11 e11 e12 e12 e12 e13 e13 e13 PROCESSI INDIPENDENTI (asincroni) L evoluzione di un processo non influenza quella dell altro 15 Nel caso di grafi connessi ad ordinamento parziale, la scomposizione del processo globale in processi sequenziali consiste nell individuare sul grafo un insieme P1.Pn di sequenze di nodi (insiemi di nodi totalmente ordinati) P1 L1 L2 L3 P2 E1 E2 E3 P3 S1 S2 S3 Presenza di vincoli di precedenza tra le operazioni dei processi (espresse dagli archi) o vincoli di sincronizzazione 16 8
9 In questo caso i tre processi non sono fra loro indipendenti (processi interagenti) Le interazioni tra i processi di lettura, elaborazione e scrittura sono relative ad uno scambio di informazioni. I dati su cui opera il processo di elaborazione sono forniti dal processo di lettura Vincolo di sincronizzazione: vincolo imposto da ogni arco del grafo di precedenza che collega nodi di processi diversi I due processi, quando arrivano ad un punto di interazione corrispondente ad uno scambio di informazioni, devono sincronizzarsi, cioè ordinare i loro eventi come specificato dal grafo di precedenza 17 VARI TIPI DI DECOMPOSIZIONE La decomposizione di un grafo di precedenza ad ordinamento parziale in un insieme di sequenze di nodi (processi) può essere fatta in vari modi ESEMPIO: Lettura, elaborazione e scrittura dell i-esimo record (i=1,2,,n) Li Ei Si I vincoli di sincronizzazione sono gli archi verticali del grafo La scelta più idonea del tipo di decomposizione in processi sequenziali di un elaborazione non sequenziale è quella per la quale le interazioni tra processi sono poco frequenti così da agevolare l analisi separata della singole attività 9
10 INTERAZIONE TRA PROCESSI COOPERAZIONE comprende tutte le interazioni prevedibili e desiderate, insite cioè nella logica dei programmi (archi, nel grafo di precedenza ad ordinamento parziale). Prevede: scambio di informazioni segnale temporale (senza trasferimento di dati) messaggi (dati) (comunicazione) In entrambi i casi esiste un vincolo di precedenza (sincronizzazione) tra gli eventi di processi diversi COMPETIZIONE La macchina concorrente su cui i processi sono eseguiti mette a disposizione un numero limitato di risorse Competizione per l uso di risorse comuni che non possono essere usate contemporaneamente Interazione prevedibile e non desiderata ma necessaria 19 SCAMBIO DI SEGNALI TEMPORALI Processo P, costituito da tre operazioni p1, p2, p3, deve essere eseguito ogni due secondi Processo Q, costituito da quattro operazioni q1, q2, q3, q4, deve essere eseguito ogni tre secondi Processo O (orologio) ha il compito di registrare il passare del tempo e di attivare periodicamente i processi P e Q inviando segnali temporali I nodi O1, O2, rappresentano le azioni del processo O e denotano i secondi scanditi dall orologio Gli archi che collegano i nodi di O con i nodi di P (Q) rappresentano i vincoli di precedenza dovuti al fatto che P (Q) deve essere riattivato ogni due (tre) secondi 20 10
11 processo P processo O processo Q p 1 O1 Q 1 p 2 O2 q 2 p 3 O3 q 3 p 1 O4 q 4 p 2 O5 q 1 p 3 O6 q 2 21 Conclusa una esecuzione P (Q) deve attendere un nuovo segnale di attivazione prima di ricominciare. Relazione di causa ed effetto tra l esecuzione dell operazione di invio da parte del processo mittente e l esecuzione dell operazione di ricezione da parte del processo ricevente. Vincolo di precedenza tra questi eventi (sincronizzazione dei due processi). Comunicazione: è previsto uno scambio di dati. Linguaggio di programmazione deve fornire costrutti linguistici atti a specificare la sincronizzazione e la eventuale comunicazione tra i processi 22 11
12 COMPETIZIONE Due processi P e Q devono usare in certi istanti una comune stampante ps1, ps2,, psn e qs1, qs2,,qsn sono le istruzioni che P e Q devono rispettivamente eseguire per produrre un messaggio sulla stampante Le due sequenze devono essere eseguite in modo mutuamente esclusivo processo P px ps1 ps2 psn py processo Q qx qs1 qs2 qsn qy px e py (qx e qy) denotano rispettivamente l ultima operazione eseguita da P (Q) prima della stampa e la prima eseguita dopo la stampa 23 L interazione si estrinseca in un vincolo di precedenza tra eventi di processi diversi (psn deve precedere qs1), cioè in un vincolo di sincronizzazione. Non è (come nel caso della comunicazione) un vincolo di causa ed effetto, cioè l ordine con cui devono avvenire due eventi non è sempre lo stesso. Basta che sia verificata la proprietà di mutua esclusione processo P px ps1 ps2 psn py processo Q qx qs1 qs2 qsn qy 12
13 Cooperazione sincronizzazione diretta o espllicita Competizione sincronizzazione indiretta o implicita Interferenza provocata da errori di programmazione Inserimento nel programma di interazioni tra processi non richieste dalla natura del problema Erronea soluzione a problemi di interazione (cooperazione e competizione) necessarie per il corretto funzionamento del programma Interazione non prevista non desiderata dipende dalla velocità relativa dei processi gli errori possono manifestarsi nel corso dell esecuzione del programma a seconda delle diverse condizioni di velocità di esecuzione dei processi (ERRORI DIPENDENTI DAL TEMPO) 25 Esempio di interferenza del primo tipo: Solo P deve operare su una risorsa R. Per errore di programmazione viene inserita in Q un istruzione che modifica lo stato di R. La condizione di errore si presenta solo per particolari velocità relative dei processi. Esempio di interferenza del secondo tipo: P e Q competono per una stampante. Si garantisce la mutua esclusione solo per la stampa della prima linea. La condizione di errore si presenta solo per particolari velocità relative dei processi. Obiettivo fondamentale della programmazione concorrente è l eliminazione delle interferenze
Processi non sequenziali e tipi di interazione
Processi non sequenziali e tipi di interazione Algoritmo, programma, processo Algoritmo: Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma: Descrizione di un
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
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
MODELLO A MEMORIA COMUNE. Aspetti caratterizzanti
MODELLO A MEMORIA COMUNE Aspetti caratterizzanti 1 Ogni applicazione viene strutturata come un insieme di componenti, suddiviso in due sottoinsiemi disgiunti: processi (componenti attivi) e risorse (componenti
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
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO
Lez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
Architettura dei Sistemi Operativi Centro Multimediale Montiferru GRAFI DI PRECEDENZE. Cobegin-Coend e Fork-Join
GRAFI DI PRECEDENZE Cobegin-Coend e Fork-Join Un grafo di precedenza è un grafo diretto che non contiene cicli. E composto da un certo numero di nodi, dove ogni nodo rappresenta una attività, per esempio
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
Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
Automa a Stati Finiti (ASF)
Automa a Stati Finiti (ASF) E una prima astrazione di macchina dotata di memoria che esegue algoritmi Introduce il concetto fondamentale di STATO che informalmente può essere definito come una particolare
I Processi. Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate. Architettura degli elaboratori Bistabili e Clock
Università degli tudi dell Insubria Dipartimento di cienze Teoriche e Applicate Architettura degli elaboratori Bistabili e Clock Marco Tarini Dipartimento di cienze Teoriche e Applicate [email protected]
Macchine sequenziali. Automa a Stati Finiti (ASF)
Corso di Calcolatori Elettronici I Macchine sequenziali Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)
SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
Sequential Functional Chart (SFC) - Parte 2
Sequential Functional Chart (SFC) - Parte 2 Vincenzo Suraci Automazione STRUTTURA DEL NUCLEO TEMATICO STRUTTURE DI COLLEGAMENTO Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 2 STRUTTURE DI COLLEGAMENTO
Programmazione strutturata
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo
TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE
TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso
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
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
Concetti Introduttivi. Il Computer
Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta
I Diagrammi di Flusso OO
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - I Diagrammi di Flusso OO Generalità I diagrammi di attività vengono usati per modellare processi a
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati Prof. Alberto Postiglione Università degli
Unità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere
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
Luigi Piroddi
Automazione industriale dispense del corso (a.a. 2008/2009) 9. Reti di Petri: analisi dinamica e metodi di riduzione Luigi Piroddi [email protected] Metodi di analisi di Reti di Petri Ci sono 2 modi
LA METAFORA DELL UFFICIO
LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome
CAPITOLO 3 - ALGORITMI E CODIFICA
FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)
Il Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI
CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di
Architettura del Calcolatore
Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore
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
Studio degli algoritmi
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi
Programmazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato [email protected] www.cs.unicam.it/massimo.callisto LEZIONE
Indice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
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 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
Fondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:
Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti
SISTEMI INFORMATIVI E DATABASE
SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,
