22) Quali sono le problematiche delle politiche di migrazione?
Politiche di migrazione (mantenute all'esterno del kernel)
in dipendenza del tipo di processo:
processo non preemptable
si decide la allocazione dei processi prima della creazione, quindi la generazione in nodi determinati avviene solo se conosciamo le esigenze del processo prima di generarlo, e ciò implica dinamicità limitata
esistono modelli studiati per verificare la convenienza della migrazione in caso di più job (quindi processi generalmente non comunicanti)
processo preemptable
le entità possono muoversi per fare fronte a variazioni dinamiche delle specifiche
fasi costituenti
valutazione del carico (V)
carico locale
carico globale
trasferimento (T)
chi trasferire
quando trasferire
locazione (L)
dove migrare
Scheduling
impatto sullo scheduling
del nodo di partenza
del nodo di arrivo
tipi di politiche
politiche statiche: predefinite e decise a priori
V: carico soglia fisso (p.e. numero processi)
T: movimento del processo più "nuovo"
L: migrazione da un certo nodo sorgente sempre a un predefinito destinatario
politiche semidinamiche: predefinite con limitate dipendenze dallo stato corrente (o anche politiche probabilistiche)
V: carico soglia variabile
T: identificazione ciclica tra i processi
L: allocazione su destinatario ciclico
politiche dinamiche: non predefinite ma strettamente dipendenti dallo stato corrente
V: confronto con carichi dei nodi vicini (carico medio)
T: informazioni sullo stato dei processi
L: ricerca dei potenziali nodi destinatari
Decisione di migrazione
centralizzata
un’unica entità controlla tutti i movimenti, quindi collo di bottiglia
distribuita
raccolta implicita di informazioni
decisione basata su confronto di informazioni
piggybacking di informazioni di carico
confronto su base locale con lo stato degli altri nodi (vicinato)
decentralizzata
scambio esplicito di informazioni tra nodi
confronto delle informazioni attraverso protocolli di scambio informazioni (esplicita cooperazione)
Responsabilità della migrazione; coppia sender-receiver
Iniziativa del sender
il nodo carico si preoccupa di trovare un opportuno ricevente (receiver)
Iniziativa del receiver
un nodo scarico trova potenziali attività da eseguire identificando il mittente (sender)
schemi misti
Iniziativa del sender: più adatta a carichi bassi
Iniziativa del receiver: più adatta a carichi medi-elevati
politiche di carico:
a soglia fissa
confronto con vicini
politiche di trasferimento:
vicino predeterminato o random
probe: verifica di alcuni vicini
politiche di locazione
ad accettazione incondizionata:
random
probabilistiche
cycle
shortest queue
ad accettazione condizionata:
probing
bidding
Anche con politiche semplici si ottengono significativi miglioramenti rispetto al caso senza migrazione. Politiche più sofisticate, ad esempio muovere il processo più a lungo in attesa, non migliorano tanto sensibilmente la situazione da controbilanciare la complicazione introdotta.