Selaa lähdekoodia

Added last Piattaforme MOD2 lessons

Federico Amedeo Izzo 9 vuotta sitten
vanhempi
commit
2cf3727003

+ 72 - 0
Piattaforme Software per la Rete/MOD2/lesson_09.md

@@ -0,0 +1,72 @@
+# 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.

+ 76 - 0
Piattaforme Software per la Rete/MOD2/lesson_10.md

@@ -0,0 +1,76 @@
+# Piattaforme e Software per la rete - lezione 10
+#### William Fornaciari
+###### 13 May 2016
+## Sistemi Multiprocessore
+Tipologie di architetture:
+- Ogni CPU ha il suo SO
+- Sistemi Master-Slave
+- Sistemi Multiprocessore Simmetrici (SMP)
+
+Nel caso di un SO per CPU l'accesso alle periferiche viene gestito tramite
+l'uso di diversi buffer.
+
+Nel caso di sistemi Master Slave, il SO viene eseguito solo dalla CPU __Master__
+Che quindi ha una sola copia dei buffer per I/O
+
+É difficile gestire bene cluster di piú di 8/16 core, a parte nei casi di
+applicazioni nativamente parallelizzate.
+Una tecnica usata é quella del __clustering__ che consiste nel raggruppare CPU
+e usarle in gruppo.
+
+Nelle implementazioni SMP il sistema operativo é singolo ma puó essere eseguito
+da piú processori, tramite l'uso di *lock*
+
+Il __timesharing__ consiste nel dividere il tempo per i processi, 
+ma porta ad un cattivo sfruttamento delle cache, che avrei invece rimettendo lo stesso
+processo sulla stessa CPU.
+
+Lo __space sharing__ in cui k processi vengono assegnati a k CPU disponibili.
+
+Sistemi __Multicomputer__ consistono in uno o piú processori collegati da un interfaccia
+di rete, sono anche usati nelle __network on chip__
+Le topologie di rete usate sono:
+- Stella
+- Anello
+- Mesh
+Le strategie di switching sono:
+- Commutazione di pacchetto
+- Commutazione di circuito
+...
+
+Le risorse di rete possono determinare pesantemente le prestazioni del sistema operativo
+e delle applicazioni eseguite.
+
+Le comunicazioni a livello utente vengono effettuate tramite la chiamata a opportune 
+primitive di sistema
+
+## Sistemi Operativi Real Time (RTOS)
+Sono caratterizzati da un certo __determinismo__ nell'esecuzione, e da una importanza
+nei tempi di risposta.
+Spesso le applicazioni eseguite da sistemi RTOS hanno dei *Time Constraints*
+che consistono nei momenti in cui i processi vengono richiesti e nelle *deadline*
+per la terminazione di questi ultimi, che possono essere soft o hard a seconda 
+dell'importanza
+Inoltre puó esserci o meno la __preemption__ dei processi che determina se essi
+vengono sostituiti in presenza di interrupt.
+
+### Scheduling
+Per lo scheduling a grana sottile vengono usati algoritmi semplici e veloci come 
+*round robin*, mentre per lo scheduling a grana grossa vengono usati algoritmi
+piú sofisticati.
+
+Esistono diversi algoritmi di scheduling, con o senza preemption e offrono
+tempi di risposta diversi
+Esempi:
+- Fixed priority scheduling
+
+__Fattori che possono influenzare lo scheduling__
+- Analisi di schedulabilitá:
+   - Fatta o non fatta
+   - Online o offline
+- Prioritá
+
+Di particolare nota é lo scheduler __Rate Monotonic__ che é in grado di garantire
+in modo dimostrabile il rispetto delle deadlines e un buon utilizzo generale della CPU.
+
+Guardo slides su RTX