TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e
- Slides: 18
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza 16 0 2 / 3 0 / 8 BOZZA: 1 GIORGIO PORCU www. thegiorgio. it © 2016 Giorgio Porcu - Aggiornamennto ISTITUTO TECNICO SECONDO BIENNIO
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Sommario • Elaborazione concorrente © 2016 Giorgio Porcu - Aggiornamennto § Elaborazione sequenziale § Elaborazione concorrente § Elaborazione parallela • Grafi di Precedenza § Grafi di Precedenza: Simboli § Pseudocodice Grafo di Precedenza § Esempi 2
Il Sistema Operativo Concorrenza e Grafi di precedenza © 2016 Giorgio Porcu - Aggiornamennto TECNOLOGIE E PROGETTAZIONE Elaborazione concorrente 3
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Elaborazione sequenziale © 2016 Giorgio Porcu - Aggiornamennto • Elaborazione Sequenziale Esecuzione di un programma in modo sequenziale attraverso un processo (thread) costituito da una sequenza di istruzioni. E’ tipica dell’architettura di Von Neumann a singola CPU. Prevede che in ogni istante di tempo sia eseguita una sola istruzione, come nella struttura sequenza della programmazione. 4
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza • Elaborazione Concorrente Esecuzione di più attività (programmi, processi o thread) in contemporanea. Prevede che in ogni istante di tempo possano essere potenzialmente eseguite più istruzioni. • Processi Concorrenti Due processi A e B si dicono concorrenti se la prima operazione di B inizia prima del completamento dell’ultima operazione di A. 5 © 2016 Giorgio Porcu - Aggiornamennto Elaborazione concorrente (1/2)
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Elaborazione concorrente (2/2) © 2016 Giorgio Porcu - Aggiornamennto • Concorrenza, Parallelismo ed evoluzione La contemporaneità non significa sempre parallelismo reale, che avviene solo se il sistema: § Supporta a livello Hardware più CPU o Core § Supporta a livello Software (Kernel del Sistema Operativo) l’esecuzione di thread in parallelo Processi concorrenti possono essere indipendenti, cooperanti o in competizione da un punto di vista dell’evoluzione nel tempo. 6
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Elaborazione parallela © 2016 Giorgio Porcu - Aggiornamennto • Elaborazione Parallela Esecuzione di più attività (programmi, processi o thread) in parallelo. Prevede che in ogni istante di tempo siano eseguite più istruzioni su processori differenti sotto il controllo del Sistema Operativo. Garantisce un migliore utilizzo dell’hardware di sistema e una riduzione dei tempi d’esecuzione ma non è sempre attuabile. 7
Il Sistema Operativo Concorrenza e Grafi di precedenza © 2016 Giorgio Porcu - Aggiornamennto TECNOLOGIE E PROGETTAZIONE Grafi di precedenza 8
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Grafo di Precedenza: Simboli (1/2) § Blocco di istruzioni (Istruzione, Processo, Thread, Attività): Cerchio. © 2016 Giorgio Porcu - Aggiornamennto • Grafo di Precedenza Rappresentazione grafica della precedenza temporale di esecuzione tra istruzioni. Utilizza i seguenti simboli grafici di base: A § Precedenza: Freccia direzionale § Istruzioni in sequenza A precede B B inizia dopo A A A B B 9
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Grafo di Precedenza: Simboli (2/2) A B C § Inizio parallelismo A precede sia B che C B e C sono eseguibili in parallelo dopo A B § Fine parallelismo C B e C precedono D D è eseguibile al termine di B e C D A B C © 2016 Giorgio Porcu - Aggiornamennto • Grafo di Precedenza D 10
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Grafo di Precedenza e concorrenza © 2016 Giorgio Porcu - Aggiornamennto • Grafo di Precedenza e concorrenza Il Grafo di Precedenza consente di descrivere le attività concorrenti (potenzialmente parallele) da eseguire su un elaboratore. E’ quindi un utile supporto per: § L’analisi e la sintesi della concorrenza nei programmi § La programmazione concorrente: l’utente, sfruttando opportuni linguaggi, definisce esplicitamente porzioni di codice parallelizzabili 11
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza • Pseudocodice Grafo di precedenza Una prima applicazione pratica dei Grafi di precedenza consiste in: 1. Analizzare lo pseudocodice di un programma sequenziale Lo pseudocodice è una rappresentazione di un algoritmo simile al codice di un linguaggio di programmazione 2. Trasformarlo in un Grafo di precedenza che utilizzi il parallelismo al massimo livello 12 © 2016 Giorgio Porcu - Aggiornamennto Pseudocodice Grafo di Precedenza
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza • Realizzare un Grafo di precedenza Per realizzare il Grafo di Precedenza occorre ragionare con logica su alcuni aspetti: § Eseguire in parallelo solo istruzioni che non utilizzino la stessa variabile. Un accesso condiviso a una porzione di memoria è difatti potenziale causa di errore § Preservare la precedenza temporale delle istruzioni stabilita nel pseudocodice § Garantire la corretta precedenza tra istruzioni sulla stessa variabile per evitare che assuma valori non coerenti 13 © 2016 Giorgio Porcu - Aggiornamennto Realizzare un Grafo di Precedenza
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Consideriamo il seguente algoritmo in pseudocodice per calcolare e visualizzare il maggiore tra 3 numeri letti da tastiera: 1. 2. 3. 4. 5. 6. inizio Leggi X; Leggi Y; Leggi Z; K Max(X, Y); K Max(K, Z); Scrivi K; fine Esempio tratto da: Camagni, Nikolassy Tecnologie e progettazione di sistemi informatici e di telecomunicazioni Hoepli – ISBN 9788820351571 // richiama funzione Max() 14 © 2016 Giorgio Porcu - Aggiornamennto Grafo di Precedenza: Esempio 1 (1/3)
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Grafo di Precedenza: Esempio 1 (2/3) © 2016 Giorgio Porcu - Aggiornamennto Un possibile Grafo di precedenza che lo descrive sfruttando il parallelismo è il seguente: Esempio tratto da: Camagni, Nikolassy Tecnologie e progettazione di sistemi informatici e di telecomunicazioni Hoepli – ISBN 9788820351571 15
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Grafo di Precedenza: Esempio 1 (3/3) © 2016 Giorgio Porcu - Aggiornamennto In alternativa, è altrettanto corretto descrivere lo pseudocodice con questo Grafo di precedenza: Esempio tratto da: Camagni, Nikolassy Tecnologie e progettazione di sistemi informatici e di telecomunicazioni Hoepli – ISBN 9788820351571 16
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Grafo di Precedenza: Esempio 2 (1/2) inizio 1. (2*6) + (1+4) * (5 -2); fine © 2016 Giorgio Porcu - Aggiornamennto Consideriamo il seguente algoritmo in pseudocodice che esegue un’espressione matematica: Esempio tratto e adattato da: Camagni, Nikolassy Tecnologie e progettazione di sistemi informatici e di telecomunicazioni Hoepli – ISBN 9788820351571 In questo caso per realizzare il Grafo di precedenza ragioniamo sulla naturale priorità tra operatori matematici: prima si eseguono le operazioni tra parentesi, poi le moltiplicazioni/divisioni, infine le addizioni/sottrazioni 17
TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi di precedenza Grafo di Precedenza: Esempio 2 (2/2) © 2016 Giorgio Porcu - Aggiornamennto Ne traiamo il seguente Grafo di precedenza che lo descrive sfruttando il parallelismo: Esempio tratto da: Camagni, Nikolassy Tecnologie e progettazione di sistemi informatici e di telecomunicazioni Hoepli – ISBN 9788820351571 18
- Sistema alimentare sostenibilità management e tecnologie
- Ente per le nuove tecnologie
- Uso responsabile delle tecnologie
- Ente per le nuove tecnologie
- Tesina seconda guerra mondiale
- Mosaico tecnologie
- Cosa sono le tic?
- Nuove tecnologie fotovoltaico
- Características de un sistema operativo
- Estructura sistema operativo
- Sistemas operativos distribuidos
- Capas de sistema operativo
- Router os
- Objetivo general de sistemas operativos
- Sistema operativo windows 2000
- Sistema operativo
- Definizione sistema operativo
- Sistema operativo propietario
- Sistema operativo symbian ventajas y desventajas