I Segnali - PowerPoint PPT Presentation

About This Presentation
Title:

I Segnali

Description:

Concetti di base della Programmazione Concorrente Programmazione Sequenziale La programmazione di solito insegnata con riferimento ad un esecutore sequenziale Un ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 31
Provided by: Valte
Category:

less

Transcript and Presenter's Notes

Title: I Segnali


1
Concetti di base dellaProgrammazione
Concorrente
2
Programmazione Sequenziale
  • La programmazione è di solito insegnata con
    riferimento ad un esecutore sequenziale
  • Un esecutore sequenziale svolge una sola azione
    alla volta sulla base di un programma sequenziale
  • Lesecuzione di un programma sequenziale origina
    un processo sequenziale che conferisce un
    ordinamento totale alle azioni eseguite
  • La programmazione di un esecutore concorrente,
    ovvero in grado di eseguire più istruzioni
    contemporaneamente, sebbene più difficile di
    quella tradizionale, ha forti motivazioni
    didattiche e pratiche

3
Programmazione Concorrente Motivazioni
  • Migliorare la comprensione di un SO che regola
    diverse attività parallele
  • Sfruttare le prestazioni ottenibili da
    architetture multi-processor
  • un programma sequenziale non giova di una
    architettura parallela
  • Migliorare la reattività delle applicazioni
    allinput dellutente durante lunghe operazioni
    di I/O o di elaborazione
  • La maggiore naturalezza con la quale si possono
    scrivere alcune tipologie di applicazioni
    (server, robotica, giochi, simulazioni di
    attività concorrenti)?

4
Utilizzo dei Processori Applicazione mono-thread
5
Utilizzo dei Processori Applicazione
multi-thread
6
Legge di Amdahl
Nel riquadro viene indicata la frazione
sequenziale del calcolo
7
Istruzione ed Area Memoria
  • Per ragionare a vari livelli di granularità,
    consideriamo astrattamente i due concetti di
    istruzione ed area di memoria
  • Istruzione alcune possibili esemplificazioni
  • istruzione macchina
  • istruzione firmware
  • uno statement java
  • un metodo di una classe java
  • un intero programma
  • una stored-procedure di un DBMS
  • la scrittura di un blocco del gestore della
    concorrenza di un DBMS
  • Area di Memoria alcune possibili
    esemplificazioni
  • un bit, un byte, una parola macchina
  • un campo di una struttura dati, una struttura
    dati intera
  • un attributo, una tupla, una tabella, un intero
    db
  • un blocco di un dispositivo di memoria secondaria

8
Processi Paralleli o Concorrenti
  • Un processo sequenziale definisce un ordinamento
    totale sulle istruzioni
  • Un processo parallelo definisce un ordinamento
    parziale sulle istruzioni
  • su alcune istruzioni lesecutore è libero di
    scegliere quali iniziare prima e/o di eseguirle
    contemporaneamente
  • Esempio consideriamo un banale programma per
    calcolare e stampare le prime quattro potenze di
    un valore X. Si supponga di disporre di tre sole
    tipologie di istruzione
  • leggi ltvariabilegt
  • scrivi ltvariabilegt
  • ltvariabilegt ? ltvariabilegt ltvariabilegt

9
Diagramma delle Precedenze
Algoritmo sequenziale
  • begin
  • 1. leggi X
  • 2. scrivi X
  • 3. X2 ? X X
  • 4. scrivi X2
  • 5. X3 ? X2 X
  • 6. scrivi X3
  • 7. X4 ? X2 X2
  • 8. scrivi X4
  • end

10
Diagramma delle Precedenze
leggi X
Algoritmo parallelo
Algoritmo sequenziale
  • begin
  • 1. leggi X
  • 2. scrivi X
  • 3. X2 ? X X
  • 4. scrivi X2
  • 5. X3 ? X2 X
  • 6. scrivi X3
  • 7. X4 ? X2 X2
  • 8. scrivi X4
  • end

scrivi X
X2 ?XX
scrivi X2
X3 ?X2X
X4?X2X2
scrivi X3
scrivi X4
11
Esercizi
Costruire un diagramma delle precedenze che
esprima il massimo grado di parallelismo nel
calcolo delle seguenti espressioni sullo stile
dellesempio appena visto (AB)(CD)?
12
Esecuzioni Sequenziale e Parallele
  • Sia i una generica istruzione, in generale può
    essere divisibile in istruzioni più elementari
  • Siano Ii e Fi gli eventi di inizio e fine
    esecuzione
  • Date due istruzioni a e b consideriamo i 6
    possibili ordinamenti in cui occorrono i quattro
    eventi Ia, Fa, Ib, Fb
  • Ia Ib Fa Fb
  • Ia Fa Ib Fb Ia Ib Fb Fa
  • Ib Fb Ia Fa Ib Ia Fa Fb
  • Ib Ia Fb Fa
  • esecuzioni sequenziali esecuzioni parallele

13
Sequenze di Esecuzione Ammissibili
  • Una sequenza di esecuzione ammissibile è una
    sequenza di questi eventi che rispetta i vincoli
    espressi dal diagramma delle precedenze
  • Ad un certo diagramma delle precedenze
    corrispondono molteplici sequenze di esecuzione
    ammissibili
  • Ad es., con riferimento al precedente diagramma

Ii1Fi1Ii2Ii3Fi2Fi3Ii4Ii7Ii5Fi5Fi7Fi4Ii6Fi6Ii8Fi8
14
Sequenze di Interleaving
  • Un caso speciale ma rilevante di sequenza di
    esecuzione ammissibile consideriamo
  • un solo esecutore fisico
  • istruzioni indivisibili
  • due processi sequenziali A e B con istruzioni
  • a1a2a3a4
  • b1b2b3b4
  • Diciamo sequenza di interleaving la sequenza
    scelta dallesecutore, ad esempio
  • a1b1b2a2b3a3a4b4
  • Analogamente per tre o più processi

15
Processori Virtuali
  • Nei sistemi operativi moderni, molteplici
    esecutori virtuali possono essere implementati
    con uno o più processori fisici attraverso
    tecniche di context-switching
  • In base al numero di processori fisici
    disponibili ed al numero di processi esistenti,
    risultano possibili varie situazioni per far
    avanzare concorrentemente i processi
  • interleaving
  • overlapping
  • una combinazione di queste due

16
Overlapping ed Interleaving
  • Lesecutore può eseguire più istruzioni
    concorrentemente mediante
  • overlapping
  • interleaving
  • combinazione

CPU0
Pa
t
CPU1
Pb
t
CPU0
CPU0
Pa
t
Pb
CPU0
CPU0
t
Pa
CPU0
CPU1
t
Pb
CPU1
CPU0
t
17
Quando Eseguire Concorrentemente?
  • Dato un programma sequenziale, non è difficile
    costruire un equivalente diagramma delle
    precedenze
  • Tuttavia è opportuno stabilire un criterio
    generale per capire se due istruzioni possono
    essere eseguite concorrentemente o meno
  • per ottenere diagrammi delle precedenze che
    esprimono il massimo grado di parallelismo
    possibile
  • per automatizzare il calcolo dei vincoli che
    esprimono
  • Quando è lecito eseguire
  • concorrentemente due istruzioni ia e ib ?

18
Dominio e Rango
  • Indichiamo con A, B, X, Y, unarea di memoria
  • Una istruzione i
  • dipende da una o più aree di memoria che
    denotiamo domain(i), ovvero dominio di i
  • altera il contenuto di una o più aree di memoria
    che denotiamo range(i) di i, ovvero rango di i
  • Ad es. per la procedura P
  • procedure P
  • begin
  • X ? A X
  • Y ? A B
  • end

domain(P) A, B, X range(P) X, Y
19
Condizioni di Bernstein
  • Quando è lecito eseguire
  • concorrentemente due istruzioni ia e ib ?
  • se valgono le seguenti condizioni, dette
    Condizioni di Bernstein
  • range(ia) n range(ib) Ø
  • range(ia) n domain(ib) Ø
  • domain(ia) n range(ib) Ø

20
Condizioni di Bernstein (2)?
  • Si osservi che non si impone alcuna condizione su
  • domain(ia) n domain(ib)?
  • Sono banalmente estendibili al caso di tre o più
    istruzioni
  • Esempi di violazione per le due istruzioni
  • X ? Y 1 X ? Y 1 (violano la 1.)?
  • X ? Y 1 Y ? X - 1 (violano la 2. e la 3.)?
  • scrivi X X ? X Y (violano la 3.)?

21
Effetti delle Violazioni
  • Quando un insieme di istruzioni soddisfa le
    condizioni di Bernstein, il loro esito
    complessivo sarà sempre lo stesso
    indipendentemente dallordine e dalle velocità
    relative con cui vengono eseguite
  • in altre parole, indipendentemente dalla
    particolare sequenza di esecuzione seguita dai
    processori
  • ovvero, sarà sempre equivalente ad una loro
    esecuzione seriale
  • Al contrario, in caso di violazione, gli errori
    dipendono dallordine e dalle velocità relative
    generando il fenomeno dellinterferenza

22
Esempio di Interferenza (1)?
  • La disponibilità di un volo di una compagnia
    aerea è memorizzata in POSTI1. Due signori nel
    medesimo istante ma da due postazioni distinte,
    chiedono rispettivamente di prenotare lultimo
    posto e di disdire la prenotazione già effettuata
  • Le due richieste vengono tradotte in queste
    sequenze di istruzioni elementari indivisibili

procedure Prenota begin Ra ? POSTI - 1 POSTI
? Ra end
procedure Disdici begin Rb ? POSTI 1 POSTI
? Rb end
23
(No Transcript)
24
Interferenza
  • Si ha interferenza in presenza di
  • due o più flussi di esecuzione
  • almeno un flusso di esecuzione eseguente
    scritture
  • Perché
  • un flusso esegue un cambio di stato dellarea di
    memoria in maniera non atomica
  • gli stati transienti che intercorrono tra quello
    iniziale a quello finale sono visibili a flussi
    di esecuzione diversi da quello che li sta
    producendo

25
(No Transcript)
26
Errori Dipendenti dal Tempo
  • Linterferenza causa errori particolarmente
    temibili perché dipendenti dalla sequenza di
    interleaving effettivamente eseguita
  • Questi errori sono particolarmente temibili
    perché
  • ciascuna sequenza di esecuzione può produrre
    effetti diversi
  • la scelta della particolare sequenza adottata è
    (dal punto di vista del programmatore) casuale

27
Caratteristiche degli Errori Dipendenti dal Tempo
  • irriproducibili possono verificarsi con alcune
    sequenze e non con altre
  • indeterminati esito ed effetti dipendono dalla
    sequenza
  • latenti possono presentarsi solo con
    sequenze rare
  • difficili da verificare, e testare perché le
    tecniche di verifica e testing si basano sulla
    riproducibilità del comportamento

28
Il Programmatore e gli Errori Dipendenti dal Tempo
  • Il programmatore non può fare alcuna assunzione
  • sulla particolare sequenza di interleaving
    eseguita, ovvero
  • sulle velocità relative dei vari processori
    virtuali
  • su un qualsiasi altro tipo di sincronismo legato
    alla specifica implementazione dei processori
    virtuali
  • Un programma che implicitamente od esplicitamente
    basa la propria correttezza su ipotesi circa la
    velocità relativa dei vari processori, è
    scorretto
  • Esiste una sola assunzione che possono fare i
    programmatori sulla velocità dei processori
    virtuali

29
Assunzione di Progresso Finito
  • Tutti i processori virtuali hanno
  • una velocità finita non nulla
  • Questa assunzione è lunica che si può fare sui
    processori virtuali e sulle loro velocità relative

30
Starvation Deadlock
  • Esistono due diverse situazioni che possono
    invalidare lassunzione di progresso finito
  • starvation quando un processo rimane in attesa
    di un evento che pure si verifica infinite volte
  • un sistema di processi che garantisce contro
    questa evenienza si dice che gode della proprietà
    di fainess
  • deadlock (o stallo) quando due o più processi
    rimangono in attesa di eventi che non potranno
    mai verificarsi a causa di condizioni cicliche
    nel possesso e nella richiesta di risorse
  • esempio classico un processo Pa possiede una
    risorsa R1 e richiede una risorsa R2 già
    posseduta da un altro processo Pb questultimo
    a sua volta richiede luso di R1
Write a Comment
User Comments (0)
About PowerShow.com