La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica Generale Marzia Buscemi

Presentazioni simili


Presentazione sul tema: "Informatica Generale Marzia Buscemi"— Transcript della presentazione:

1 Informatica Generale Marzia Buscemi buscemi@di.unipi.it
Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta elettronica Pagina web del corso: (sommario delle lezioni in fondo alla pagina) dddd

2 Quali sono le parti di un SO ?
lato utente servizi richiesti dagli utenti S I T E M A O P R V Interfaccia grafica (desktop) nucleo del SO (kernel) Gestore dei processi Gestore dei processori Gestore della memoria File system Gestore dell’I/O HW

3 La scorsa volta abbiamo visto..
Processo: parte statica (programma) + parte dinamica (dipende dallo stato di esecuzione) Tabella dei processi: contiene informazioni che servono per attivare, sospendere l’esecuzione di un processo (stato, PC, registri) Il gestore dei processi controlla la sincronizzazione, interruzione e riattivazione dei processi

4 Stati di un processo processi pronti (coda) processi in esecuzione
selezione primo processo pronto e sua esecuzione inizio esecuzione termine esecuzione processi pronti (coda) processi in esecuzione interruzione completamento operazione I/O richiesta operazione I/O processi in attesa

5 Transizioni di stato pronto  esecuzione: esecuzione  attesa:
il SO stabilisce quale dei processi pronti debba essere mandato in esecuzione la scelta è fatta dall’algoritmo di scheduling (vedi dopo) che deve bilanciare efficienza e fairness (tutti trattati allo stesso modo) esecuzione  attesa: il processo chiede delle risorse di I/O o attende un evento il SO salva tutte le informazioni necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso nella tabella del processo

6 Transizioni di stato attesa  pronto: esecuzione  pronto:
si verifica l’evento atteso dal processo e il SO sposta quel processo nella coda dei processi pronti esecuzione  pronto: il processo in esecuzione viene interrotto dal SO (es. perché termina il quanto di tempo a disposizione) e lascia spazio a un altro processo pronto il SO salva tutte le informazioni necessarie a riprendere l’esecuzione del processo dal punto in cui viene interrotta nella tabella del processo contemporaneamente un altro processo passa da pronto a “in esecuzione”

7 Esercizio Consideriamo tre processi A, B e C Supponiamo:
il quanto di tempo t sia 0.25 msec Ad A servono 2 quanti per essere completato e a metà del primo quanto A abbia bisogno di un input (es. attesa di richiesta stampa per 0.20 msec) A B servono 2 quanti di CPU per essere completato e a metà del secondo si metta in attesa di una risorsa che non è disponibile A C serve un quanto Scrivere il diagramma temporale dell’esecuzione di A, B e C Mostrare le transizioni di stato di tutto il sistema

8 Esecuzione in stato utente e in stato supervisore
A seguito di una system call o di un interrupt, il SO può interrompere l’esecuzione di un processo in stato utente (es. editor testo, programma di ) e mandare in esecuzione altri programmi o effettuare operazioni di ‘gestione’ della macchina Al termine della gestione dell’interrupt o dell’esecuzione di processo del SO (in stato supervisore), l’uso della CPU può passare di nuovo all’esecuzione di un processo in stato utente NB. Un processo in stato utente non può mai passare allo stato supervisore (in stato supervisore si ha accesso a tutte le risorse)!

9 Esercizio Considerando l’esercizio precedente, spiegare quando l’esecuzione di un programma in modalità utente viene interrotta e il controllo della CPU passa al SO e quando poi riprende l’esecuzione in modalità utente.

10 Gestore dei processori
NB. A volte in letteratura non si distingue tra gestore dei processori e gestore dei processi

11 Schedulatore (scheduler)
Si occupa di stabilire quali processi devono avvicendarsi nell’esecuzione riguarda la scelta tra i processi pronti cerca un “mix” ottimale di processi che siano I/O bound (accedono soprattutto alle periferiche) e CPU bound (usano essenzialmente CPU). deve evitare che qualche processo pronto non vada mai in esecuzione (starvation)

12 Schedulatore 2 Obiettivi: massimizzare l’uso della CPU
massimizzare il numero di elaborazioni in un certo intervallo di tempo terminare ciascuna esecuzione nel minor tempo possibile garantire che il tempo di esecuzione di ciascun processo sia “consistente” Tipi di schedulatori: preemptive (un processo può essere interrotto per prelazione) non-preemptive (un processo non può essere interrotto fino alla fine)

13 Schedulatore 3 Criteri di efficienza: tasso di utilizzo della CPU
throughput (numero di processi eseguiti per unità di tempo) elapsed time (tempo di esecuzione per ciascun processo) waiting time (tempo in coda) tempo di risposta (dalla richiesta all’inizio dell’esecuzione)

14 Algoritmi di scheduling
FIFO (first in first out): non-preemptive SJF (shortest job first): non-preemptive Round-robin (time slices + FIFO): preemptive EDF (earliest deadline first): per applicazioni real-time SRT (shortest remaining time): versione preemptive di SJF

15 Algoritmi di scheduling: esercizi
Assumiamo 4 processi P1, P2, P3, P4 che arrivano nella coda di processi pronti in quest’ordine: P1, P2, P3, P4 che hanno tempo di esecuzione: P1 30, P2 10, P3 2, P4 8 Scrivere i diagrammi temporali seguendo gli algoritmi FIFO SJF Round-robin (con quanto t=5) EDF (assumere deadline: P1 60, P2 10, P3 35, P4 20) Confrontare l’efficienza degli algoritmi sopra usando come parametro la somma dei tempi di di attesa in coda (waiting time)


Scaricare ppt "Informatica Generale Marzia Buscemi"

Presentazioni simili


Annunci Google