Prima Lezione: I processi (Due Ore) Processo = Programma in

Prima Lezione: I processi (Due Ore)
Processo = Programma in esecuzione Cosa c’è in più? Da cosa è caratterizzato un programma ? Da
cosa un processo (Natura dinamica del processo)
Per capirlo vediamo un esempio
Programma: Solo il codice...
SPOSTA ACC1, [101]
MOLTIPLICA [110]
GO TO 100
MOLTIPLICA [111]
STOP
Processo
1. Codice
2. Caricato in Memoria
Indirizzo
Contenuto
000
SPOSTA ACC1, [101]
001
MOLTIPLICA [110]
010
GO TO 100
011
MOLTIPLICA [111]
100
STOP
101
12
110
5
111
7
3. In esecuzione.... COME NELLA VERIFICA DI SISTEMI... sto eseguendo un fetchdecode execute di un'istruzione..... il valore dei registri sta cambiando passo passo....
Che differenza c'è? → Natura dinamica del processo
NOTA AD UN PROGRAMMA POSSONO VENI ASSOCIATI PIù PROCESSI.... ogni esecuzione
di un programma dà luogo ad un processo che nasce nel momento in cui inizia l'esecuzione e muore
nel momento in cui questa termina
Il SO deve mantenere memorizzati per ogni processo in esecuzione tutte le informazioni che
riguardano l’evoluzione del processPCB
PCB: Che cos’è quali info contiene da chi è gestito (SOControllore del traffico)
PCB: struttura dati del SO che mantiene memorizzate informazioni sul singolo processo in
esecuzione
PCB contiene:
o Pid del processo
o Stato del processo
o Registri della CPU
 Puntatore area codice
 Puntatore area dati
 Program Counter
 Puntatore allo Stack (area Heap)
o Registro di stato
o Informazioni di scheduling (statistiche sui tempi di I/O e cpu passati, priorità del
processo, tempo di attesa accumulato)
o Elenco file aperti
STATI DI UN PROCESSO E TRANSIZIONI DI STATO
(SCHEMA E SPIEGAZIONE → VEDI APPUNTI)
 Operazione di context switch: ciò che accade quando bisogna assegnare la CPU ad un altro
processo
o Come avviene
o Salvataggio stato processo che abbandona la CPU
o Decisione su quale processo andrà ad occupare la CPU ( invocazione schedulatore
dei processi)
o Caricamento nei registri delle info contenute nel PBB del processo selezionato
Queste operazioni fanno si che per un certo lasso di tempo la CPU venga utilizzata dal sistema
operativo e non sia disponibile per i processi (OVERHEAD DI SISTEMA)
Seconda Lezione: Il nucleo del Sistema operativo
Note: far notare la diversa frequenza con cui vengono invocati scheduler a breve e scheduler a
lungo termine e il fatto che uno scheduler a lungo termine controlla il grado di
multiprogrammazione del sistema e che deve cercare di mantenere un certo equilibrio tra processi
CPU bound e I/O bound
Elementi del Nucleo
Schedulatore dei lavori
 Schedulatore a medio termine
 Controllore del traffico
 Schedulatore della CPU (trattato nella prossima lezione)
Quarta Lezione: Lo schedulatore dei processi
Obiettivi di uno schedulatore di CPU… ci servono alcune definizioni di base
Definizioni di: Tempo di permanenza nello stato di pronto (tempo di attesa), tempo di turnaround,
tempo di utilizzo della CPU, overhead di sistema, troughput (proc completati nell’unità di tempo)
Obiettivo Irrinunciabile:
Tutti coloro la richiedono devono avere accesso alla cpu in un tempo finito
Obiettivi auspicabili:
Massimizzare: troughput, tempo utilizzo della cpu
Minimizzare: tempo di attesa, tempo di turnaround, overhead di sistema (in contrasto politiche più
efficienti sono più dispendiose)
Schedulatori Preemptive e non preemptive
 Scheduling FCFS (libro Hoepli)
o è non preemptive
o La cpu viene assegnata al processo che si trova nello stato di pronto da più tempo
o In presenza di un processo con cicli di CPU molto lunghi il tempo medio passato
dagli altri processi in stato di pronto cresce notevolmente
 Round robin
o Versione Preemptive del FCFS
o La cpu viene assegnata al processo che si trova nello stato di pronto da più tempo al
massimo per T unità di tempo (T è detto quanto di tempo)
o Oss. Scelta del quanto… se T troppo alto come FCFS se troppo breve aumenta
 SJF (libro Hoepli)
o La CPU viene assegnata al processo con il ciclo di lavoro in CPU più breve (cioè
quello che la occuperà per meno tempo → carrello con meno articoli)
o Questo schedulatore garantisce il TEMPO DI ATTESA MEDIO MINIMO
o Perché, quindi, non è l'unico? DUE PROBLEMI:
 problema attesa infinita: Un processo con un ciclo di CPU molto lungo può
vedersi continuamente passare avanti da altri processi e non venire mai
eseguito (se alla cassa ci si ordina in base al numero di articoli e continua ad
arrivare gente con pochi articoli quello con il carrello pieno non viene mai
servito)
 problema dei tempi di esecuzione: il SO non è un MAGO non può SAPERE
PRIMA X QUANTO TEMPO UN PROCESSO OCCUPERA' LA CPU
o SOLUZIONI AI PROBLEMI:
 Problema attesa indefinita: si introduce un meccanismo di “invecchiamento
dei processi” ovvero man mano che aspettano si “fa finta” che il loro ciclo di
CPU duri di meno in modo da favorirli nella scelta
 Problema dei tempi di esecuzione: il sistema operativo fa una stima di quanto
il processo occuperà la cpu basandosi si come si era comportato in
precedenza (esempio della formula...)