• Non ci sono risultati.

SISTEMI OPERATIVI SISTEMI OPERATIVI

N/A
N/A
Protected

Academic year: 2021

Condividi "SISTEMI OPERATIVI SISTEMI OPERATIVI"

Copied!
9
0
0

Testo completo

(1)

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)

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

(3)

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.

(4)

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

(5)

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)

(6)

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

(7)

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

(8)

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

(9)

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

Fine Fine

La concorrenza e i processi

Riferimenti

Documenti correlati

● Esterno: denota il nome di un programma eseguibile che viene eseguito dalla shell, lanciando un altro processo; quando il programma termina, il controllo ritorna alla

❖ Gestione dei processi ⎯ processi e thread, sincroniz- zazione e concorrenza, scheduling della CPU, scheduling real−time, deadlock. ❖ Gestione della memoria centrale e

Si illustri usando il linguaggio di programmazione Java il “protocollo di accesso alla sezione critica” di un thread con il meccanismo dei semafori.. Soluzione: Occorre utilizzare

c. Tempo di attesa è il tempo speso nella coda dei processi pronti. Come “verifica” nota che: tempo di attesa = tempo di turnaround – tempo di esecuzione).. Si consideri il

La richiesta può essere accolta in quanto il nuovo valore di Available risulta essere (1,1,0,0).. Un possibile ordinamento di terminazione dei processi è P0, P2, P3, P1,

 Gestione della Memoria: il sistema deve allocare memoria per più job.  Scheduling della CPU: il sistema deve scegliere tra più

 Coda dei processi pronti (ready queue) – contiene tutti i processi che risiedono nella memoria centrale, pronti e in attesa di esecuzione.  Coda della periferica di I/O

 Una chiamata al kernel può bloccare tutti i thread di un processo, indipendentemente dal fatto che in realtà solo uno dei suoi thread ha causato la chiamata bloccante.  In sistemi