Quali sono i criteri che si desiderano ottimizzare nella scelta di un algoritmo di schedulazione? | Sfruttamento del processore
Throughput
Tempo di attesa
Tempo di risposta |
Quali sono i diversi tipi di schedulazione? | FCFS (First Come First Served)
Priorità
shortest job first
RR (Round Robin)
Coda a più livelli (C+L)
Coda a più livelli con retroazione (C+LR) |
come funziona la schedulazione FCFS? | La schedulazione FCFS gestisce la coda dei processi pronti con una politica FIFO; i processi ottengono la CPU nell'ordine in cui entrano nella coda. È una politica facile da implementare e molto veloce da eseguire, tuttavia il tempo di attesa medio dipende fortemente dall'ordine di arrivo dei processi (effetto convoglio). |
come funziona la schedulazione a priorita?
che problemi introduce? | La schedulazione a priorità permette di associare ad ogni processo un indice di priorità definito internamente, oppure esternamente (dall'utente o dall'amministratore del sistema), quindi ordina la coda in base a questi indici.
- Può essere realizzata
-> con preemption: quando un processo diventa pronto, se ha priorità maggiore rispetto a quello in esecuzione, lo sostituisce;
-> senza preemption: la schedulazione viene eseguita quando la CPU viene rilasciata.
- Un problema di queste politiche è la possibilità di starvation, ossia il blocco indefinito di processi a priorità bassa
- Si può risolvere introducendo l'aging, ossia aumentando la priorità di un processo mentre attende. |
come funziona la schedulazione RR? | La schedulazione RR è la politica tipica dei sistemi time sharing e permette di distribuire uniformemente il tempo della CPU tra n processi in modo che ognuno ne ottenga 1/n. È di tipo preemptive.
Se questi non la rilascia la entro la fine del quanto, subisce preemption, torna in coda e lo schedulatore sceglie un nuovo processo da eseguire.
La velocità di esecuzione dei processi dipende dal numero di processi in coda; il tempo di turnaround dipende dalla durata del quanto di tempo. |
Quali sono i vantaggi e gli svantaggi di ogni tipo di schedulazione? | Il tipo di schedulazione corretto per un'applicazione dipende da una serie di fattori, tra cui:
Il tipo di applicazione (ad esempio, un server web, un'applicazione desktop o un'applicazione mobile)
* Le caratteristiche della CPU (ad esempio, il numero di core, la frequenza di clock e la cache)
* La quantità di memoria disponibile
* Il tipo di storage utilizzato (ad esempio, un disco rigido, un SSD o un'unità flash)
* La quantità di traffico di rete generato dall'applicazione
* Le esigenze degli utenti (ad esempio, l'attesa massima, l'utilizzo della CPU e la latenza) |
come si sceglie il corretto tipo di schedulazione per una applicazione? | - Il tipo di applicazione (ad esempio, un server web, un'applicazione desktop o un'applicazione mobile)
- Le caratteristiche della CPU (ad esempio, il numero di core, la frequenza di clock e la cache)
- La quantità di memoria disponibile
- Il tipo di storage utilizzato (ad esempio, un disco rigido, un SSD o un'unità flash)
- La quantità di traffico di rete generato dall'applicazione
- Le esigenze degli utenti (ad esempio, l'attesa massima, l'utilizzo della CPU e la latenza) |
In che modo la schedulazione a feedback può migliorare le prestazioni di un sistema? | La schedulazione a feedback è una tecnica di schedulazione che consente ai processi di migrare da una coda a un'altra, in base alle loro prestazioni. I processi che si eseguono in modo efficiente vengono promossi a code con priorità più alta, mentre i processi che si eseguono in modo inefficiente vengono degradati a code con priorità più bassa. Questo tipo di schedulazione può aiutare a migliorare le prestazioni complessive del sistema, assicurando che i processi più importanti ricevano la maggiore attenzione. |
come si sceglie il giusto numero di code per un algoritmo di schedulazione a più livelli? | Il numero di code da utilizzare in un algoritmo di schedulazione a più livelli dipende da una serie di fattori, tra cui:
* Il tipo di applicazione
* Le caratteristiche della CPU
* La quantità di memoria disponibile
* Il tipo di storage utilizzato
* La quantità di traffico di rete generato dall'applicazione
* Le esigenze degli utenti
in generale è meglio utilizzare più code in sistemi con un carico di lavoro misto e poche code in sistemi con un carico di lavoro pesante. |
definizione di schedulazione | tecnica con lo scopo di gestire in modo ottimale la turnazione dei processi sulla CPU definendo delle politiche di ordinamento. Si basa sulla proprieta’ di ciclicita’ del processo: Alternamento continuo di fasi di elaborazione CPU e fasi di attesa di I/O che si concludono con una richiesta di terminazione al sistema.
si suddividono in :
- pre emptive
- non pre emptive
x a breve termine
x a lungo termine
x a medio termine |
Come funziona la schedulazione a feedback (C+LR)? | La schedulazione a feedback (C+LR) è una tecnica di schedulazione che consente ai processi di migrare da una coda a un'altra, in base alle loro prestazioni. I processi che si eseguono in modo efficiente vengono promossi a code con priorità più alta, mentre i processi che si eseguono in modo inefficiente vengono degradati a code con priorità più bassa. Questo tipo di schedulazione può aiutare a migliorare le prestazioni complessive del sistema, assicurando che i processi più importanti ricevano la maggiore attenzione. |
quali sono le differenze fra la schedulazione FCFS e la schedulazione a priorità? | La schedulazione FCFS (First Come First Served) assegna la CPU al processo che è in coda da più tempo, mentre la schedulazione a priorità assegna la CPU al processo con la priorità più alta. La schedulazione FCFS è semplice da implementare ed efficiente in termini di risorse, ma non è sempre la migliore in termini di prestazioni. La schedulazione a priorità può migliorare le prestazioni, ma è più complessa da implementare e può richiedere più risorse. |
schedulazione pre emptive e non pre emptive | pre emptive : al processo in esecuzione viene conceso un quanto di tempo al termine del quale viene sollevato dall'incarico (puo portare all'inconsistenza dei dati).
non pre emptive : un processo occupa la CPU fino a quando:
- passa in stato di attesa
- passa in fase di ready
- rilascia volontariamente il processore
- termina
(un processo potrebbe non lasciare per lungo tempo la CPU) |
quali sono i criteri per la scelta di un algoritmo di schedulazione? | UTILIZZO DEL PROCESSORE: quanto utilizzo del proc. Riesco a massimizzare
THROUGHPUT: quanti processi riesco a completare in una unità di tempo
TURNAROUND TIME: tempo di completamento di un processo
TEMPO DI ATTESA: tempo di attesa del processo nella coda dei processi pronti
TEMPO DI RISPOSTA: intervallo di tempo che intercorre tra la formulazione della prima richiesta
alla produzione della prima risposta |
quali sono i vari algoritmi di schedulazione con i loro pro e contro? | 1) First come first served
+ implementazione facile
- tempo medio di attesa lungo
2) Shortest job first
+ il tempo medio e' minimo
- problema di starvation
3) Schedulazione con priorita'
+ introduzione dell' aging
- starvation se non si usa l-aging
4) Round robin
+ prestazioni mediamente buone
- se il time slice e' calibrato male allora il tempo risulta pari a FCFS
5) Coda a piu livelli
+ facile implementazione - se ci sono molti processi con priorita' alta allora diventa inefficiente
6) Coda con retroazione
+ dinamico flessibile e completo - molto complesso |
quali sono i vantaggi e gli svantaggi della schedulazione RR? | La schedulazione RR (Round Robin) assegna alla CPU un processo per un breve periodo di tempo, detto quantum, e poi passa al processo successivo. Questo processo viene ripetuto fino a quando tutti i processi non sono stati eseguiti. La schedulazione RR è utile per migliorare le prestazioni in sistemi con un carico di lavoro misto, ma può causare la perdita di prestazioni in sistemi con un carico di lavoro pesante. |
come viene implementata la schedulazione a breve termine? | ordina i processi che si trovano in stato ready to run
garantendo una turnazione elevata
l'algoritmo deve essere molto semplice e veloce |
in che cosa consiste la schedulazione a medio termine? | per sistemi operativi a time sharing
per migliorare i processi caricati in memoria centrale per aumentare la multiprogrammazione
swappa i processi in memoria centrale e memoria di swap per migliorare il thrughput |
come avviene la schedulazione a lungo termine? | ordina i processi attivati nel sistema e in stato di ready to run
organizza i processi cpu bound e IO bound
algoritmi complessi ma non troppo perchè caricare processi dalla memoria di massa non è veloce
non necessaria in sitemi embedded perchè i processi sono gia tutti in ram |
come vengono valutati gli algoritmi di scheduling? | - valutazione analitica:
viene sottoposto un test al sistema e se ne estrapola i risultati , molto sensibili agli errori
- valutazione statistica:
una simulazione del software con delle variabili per ottenere delle statistiche approssimative (generalmente parecchio dispendiose)
- valutazione per implementazione:
viene realizzato il sistema e testato nella vita reale e con strumenti di rilevazione interna se ne estrapolano le statistiche (molto costoso, molto laborioso e variabile in base alle preferenze dell'utente) |