La schedulazione dei processi Corso di Sistemi Classe 4
Scheduling dei processi L’operazione con la quale si attribuisce il processore ad uno dei processi in attesa, viene definita scheduling (schedulazione) ed è caratteristica di un particolare processo (detto processo schedulatore) avviato dal sistema operativo. Scheduling di basso livello (o dispatcher) Scheduling di livello intermedio Scheduling di alto livello (scheduler)
Scheduling di alto livello Long term scheduling regola l’accesso dei programmi, (in genere i job batch), al sistema per l’esecuzione; controlla il grado di multiprogrammazione regola il mix tra processi CPU-bound e I/O bound
Scheduling di livello intermedio Medium term scheduling Gestione dello swapping Gestione della memoria virtuale
Scheduling di basso livello Short term scheduling Assegna la CPU ad uno dei processi residenti in memoria centrale E’ invocato su ogni evento che può portare ad eseguire un context switch (interruzioni da clock, interruzioni da I/O ecc.)
Lo schema di scheduling dell’IBM OS/MVS Coda dei programmi da eseguire Livello 1.2 Sistema Operativo programmi terminati Schedulatore di alto livello Coda dei processi sospesi Livello 1.1 Coda dei processi iniziati ma non attivi Schedulatore di livello intermedio Livello 1.0 Coda dei processi in attesa o bloccati Coda dei processi pronti Schedulatore di basso livello Livello 0 Processo in esecuzione
Il dispatcher Assicurare che tutti i processi avanzino rispettando eventuali priorità loro assegnate, ma evitando penalizzazioni eccessive o addirittura attese infinite Scegliere i processi da mandare in esecuzione cercando di ottimizzare l’uso della risorsa processore Minimizzare i tempi di scelta del prossimo processo da mandare in esecuzione Processo in esecuzione esecuzione Processo terminato o in attesa Time out Nuovo processo da eseguire
Context Switch * * Proc A S.O. Proc B esecuzione salva ricarica
RTC: Real Time Clock Per assicurare ad ogni processo un utilizzo equamente condiviso della CPU, occorre servirsi di un clock hardware che genera un interrupt periodico (RTC: Real Time Clock) in aggiunta agli altri interrupt.
Il metodo round robin La tecnica più semplice per gestire il rilascio e l’assegnazione del processore è quella che si basa sul principio del time-sharing chiamata round robin. Ad ogni processo in esecuzione è assegnato un quanto di tempo (time slice), allo scadere del quale il processo viene passato dallo stato di esecuzione a quello di pronto e accodato in una lista ordinata, all’ultimo posto. Dal primo posto viene invece prelevato il processo da mandare in esecuzione.
Considerazioni Il metodo round robin tratta tutti i processi allo stesso modo, pertanto, per introdurre un criterio di diversificazione (priorità) tra i processi si opera sul quanto di tempo, introducendo un fattore di molteplicità di quest’ultimo. Pertanto i processi che dispongono di un fattore di molteplicità alto utilizzeranno il processore per un tempo maggiore. Quanto sopra penalizza però i processi con numerose richieste di risorse(es. I/O)
Il metodo round robin modificato Coda processi rilasciati per fine quanto Fine quanto Priorità minore Esecuzione processo Nuovi processi Termine processo Priorità maggiore Coda processi nuovi o rilasciati per richiesta di risorsa Attesa risorsa Risorsa non disponibile Termine anomalo