Scheduling nei processi mono-processore Flashcards
Cos’è uno schedulatore?
Lo schedulatore (o scheduler) è quella parte del S.O. preposta all’assegnazione di risorse a favore dei processi
La selezione di un processo in una coda può avvenire mediante differenti criteri, a seconda dell’algoritmo di scheduling implementato
Quante tipologie di scheduler esistono
Lo schedulatore a breve termine o scheduler della CPU
Lo schedulatore a medio termine o schedulatore di swap (swapper)
Lo schedulatore a lungo termine o schedulatore di job
Cosa fa lo scheduler di lungo termine
Lo scheduler di lungo termine determina quale programma caricare nella coda dei processi pronti del sistema
Obiettivo: regolare la quantità di processi nel sistema
Differenza tra processi CPU-bound e I/O-bound
Processi CPU-bound:
-poche chiamate di sistema
-tendono ad occupare la CPU per lunghi periodi (se il SO non li interrompe)
Processi I/O-bound:
-fanno frequenti chiamate di sistema
-usano brevemente la CPU, per poi mettersi subito in attesa di I/O
-tipico dei programmi interattivi
Cosa fa lo scheduler di medio termine
Rappresenta quella funzione del SO che ha il compito di trasferire temporaneamente processi dalla memoria centrale alla memoria di massa e viceversa
Obiettivo: migliorare l’efficienza nell’utilizzo della risorsa memoria
Cosa fa lo scheduler di breve termine
Conosciuto anche con il nome di Dispatcher, è lo scheduler che viene attivato più frequentemente nel sistema
Ha il compito di scegliere a quale tra i processi pronti assegnare la CPU
Obiettivo: ottimizzare il comportamento del sistema
Quali sono i criteri utilizzati dall’algoritmo del Dispatcher
User-oriented: comportamento del sistema così come percepiti dall’utente o da un processo
System-oriented: utilizzare in modo efficiente il processore
Quali sono i parametri utilizzati dal criterio User-oriented e System-oriented
User-oriented:
-tempo di turnaround (intervallo di tempo dall’istante in cui un processo è sottomesso al sistema fino alla sua terminazione)
-tempo di risposta
-deadlines
System-oriented:
-throughput (processi terminati per unità di tempo ovvero misura la produttività)
-utilizzo della CPU
-Fairness
Cos’è la Starvation
L’utilizzo di un algoritmo di scheduling a priorità può causare Starvation, ovvero situazioni di attesa indefinita di processi a priorità più bassa
Differenza tra scheduler Nonpreemptive e Preemptive
Nonpreemptive: una volta che il processo è nello stato di Esecuzione, esso continuerà in tale stato fin quando non si sospenderà
Preemptive: un processo in stato di esecuzione può essere interotto e spostato nello stato Pronto dal SO
Come funziona l’algoritmo di scheduling First-Come-FIrst-Served
Quando il processo cessa la sua esecuzione, viene scelto il processo che attende da più tempo ma un processo con tempo di esecuzione corto può aspettare un tempo molto lungo prima di essere eseguito
Non risente di starvation
Favorisce i processi CPU-bound , infatti i processi I/O-bound devono attendere il completamento di quelli CPU-bound (effetto convoglio->tempo di risposta più lento)
Come funziona l’algoritmo di scheduling Round-Robin
Nasce dalla trasformazione preemptive del FCFS mediante l’impiego di un timer che definisce il quanto di tempo di massimo utilizzo della risorsa o time slice
Come funziona l’algoritmo di scheduling Short Process Next
Può avere sia uno schema non-preemptive sia preemptive (chiamato Short Remaining Time)
Vengono selezionati i Processi con il minor tempo di esecuzione stimato
Progettato al fine di rendere minimo il tempo medio di attesa per un insieme di processi
Possibilità di starvation per processi più lunghi
Come funziona l’algoritmo di scheduling Feedback
Lo scheduling è di tipo preemptive basato su quanto di tempo, code multiple, e priorità
è utilizzato un meccanismo di priorità dinamico (se un processo usa “troppo” tempo di CPU, viene spostato in una coda con priorità minore)
Mantiene i processi con prevalenza di I/O e i processi interattivi nelle code a priorità più elevata
Ogni coda è gestita in round-robin
I processi a bassa priorità eseguono quando si esauriscono quelli ad alta priorità