Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea...

Preview:

Citation preview

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

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

Soluzione

• In realtà:

Ordinare(C1)

Preparareil caffè (C1)

Pagare(C1)

Ordinare(C2)

Preparareil caffè (C2)

Pagare(C2)

Cliente 1

Cliente 2

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

Sistemi multiprogrammati

Dal punto di vista dei processi

Dal punto di vista del processore

P1

P2

esec P1 esec P2

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à

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

Sistemi multiprogrammati

esecuzione

attesapronto

scambio esecuzione

richiesta I/Oo risorse

I/O terminato orisorsa disponibile

terminazione

Sistemi multiprogrammati

pronto

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

Sistemi multiprogrammati

esecuzione

attesapronto

scambio esecuzione

Sistemi multiprogrammati

esecuzione

attesapronto

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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à?

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

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

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

Recommended