29
Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Embed Size (px)

Citation preview

Page 1: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Informatica

Lezione 7

Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale)

Anno accademico: 2006-2007

Page 2: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esecuzione sequenziale

Processo P1 Processo P2

Processore

inizio fine inizio fine

esecuzione in attesa

attivo idle

Page 3: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esecuzione sequenziale

• Supponiamo che il nostro sistema sia un bar in cui il barista serve diversi clienti

• Il barista è corrispondente del processore, i clienti sono l’equivalente dei processi da eseguire

• Esecuzione mono-programmati:

Ordinare Preparareil caffè

ConsumarePagare

Ordinare Preparareil caffè

ConsumarePagare

Cliente 1 Cliente 2

Page 4: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Soluzione

• In realtà:

Ordinare(C1)

Preparareil caffè (C1)

Pagare(C1)

Ordinare(C2)

Preparareil caffè (C2)

Pagare(C2)

Cliente 1

Cliente 2

Page 5: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Soluzione: sistemi multiprogrammati

• Quando il processore è nello stato di idle la si può sfruttare per eseguire (parte di) un altro processo

• Quando un processo si ferma (per esempio in attesa di un dato dall’utente) il processore può passare ad eseguire le istruzioni di un altro processo

• Il sistema operativo si occupa dell’alternanza tra i processi in esecuzione

Page 6: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

Dal punto di vista dei processi

Dal punto di vista del processore

P1

P2

esec P1 esec P2

Page 7: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

• Più programmi sembrano essere eseguiti “contemporaneamente”

• In realtà in esecuzione c’è sempre un solo processo– Ma, se l’alternanza è molto frequente, si ha

un’idea di simultaneità

Page 8: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

• Un processo può trovarsi in tre diversi stati: in esecuzione, in attesa, pronto

esecuzione

attesapronto

Quando sta utilizzandoil processore

Quando è in attesa del verificarsidi un evento esterno

Quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo

Page 9: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

esecuzione

attesapronto

scambio esecuzione

richiesta I/Oo risorse

I/O terminato orisorsa disponibile

terminazione

Page 10: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

pronto

Quando un processo viene creato vienemesso nello stato di pronto• in tale stato rimane fino a quandonon arriverà il suo turno

Page 11: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

esecuzione

attesapronto

scambio esecuzione

Page 12: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

esecuzione

attesapronto

Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni

Page 13: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

esecuzione

attesapronto

terminazione

Il processo terminala sua esecuzionee abbandona il sistema

Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni

Page 14: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

esecuzione

attesapronto

richiesta I/Oo risorse

terminazione

Il processore viene liberato e può essere concesso ad un altro processo pronto

Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni

Page 15: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

esecuzione

attesapronto

scambio esecuzione

richiesta I/Oo risorse

terminazione

Per realizzare in modo equo l’alternanza tra i processi, in certi casi può essereopportuno fermare un processo e concedere il processore ad un altro processo

Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni

Page 16: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multiprogrammati

• In quali casi è opportuno fermare un processo e concedere il processore ad un altro processo?– Se un processo non si ferma mai in attesa di

input/output o di una risorsa– Se più utenti vogliono usare il computer

• In questi casi è necessario far sì che il processore sia distribuita tra i processi dello stesso utente e di utenti diversi

• Si parla di scheduling del processore

Page 17: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esempio di scheduling: Round Robin

• Ad ogni processo viene assegnato un quanto di tempo del processore (time slice)

• Terminato il quanto di tempo, il processo viene sospeso e rimesso nella coda dei processi pronti (al fondo della coda)

• Il processore viene assegnata ad un altro processo pronto

• Un processo può usare meno del quanto che gli spetta se deve eseguire operazioni di I/O oppure ha terminato la sua computazione

Page 18: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esempio di scheduling: Round Robin

esecuzione

attesapronto

in esecuzione richiesta I/Oo risorse

I/O terminato orisorsa disponibile

terminazione

quanto ditempo scaduto

Più precisamente, nel caso della politica di scheduling Round Robin

Page 19: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Sistemi multi-utente, multi-programmati

• Più utenti possono usare allo stesso tempo il computer– … perché il processore viene assegnata

periodicamente ai processi dei vari utenti (per esempio ogni 10 o 100 millisecondo)

• All’aumentare del numero di processi e del numero di utenti le prestazioni del sistema possono degradare

Page 20: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esercizio 1a

• Supponiamo di avere nella coda dei processi pronti tre processi P1, P2 e P3 con i seguenti “comportamenti” in termini di computazione e tempi di attesa

• Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema mono-programmato?

calcolo

in attesa

10 40 10

10 20 30

10 10 10 10 10

P1

P2

P3

Page 21: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esercizio 1a: soluzione

• Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema mono-programmato?

Tot(P1)=60, Tot(P2)=60, Tot(P3)=50

Tot(P1+P2+P3) = 60 + 60 + 50 = 170

10 40 10 10 20 30 10 10 10 10 10

Page 22: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esercizio 1b

• Supponiamo di avere nella coda dei processi pronti tre processi P1, P2 e P3 con i seguenti “comportamenti” in termini di computazione e tempi di attesa

• Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema multi-programmato, se si applica l’alternanza tra i processi?

calcolo

in attesa

10 40 10

10 20 30

10 10 10 10 10

P1

P2

P3

Page 23: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esercizio 1b: una soluzione• Quante unità di tempo ci vogliono per portare a termine tutti e

tre i processi in un sistema multi-programmato, se si applica l’alternanza tra i processi?

10 40 10

10 20 30

10 10 10 10 10

P1

P2

P3

P1 in attesa

P2 in attesa

P3 in attesa P3 in attesa

In questo caso, quando un processo va in attesa, il processore viene assegnato al primo processo pronto

Totale= 100

Page 24: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esercizio 1b: un’altra soluzione

• Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema multi-programmato, se si applica l’alternanza tra i processi?

10 40 10

10 20 30

10 10 10 10 10

P1

P2

P3

P1 in attesa

P2 in attesa

P3 in attesa P3 in attesa

Totale= 100

Page 25: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esercizio 1b: una soluzione ottimale

• Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema multi-programmato, se si applica l’alternanza tra i processi?

10 40 10

10 20 30

10 10 10 10 10

P1

P2

P3

P1 in attesa

P2 in attesa

P3 in attesa P3 in attesa

Totale= 90

Page 26: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esercizio 2

• Supponiamo di avere nella coda dei processi pronti i processi– P1 durata = 40 unità di tempo– P2 durata = 10 unità di tempo– P3 durata = 60 unità di tempo– P4 durata = 30 unità di tempo

• Qual è una sequenza di esecuzione con una politica di scheduling Round Robin e quanto di tempo pari a 20 unità?

Page 27: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Esercizio 2: una soluzione

– P1 durata = 40 unità di tempo– P2 durata = 10 unità di tempo– P3 durata = 60 unità di tempo– P4 durata = 30 unità di tempo

P1

0 20

P2 P3 P4 P1 P3 P4 P3

5030 70 90 110 120 140

Non consideriamo eventuali tempi di attesa

Page 28: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Gestione dei processi

• Per gestire un insieme di processi “contemporaneamente” attivi il sistema operativo mantiene la tabella di processi– Per ogni processo vi è un descrittore nel quale

sono memorizzate informazioni come:• L’identificatore del processo• L’identificatore dell’utente proprietario• Lo stato del processo• Ecc.

• Queste informazioni servono per realizzare l’operazione di cambio di contesto

Page 29: Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007

Gestione dei processi

• Cambio di contesto:– Quando un processo rilascia il processore,

le informazioni sul suo stato vengono memorizzate nel suo descrittore all’interno della tabella dei processi

– In questo modo, quando tornerà nuovamente in esecuzione, il processo potrà ripartire dal punto in cui era stato interrotto