lesson_09.md 3.3 KB

Piattaforme e Software per la rete - lezione 9

William Fornaciari

12 May 2016

Distributed Process Allocation

Migrazione

Le politiche di scheduling non migratorie Fanno sí che un processo rimanga sulla macchina su cui é partito finché non termina Le politiche di scheduling migratorie permettono di spostare un task giá in esecuzione su una macchina adatta. Tuttavia questo introduce dell'overhead consistente in:

  • Tempo
  • Consumo energia
  • Quantitá di memoria Il problema principale é dovuto allo spostamento dei dati necessari all'applicazione. Per quanto riguarda l'energia, non é detto che usare una macchina piú potente migliori il rendimento energetico, e inoltre viene spesa energia anche per il trasferimento.

Quindi le migrazioni hanno senso se durano abbastanza a lungo da dare benefici di 10 volte l'overhead, inoltre non é detto che sia possibile interrompere l'applicazione per trasferirla.

Overall design issues

Potrebbe essere una buona idea allocare i processi su alcune delle cpu e spegnere le altre:

  • Una CPU scarica consuma sempre di piú di una CPU spenta. O potrebbe servire tenere delle CPU scariche se si pensa che debba arrivare un picco di utilizzo.

Per quanto riguarda la logica delle comunicazioni Puó essere utile mettere in un sistema distribuito due processi che comunicano di frequente sulla stessa macchina, o nel caso siano thread, eventualmente incorporarli in un unico processo. Se abbiamo grosse moli di dati conviene se possibile metterle sulla stessa macchina che li deve elaborare

Per la availability cioé nel caso di upgrade di componenti hardware puó essere spostata la macchina virtuale o nel caso non sia disponibile, solo il processo.

Per quanto riguarda il carico termico, conviene bilanciare il profilo termico spostando il processo su varie macchine in modo da mitigare il problema del thermal breakdown

Allocation algorithms: taxonomy

Gli algoritmi possono essere:

  • Deterministici o euristici
  • Centralizzati o distribuiti
  • Ottimi o sub-ottimi

Un altro aspetto di questi algoritmi é che modificando lo stato del sistema non appena si avvicina una situazione sub-ottima, questo puó portare a delle instabilitá.

Migrazione dei processi

La migrazione consiste nel trasferire parte dello stato di un processo su una macchina di destinazione per permettere il proseguimento. La migrazione puó essere avviata dal sistema operativo che possiede il quadro complessivo, o dal processo stesso.

Modellazione con grafi

Consiste nel tracciare i processi e le dipendenze con nodi e archi, e fare un taglio in modo che la macchina soddisfi i requisiti dei nodi nel taglio, e che i collegamenti esterni siano minimizzati.

Algoritmo centralizzati

  • Up-Down (manager-worker)
  • Algoritmo euristico (probing)
  • Bidding

Negoziazione

La migrazione dei processi puó avvenire tramite una negoziazione in cui gli starter utility dei vari sistemi comunicano prima dello scambio di un processo.

Eviction

Puó capitare che una workstation vada in crisi e rimandi al mittente i processi che non siano i propri.

Co-scheduling

Spesso conviene migrare i processi in gruppo, ad esempio gruppi di processi che comunicano tra di loro possono essere schedulati per lo stesso time slot su macchine diverse, in modo che possano comunicare senza ritardi.