Please enable JavaScript.
Coggle requires JavaScript to display documents.
Processore - Coggle Diagram
Processore
Multitasking
Criteri di Scheduling
-
Minimizzare i tempi di attesa tra un'esecuzione e l'altra e il tempo di permanenza di ciascun processo
-
-
Massimizzare percentuale di utilizzo della CPU, minimizzando tempi di turnaroud (tempo da quando un processo entra nel sistema a quando finisce)
Pre-empitve - Possono essere interrotti durante la loro escuzione
Non Pre-emptive - Non possono essere interrotti durante la loro esecuzione
User mode - "Normale stato di esecuzione" dei programmi applicativi dell'utente
Kernel - Stato di esecuzione dei servizi del kernel
Algoritmi di Scheduling
SJF (Shortest Job First) - Algoritmo FCFS migliorato scegliendo dalla lista dei processi quello che dura meno. In caso un processo è in esecuzione e ne arriva uno con tempo minore si hanno 2 casi: non-pre-emptive non si fa nulla, pre-emptive -> SRTF (Vedi schema)
Scheduling con priorità - A ogni processo viene associato un numero che corrisponde a livello di priorità. Scheduler seleziona il processo con il livello di priorità più alto. (Nel caso 2 processi abbiamo priorità uguale -> FCFS) (Vedi schema per tempistiche)
Pre-emptive - Se arriva un processo con priorità più alta di quello che si sta eseguendo lo si cede alla CPU, sospendendo l'altro. Se continuano ad arrivare processi con alta priorità avviene fenomeno della starvation e i processi con priorità bassa rimangono in coda per tempi indefiniti
FCFS (First-Come-First-Served) - Processi vengono messi in cpda rispetto all'ordine di arrivo (FIFO). Tipo non pre-emptive quindi se un processo ha lungo tempo di elaborazione gli altri devono aspettare (Vedi schema per calcolo tempistiche)
Round Robin - Tutti i processi pronti sono inseriti in una coda FIFO, senza priorità e ad ogni processo viene assegnato quanto di tempo ( intervallo di tempo di esecuzione ). Tutti i processi sono trattati allo stesso modo. (Vedi schema)
MLQF - Vengono determinate diverse code, una per ogni ordine di priorità e ogni coda viene gestita direttamente in FCFS. Ad ogni coda viene assegnato un numero di quanti di tempo diversi e quando un processo ha esaurito i quanti a sua disposizione viene declassato e spostato in una coda con priorità più bassa. I processi che sono da più tempo in cosa vengono periodicamente promossi aumentando la priorità.
-
Processi si dividono in:
-
Task nei sistemi time sharing (SO Nuovi: Windows, Linux)
Parallelismo (Portare avanti più processi insieme, riducendo inattività CPU)
-
-
Si evolve in un ciclo di vita ed è possibile individuare un insieme di stati di un processo (vedi schema):
-
4) Pronto ( Ready to Run ) - Ha tutte le risorse necessarie tranne la CPU ( In attesa di time-slice)
2) Esecuzione ( Running ) - Stato di evoluzione del processore, CPU sta eseguendo istruzioni
-
1) Nuovo ( New ) - Stato in cui si trova un processo appena è stato creato. Ha PID ed è nella RL (CPU), WL (Risorsa).
-
-