1 / 29

Informatica

Informatica. Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2006-2007. Esecuzione sequenziale. Processo P1. Processo P2. inizio. fine. inizio. fine. in attesa. esecuzione. Processore. attivo. idle.

nedaa
Download Presentation

Informatica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Esecuzione sequenziale Processo P1 Processo P2 inizio fine inizio fine in attesa esecuzione Processore attivo idle

  3. 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: Cliente 1 Cliente 2 Consumare Consumare Ordinare Preparare il caffè Ordinare Preparare il caffè Pagare Pagare

  4. Soluzione • In realtà: Cliente 1 Cliente 2 Ordinare (C1) Ordinare (C2) Pagare (C1) Preparare il caffè (C1) Preparare il caffè (C2) Pagare (C2)

  5. 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

  6. Sistemi multiprogrammati Dal punto di vista dei processi P1 P2 Dal punto di vista del processore esec P2 esec P1

  7. Sistemi multiprogrammati • Più programmi sembrano essere eseguiti “contemporaneamente” • In realtà in esecuzione c’è sempre un soloprocesso • Ma, se l’alternanza è molto frequente, si ha un’idea di simultaneità

  8. Sistemi multiprogrammati • Un processo può trovarsi in tre diversi stati: in esecuzione, in attesa, pronto esecuzione Quando sta utilizzando il processore pronto attesa Quando è in attesa del verificarsi di un evento esterno Quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo

  9. Sistemi multiprogrammati terminazione esecuzione richiesta I/O o risorse scambio esecuzione pronto attesa I/O terminato o risorsa disponibile

  10. Sistemi multiprogrammati • Quando un processo viene creato viene • messo nello stato di pronto • in tale stato rimane fino a quando • non arriverà il suo turno pronto

  11. Sistemi multiprogrammati esecuzione scambio esecuzione pronto attesa

  12. Sistemi multiprogrammati Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni esecuzione pronto attesa

  13. Sistemi multiprogrammati Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni terminazione esecuzione Il processo termina la sua esecuzione e abbandona il sistema pronto attesa

  14. Sistemi multiprogrammati Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni terminazione esecuzione richiesta I/O o risorse pronto attesa Il processore viene liberato e può essere concesso ad un altro processo pronto

  15. Sistemi multiprogrammati Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni terminazione esecuzione richiesta I/O o risorse scambio esecuzione pronto attesa Per realizzare in modo equo l’alternanza tra i processi, in certi casi può essere opportuno fermare un processo e concedere il processore ad un altro processo

  16. 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

  17. 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

  18. Esempio di scheduling: Round Robin Più precisamente, nel caso della politica di scheduling Round Robin terminazione esecuzione richiesta I/O o risorse in esecuzione quanto di tempo scaduto pronto attesa I/O terminato o risorsa disponibile

  19. 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

  20. 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 P1 10 40 10 in attesa P2 10 30 20 P3 10 10 10 10 10

  21. 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 30 10 10 10 10 10 20

  22. 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 P1 10 40 10 in attesa P2 10 30 20 P3 10 10 10 10 10

  23. P1 10 40 10 P2 10 30 20 P3 10 10 10 10 10 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? In questo caso, quando un processo va in attesa, il processore viene assegnato al primo processo pronto Totale = 100 P1 in attesa P2 in attesa P3 in attesa P3 in attesa

  24. P1 10 40 10 P2 10 30 20 P3 10 10 10 10 10 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? Totale = 100 P1 in attesa P2 in attesa P3 in attesa P3 in attesa

  25. P1 10 40 10 P2 10 30 20 P3 10 10 10 10 10 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? Totale = 90 P1 in attesa P2 in attesa P3 in attesa P3 in attesa

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

  27. 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 P2 P3 P4 P1 P3 P4 P3 0 20 30 50 70 90 110 120 140 Non consideriamo eventuali tempi di attesa

  28. Gestione dei processi • Per gestire un insieme di processi “contemporaneamente” attivi il sistema operativo mantiene la tabella di processi • Per ogni processo vi è un descrittorenel 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

  29. 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

More Related