Estratto del documento

Scheduling dei processi

Quando più di un processo è eseguibile in un certo istante, il sistema deve decidere quale eseguire per primo. Questa funzione la svolge lo scheduler, programma facente parte del S.O. che si occupa di scegliere quale processo mandare in esecuzione.

Per evitare tempi troppo lunghi di esecuzione di un processo, i calcolatori prevedono l'utilizzo di un clock, un segnale periodico usato per sincronizzare i dispositivi elettronici digitali. Ad ogni interrupt del clock, il S.O. verifica se il processo in esecuzione può continuare o se deve essere sospeso per poterne eseguire un altro.

La strategia che permette di sospendere temporaneamente processi logicamente eseguibili è detta scheduling con diritto di prelazione (Preemptive Scheduling), in contrapposizione al metodo di esecuzione a completamento (sistemi batch) o non preemptive scheduling (senza diritto di prelazione).

Normalmente la CPU viene utilizzata per un periodo di tempo molto limitato, ma c'è bisogno di una potenza significativa perché sono necessari picchi molto elevati di frequenza per poter portare a termine operazioni in poco tempo.

Scheduling della CPU

Seleziona fra i processi in memoria quelli pronti per l’esecuzione e alloca la CPU a uno di essi. La decisione di scheduling della CPU può avvenire quando un processo:

  • Passa da in esecuzione a in attesa (non-preemptive)
  • Passa da in esecuzione a pronto (preemptive)
  • Passa da in attesa a pronto (preemptive)
  • Termina (non-preemptive)

Quando lo scheduler ha scelto il processo, un modulo chiamato dispatcher gli passa il controllo della CPU. Il procedimento prevede:

  • Un context switch
  • Passaggio a user mode
  • Salto alla giusta posizione del programma utente

Il tempo che il dispatcher impiega a eseguire queste operazioni è detto latenza di dispatch.

Criteri di un buon algoritmo di scheduling

  • Equità: ogni processo deve avere a disposizione una corretta quantità di tempo di CPU.
  • Efficienza: CPU utilizzata al 100% sempre.
  • Tempo di completamento: più piccolo possibile.
  • Tempo di risposta: deve essere minimizzato.
  • Tempo di attesa (trascorso in coda): deve essere minimizzato.
  • Throughput: massimizzare il numero di job processati per unità di tempo.

Essendo il tempo di CPU finito, alcuni di questi obiettivi non sono compatibili fra di loro.

Algoritmi di scheduling

FCFS (First Come First Served): Si eseguono i processi nell'ordine con cui arrivano. È stato ideato per sistemi non interattivi. Per valutare la prestazione di tale algoritmo si può effettuare attraverso la media dei tempi di attesa. Il risultato è migliore, in termini di...

Anteprima
Vedrai una selezione di 1 pagina su 3
Sistemi operativi - Scheduling processi nei sistemi operativi Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ilario.pirini di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Lombardi Luca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community