02.a
SISTEMI OPERATIVI SISTEMI OPERATIVI
La concorrenza e i processi
1
16
Concorrenza: processi Concorrenza: processi
• La concorrenza nei sistemi
• Il Processo
• Tempi di esecuzione
• Scomposizione in stati
• Cooperazione e competizione
• Interferenza e determinatezza
2
Sistemi Operativi DEI UNIV PD © 2008
16
La concorrenza nei sistemi La concorrenza nei sistemi
Nel mondo reale:
● Ognuno “fa qualcosa” concorrentemente ad altri.
● Più individui collaborano per il raggiungimento di uno stesso obiettivo.
● Spesso occorre terminare una attività prima di poterne intraprendere un’altra.
● Un lavoro complesso si conclude prima se più soggetti collaborano fra loro.
● Le attività sviluppate da più persone sono per la maggior parte “indipendenti” e “non interferenti”
3
16
Pianificazione degli obiettivi Pianificazione degli obiettivi
Dato un obiettivo e n attori, è necessario:
● Pianificare le fasi intermedie di attività;
● Coordinare le attività degli attori;
● Predisporre le “risorse” necessarie;
● Rendere possibile la realizzazione delle varie fasi;
● Evitare intasamenti o conflitti negli “spazi”
comuni
4
Sistemi Operativi DEI UNIV PD © 2008
16
Trasposizione del mondo reale Trasposizione del mondo reale
• È possibile trasferire i concetti in modo intuitivo
Mondo realeMondo reale Sistemi di ElaborazioneSistemi di
Elaborazione
Attività di più individui Processi
Risorse comuni agli attori Risorse comuni
agli attori
Risorse comuni ai processi Risorse comuni
ai processi Supervisore Sistema Operativo
5
16
Il Processo Il Processo
• Attività = azioni dedicate a raggiungere uno scopo
• Processo = astrazione di attività
• Istruzioni per svolgere l’attività Attività
• Programma Processo
Definizione:
Un processo è una qualsiasi entità attiva che ha un suo percorso di sviluppo.
6
Sistemi Operativi DEI UNIV PD © 2008
16
Analogia Analogia
• Preparazione di una torta
● Ricetta ↔ Programma
● Materie prime, mestolo, terrina, pentola, forno ↔ Risorse
● Massaia ↔ Processore
● Preparazione di una torta ↔ Processo
• Se più massaie preparano ciascuna una torta
seguendo magari la stessa ricetta ma con risorse proprie
(compreso un proprio forno) ↔ Parallelismo
• Se la stessa massaia sfrutta i tempi di attesa per alternare la preparazione di una coppia di torte (ad esempio il tempo di lievitazione, la capienza
limitata ad una torta del forno) ↔ Concorrenza
• Se le risorse sono comuni o in parte comuni a
più massaie ↔ Interferenza
7
16
Programmi /vs Processi Programmi /vs Processi
Programma = Sequenza di istruzioni
È statico
≠
Processo = Sequenza di azioni eseguite dal programma
È dinamico
AlgoritmoAlgoritmo
ProgrammaProgramma
ProcessoreProcessore
ProcessoProcesso
8
Sistemi Operativi DEI UNIV PD © 2008
16
Evoluzione temporale di un processo Evoluzione temporale di un processo
• Stato di un processo = insieme dei valori di tutte le variabili di calcolo che vengono modificate durante le computazioni.
• Se gli stati sono molto numerosi, il diagramma temporale risultante è pressoché continuo.
9
16
Tempo di esecuzione di un processo Tempo di esecuzione di un processo
Te = Tf – T0 -- Dipende da numerosi fattori quali:
• Complessità dell’algoritmo
• Velocità del processore
• Attesa del completamento di operazioni, (es. acquisiz. dati)
10
Sistemi Operativi DEI UNIV PD © 2008
16
Stati dell’evoluzione di un processo
Solo transizioni di stato significative
Fattori significativi Fattori significativi
• Fattori che influenzano il tempo di esecuzione Te di un processo:
● Interni, ad es. la disponibilità di risorse, la velocità di esecuzione e altro ancora;
● Esterni, ad es. il processo deve attendere il completamento delle attività di altri processi.
Te non è prevedibile
11
16
Scomposizione di un processo Scomposizione di un processo
• è conveniente per motivi di analisi
• non è univoca, è soggettiva
• mette in evidenza e raggruppa le attività significative del processo
• non equivale alla scomposizione del programma in sottoprogrammi
12
Sistemi Operativi DEI UNIV PD © 2008
16
Scomposizione di un processo Scomposizione di un processo
• La scomposizione consente di individuare le interdipendenze tra i sottoprocessi.
• Consente di ricomporre in maniera ottimale i sottoprocessi elementari tenendo conto delle interdipendenze: Es.
13
16
Es.: preparazione e stampa di documenti Es.: preparazione e stampa di documenti
Durate 3 10 8 1 3 3 tot = 28 Terminazioni 3 13 21 22 25 28
Durate 3 1 10 3 8 3 tot = 28 Terminazioni 3 4 14 17 25 28
Durate 3 3 10 13 8 21 Terminazioni
Suddivisione del lavoro fra due processi:
● Pn = Battitura del documento
● Sn = Stampa del documento
14
Sistemi Operativi DEI UNIV PD © 2008
16
Cooperazione e competizione Cooperazione e competizione
• Sistema di elaborazione = insieme di processi interagenti che svolgono attività parzialmente contemporanee.
L’INTERAZIONE si manifesta in due forme
COOPERAZIONE Diminuisce il tempo di esecuzione e permette un elevato
sfruttamento delle risorse
COMPETIZIONE Più processi richiedono la stessa risorsa
15
16
Interferenza e determinatezza Interferenza e determinatezza
• Un sistema di processi è determinatose il risultato finale è prevedibile (non dipende dall'ordine o dalla velocità di esecuzione).
• Due processi A e B sono non interferenti se vale una delle due osservazioni:
• a) uno è il successore dell’altro;
• b) è nulla l'intersezione tra il dominio di A e il codominio di B (e viceversa) e tra i reciproci codomini
DOMDOM A CODCOD f
C è determinato Processi componenti NON interferenti
16
Sistemi Operativi DEI UNIV PD © 2008
16
• Con interferenza il risultato può dipendere dall’evoluzione temporale
• ⎧ a = b + c
⎩c = a + d
• Inizialmente vale a =3 b = 5 c = 8 d = 12
• Se l’ordine di calcolo è il seguente:
• a = 13 c = 25
• Se l’ordine di calcolo è il seguente:
• a = 20 c = 15
• Se l’ordine di calcolo è il seguente:
• a = 13 b = 15
Esempio Esempio
b+c = a a+d = c
a+d = c b+c = a
b+c a+d = a = c b+c
= c a+d
= a
02.a