Sistemi Operativi per Calcolatori Paralleli



Похожие документы
La Gestione delle risorse Renato Agati

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

Pronto Esecuzione Attesa Terminazione

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Parte VIII. Architetture Parallele

Gestione della memoria centrale

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Approccio stratificato

Architettura di un sistema operativo

Processi e Thread. Scheduling (Schedulazione)

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Organizzazione Monolitica

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Il Sistema Operativo

Architettura di un sistema di calcolo

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A

Comunicazione tra Processi

Sistemi Operativi UNICAL. Facoltà di Ingegneria. Domenico Talia A.A Sistemi Operativi. D. Talia - UNICAL

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sistemi operativi e reti A.A Lezione 2

Scheduling. Lo scheduler è la parte del SO che si occupa di

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Sistemi Operativi Kernel

Introduzione alle applicazioni di rete

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Il sistema operativo TinyOS

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

La memoria centrale (RAM)

Corso di Informatica

Architetture Applicative

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

Corso di Sistemi di Elaborazione delle informazioni

CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini

Corso di Informatica

Come funziona un sistema di elaborazione

DMA Accesso Diretto alla Memoria

Sistemi Operativi SCHEDULING DELLA CPU

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri.

Laboratorio di Informatica

Architettura dei computer

Architettura hardware

Il Sistema Operativo (1)

GESTIONE DEI PROCESSI

Sistemi avanzati di gestione dei Sistemi Informativi

CAPITOLO 5 - Sistemi Operativi Moderni

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Creare una Rete Locale Lezione n. 1

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Sistemi Operativi. Conclusioni e nuove frontiere

Architettura di un calcolatore

CPU. Maurizio Palesi

Linux nel calcolo distribuito

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

I sistemi distribuiti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Introduzione ai Sistemi Operativi

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione

STRUTTURE DEI SISTEMI DI CALCOLO

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Reti e Internetworking

Gestione della Memoria

Sistemi Operativi. 5 Gestione della memoria

Scheduling della CPU:

Architettura dei calcolatori II parte Memorie

Транскрипт:

Sistemi Operativi per Luigi Pomante Università degli Studi dell Aquila Centro di Eccellenza DEWS - DISIM luigi.pomante@univaq.it Sommario Introduzione Generalità Aspetti HW Architetture UMA Architetture NUMA Aspetti SW (SO) Generalità Tipologie di SO per Architetture Multiprocessore La Sincronizzazione nei Sistemi Multiprocessore Lo Scheduling nei Sistemi Multiprocessore Generalità Aspetti HW Tecnologie di Interconnessione Interfacce di Rete Aspetti SW (SO) La Comunicazione nei Sistemi Multicomputer Lo Scheduling nei Sistemi Multicomputer Bilanciamento del Carico nei SO per - 2013-2 - 2001 - Luigi Pomante 1

Sistemi Operativi per Introduzione Introduzione Da quando il computer è stato inventato c è sempre stata richiesta di una potenza di calcolo superiore a quella disponibile Processori con frequenza di clock più elevata Limitazioni fisiche Dimensioni Calore Un singolo calcolatore con più processori Applicazioni tipiche: Number Crunching» Multi-core == Sistema Multiprocessore on-chip (Chip-Level Multiprocessor)» I processori possono essere omo/eterogenei Più calcolatori (omo/eterogenei) collegati tra di loro e cooperanti Problema principale: la comunicazione» Network-on-Chip == Sistema Multicomputer on-chip (Chip-Level Multicomputer)» I calcolatori possono anche essere Multiprocessore omo/eterogenei SO per - 2013-4 - 2001 - Luigi Pomante 2

Introduzione Le differenti tecnologie di interconnessione danno origine a differenti tipologie di architetture di sistema Ad esempio: Sistema Multiprocessore a Memoria Condivisa Multicomputer a Scambio di Messagi Sistema Distribuito SO per - 2013-5 - Introduzione Sistema Multiprocessore a Memoria Condivisa 2..1000 CPU che comunicano tramite memoria condivisa Leggono e scrivono le stesse locazioni di memoria (2..10 ns) Implementazione alquanto complessa Alcuni vantaggi ed ottimizzazioni possibili per Multicore e SoC Se eterogenei più difficili da programmare Sistema Multicomputer a Scambio di Messagi Varie coppie CPU-Memoria Locale collegate tramite una rete ad alta velocità (10..50 µs) Più semplici da costruire ma più difficili da programmare Sistema Distribuito Sono sistemi multicomputer collegati tramite una WAN (Wide Area Network) Loosely-coupled vs. Tightly-coupled I tempi di comunicazione (10..100 ms) impongono una differente utilizzazione di questi sistemi SO per - 2013-6 - 2001 - Luigi Pomante 3

Sistemi Operativi per Generalità Aspetti HW Aspetti SW (SO) SO per - 2013-8 - 2001 - Luigi Pomante 4

Sistemi Operativi per Generalità Generalità Sono sistemi in cui 2 o più CPU hanno pieno accesso ad una memoria condivisa I programmi vedono lo stesso spazio di indirizzamento (virtuale) Un processore potrebbe fare una STORE e poi una LOAD nella stessa locazione di memoria e trovare un valore diverso perchè un altro processore l ha modificata Quando organizzata correttamente questa proprietà forma la base della comunicazione inter-processore A parte alcuni aspetti (sincronizzazione, scheduling) i SO per questi sistemi sono molto simili a quelli classici SO per - 2013-10 - 2001 - Luigi Pomante 5

Sistemi Operativi per Aspetti HW Aspetti HW Una differenza tra sistemi multiprocessore è legata alla capacità di poter accedere con tempi uniformi a tutte le locazioni di memoria UMA (Uniform Memory Acces) Architetture UMA basate su Bus Architetture UMA basate su Crossbar Switch Architetture UMA basate su Reti di Switch Multistadio NUMA (Not Uniform Memory Access) SO per - 2013-12 - 2001 - Luigi Pomante 6

Sistemi Operativi per Aspetti SW (SO) Architetture UMA Architetture UMA basate su Bus (<64 CPU) Bus singolo senza cache (a) Contesa per l accesso al bus Bus singolo con cache (L1-L2) (b) Coerenza della cache Tecniche di snooping Bus singolo con cache e memoria privata (c) Compilatori appositi Ancora UMA per quanto riguarda la parte condivisa SO per - 2013-14 - 2001 - Luigi Pomante 7

Architetture UMA basate su Crossbar Switch (<k*64 CPU) Permettono di superare le limitazioni imposte dal bus Collegamenti tra n CPU e k memorie (crosspoint) Pregio: Non-Blocking Network Se la memoria che ci interessa è disponibile Difetto: il numero di crosspoint cresce come n 2 SO per - 2013-15 - Arch. UMA basate su Reti di Switch Multistadio (<path*64 CPU) Usano reti costruite tramite switch 2x2 Pregio: ridotto numero di switch (Omega Switching Network) Il numero di switch cresce come (n/2)log 2 n Difetto: Blocking Network Maggior numero di switch e/o tecniche di interleaving SO per - 2013-16 - 2001 - Luigi Pomante 8

Sistemi Operativi per Aspetti SW (SO) Architetture NUMA Architetture NUMA Indispensabili in pratica per avere più di 100 processori Gli accessi remoti sono più lenti dei locali Esiste sempre un unico spazio di indirizzamento LOAD/STORE SW UMA == SW NUMA ma con prestazioni solitamente peggiori Limitare il degrado di prestazioni: uso di cache per limitare i tempi NC (Not-Cached): mapping spazio di indirizzamento su memorie locali CC (Cache-Coherent): directory-based multiprocessor» Message passing implicito e trasparente al SW e al programmatore SO per - 2013-18 - 2001 - Luigi Pomante 9

Sistemi Operativi per Aspetti SW (SO) Aspetti SW (SO) Generalità Tipologie di SO per Architetture Multiprocessore La Sincronizzazione nei Lo Scheduling nei SO per - 2013-20 - 2001 - Luigi Pomante 10

Sistemi Operativi per Aspetti SW (SO) Generalità Generalità Design Productivity Gap La tecnologia (HW) offre molto di più di quello che i progettisti (SW) riescono a sfruttare Difficoltà nello scrivere applicazioni che sfruttano davvero i sistemi multiprocessore Gli attuali linguaggi di programmazione, compilatori e relativi strumenti di debug non sono adatti per scrivere programmi massivamente paralleli» Librerie ad-hoc: MPI/OpenMPI, OpenCL, OpenMP, MCAPI I programmatori non hanno abbastanza esperienza di programmazione concorrente I meccanismi di IPC non sono adeguati per eliminare corse critiche ed evitare i deadlock senza penalizzare estrememente le prestazioni Quali applicazioni?» Problema di prestazioni o di algoritmo? SO per - 2013-22 - 2001 - Luigi Pomante 11

Sistemi Operativi per Aspetti SW (SO) Tipologie di SO per Architetture Multiprocessore Tipologie di SO per Architetture Multiprocessore Ogni CPU con il suo SO (AMP) Master-Slave Simmetrici (SMP) Soluzioni ibride SMP/AMP SO per - 2013-24 - 2001 - Luigi Pomante 12

Tipologie di SO per Architetture Multiprocessore Ogni CPU con il suo SO (replicate solo le strutture dati) Chiamato anche Asymmetric Multi-Processing Pregi Semplice: porzione di memoria privata ed estendibile Condivisione di risorse (es. Dischi) Comunicazioni inter-processore efficienti Difetti Non c e condivisione di processi: carico sbilanciato Non c e condivisione di pagine: spreco di memoria e risorse Problemi di consistenza dei buffer per i dispositivi di I/O Tecnica usata inizialmente per effettuare rapidamente il porting Oggi usata soprattutto per sistemi eterogenei SO per - 2013-25 - Tipologie di SO per Architetture Multiprocessore Master-Slave Pregi Solo la CPU Master ha il SO» Raccoglie ed esegue tutte le chiamate di sistema» Si occupa di smistare i processi: carico bilanciato Condivisione di pagine Una sola copia dei buffer per i dispositivi di I/O Difetti Il problema è che al crescere del numero di CPU (>5) il Master diventa rapidamente un collo di bottiglia SO per - 2013-26 - 2001 - Luigi Pomante 13

Tipologie di SO per Architetture Multiprocessore Simmetrici Symmetric MultiProcessor (SMP) LOCK Pregi Esiste una sola copia di SO in memoria ma ogni CPU lo può eseguire» Ogni CPU esegue le proprie chiamate di sistema Processi e memoria vengono bilanciati dinamicamente Difetti Necessità di eseguire il SO in mutua esclusione: LOCK» Accesso al SO: collo di bottiglia!» E necessario dividere il SO in parti indipendenti accessibili in parallelo» E un operazione complessa e problematica SO per - 2013-27 - Tipologie di SO per Architetture Multiprocessore Soluzioni ibride SMP/AMP Take advantage of multicore with a multi-os software architecture Stephen Olsen, Wind River Systems - October 6, 2013 http://www.embedded.com/print/4422211 SO per - 2013-28 - 2001 - Luigi Pomante 14

Sistemi Operativi per Aspetti SW (SO) La Sincronizzazione nei La Sincronizzazione nei La sincronizzazione tra i processori è fondamentale, soprattutto per quanto riguarda l accesso esclusivo a risorse critiche Non basta più disabilitare gli interrupt Non è più possibile basarsi su istruzioni assembly tipo TSL (o RMW) La TSL deve poter fare un lock anche sul bus» Ciò causa spreco di risorse e sovraccarico (spin lock) Esistono vari algoritmi per ridurre lo spreco di risorse Tentativi ritardati, liste di attesa, etc. SO per - 2013-30 - 2001 - Luigi Pomante 15

Sistemi Operativi per Aspetti SW (SO) Lo Scheduling nei Lo Scheduling nei Cosa viene schedulato? Processi mono-thread e user-thread vs kernel-thread Utilizzeremo genericamente il termine thread Dove? Esistono relazioni tra i thread da considerare? Lo Scheduling nei è un problema bidimensionale: il SO deve decidere quale thread eseguire e su quale CPU eseguirlo Timesharing Space Sharing Gang Scheduling SO per - 2013-32 - 2001 - Luigi Pomante 16

Lo Scheduling nei Timesharing Senza considerare le dipendenze tra thread si può utilizzare una singola tabella dei thread per tutto il sistema Ogni processore libero esegue il successivo thread pronto (selezionato in base ad una qualche politica, es. priorità) SO per - 2013-33 - Lo Scheduling nei Timesharing Pregi: semplicità e bilanciamento del carico Difetti Contesa per l accesso alla Tabella dei Thread Potenziale blocco di altre CPU in caso di spin lock Poco sfruttamento di cache e TLB del processore Miglioramenti Smart Scheduling: permettere ad un thread che ha un lock sul bus di poter essere eseguito per un tempo maggiore del suo quanto di tempo Affinity Scheduling: cercare di eseguire un thread sull ultimo processore che l ha eseguito Two-level Algorithm: un gruppo di thread è assegnato ad una CPU che li gestisce con una struttura dati dedicata Quando una CPU è idle prende un thread da qualcun altra» Bilanciamento del carico» Massimizzazione della cache affinity» Riduzione della contesa per la Tabella dei Thread SO per - 2013-34 - 2001 - Luigi Pomante 17

Lo Scheduling nei Space Sharing Un gruppo di k thread correlati viene assegnato a k CPU disponibili Concetto di lista delle CPU disponibili In ogni istante l insieme di CPU è staticamente partizionato in gruppi che eseguono thread tra loro correlati (ad esempio che comunicano molto)» Le singole CPU possono anche essere dedicate ad un solo thread (no multitasking!) Lo Space Sharing elimina o riduce l overhead del cambio di contesto ma le CPU possono rimanere idle per molto tempo» Buono per lavori batch dove si conoscono bene le relazioni tra i processi SO per - 2013-35 - Lo Scheduling nei Gang Scheduling Non considerando le relazioni tra i thread si possono avere inefficienze dovute alle comunicazioni Alcuni algoritmi cercano di effettuare in contemporanea lo scheduling nel tempo e nello spazio tenendo in considerazione le dipendenze/relazioni tra i thread SO per - 2013-36 - 2001 - Luigi Pomante 18

Lo Scheduling nei Gang Scheduling: ha come obbiettivo quello di eseguire in contemporanea thread correlati Gruppi di thread correlati (gang) sono schedulati in modo indivisibile I membri di una gang sono eseguiti simultaneamente in timesharing da più processori I membri di una gang hanno i time slice coincidenti» Allo scadere di ogni quanto tutte le CPU sono ri-schedulate» Se un thread si blocca, la CPU aspetta in idle lo scadere del quanto SO per - 2013-37 - Sistemi Operativi per 2001 - Luigi Pomante 19

Generalità Aspetti HW Aspetti SW (SO) SO per - 2013-39 - Sistemi Operativi per Generalità 2001 - Luigi Pomante 20

Generalità I offrono un semplice modello per la comunicazione ma al crescere del numero di processori sono difficili da costruire e quindi molto costosi Sono quindi nati i composti da CPU lascamente accoppiate che non condividono memoria Cluster Computer Cluster of Workstation (COWS) Si tratta in pratica di normali calcolatori collegati da una rete di interconnessione Il problema questa volta è progettare efficacemente tale rete e le interfacce di rete Il compito è meno arduo rispetto a perchè i tempi in gioco sono di un ordine di grandezza superiore» Il discorso è un po più complesso per i NoC SO per - 2013-41 - Sistemi Operativi per Aspetti HW 2001 - Luigi Pomante 21

Aspetti HW Il nodo base di un Multicomputer consiste in uno o più processori, memoria, un interfaccia di rete e (alle volte) un hard disk Tecnologie di Interconnessione Interfacce di Rete SO per - 2013-43 - Sistemi Operativi per Aspetti HW Tecnologie di Interconnessione 2001 - Luigi Pomante 22

Tecnologie di Interconnesione Ogni nodo è connesso ad altri nodi o a degli switch secondo una determinata topologia Topologie Classiche Stella (a) Anello (b) Grid o Mesh (c)» Scalabile» Diametro = f(n 1/2 ) Doppio Toro (d)» Tollerante ai guasti Cubo (e) Ipercubo (f)» Diametro = f(log 2 n) SO per - 2013-45 - Tecnologie di Interconnesione Stategie di Switching A pacchetto Si trasferisce un pacchetto (per intero) alla volta Store-and-forward Packet Switching» Flessibile ed efficiente ma latenza cresce con la dimensione della rete A circuito Percorso predeterminato Non ci sono salvataggi intermedi» Occorre una fase di setup Wormhole Routing E una via di mezzo tra le prime due strategie» Un pacchetto è diviso in pezzi più piccoli che fluiscono man mano che il percorso viene stabilito SO per - 2013-46 - 2001 - Luigi Pomante 23

Sistemi Operativi per Aspetti HW Interfacce di Rete Interfacce di Rete Il modo con cui sono costruite e come interagiscono con CPU e RAM influiscono notevolmente sul SO In genere sono dotate di RAM a bordo per mantenere un flusso continuo di bit durante la trasmissione/ricezione dei dati Possono anche avere controller DMA e/o CPU a bordo Network Processors» Gestione trasmissione affidabili, multicasting, de/compressione, encryption/decryption, protezione in sistemi multitasking SO per - 2013-48 - 2001 - Luigi Pomante 24

Sistemi Operativi per Aspetti SW (SO) Aspetti SW (SO) La Comunicazione nei Lo Scheduling nei Bilanciamento del Carico nei SO per - 2013-50 - 2001 - Luigi Pomante 25

Sistemi Operativi per Aspetti SW (SO) La Comunicazione nei La Comunicazione nei Comunicazione di Basso Livello Attività critica: copia dei pacchetti! Minimizzare le copie dei pacchetti Interfaccia di rete mappata in user-space» Problemi di condivisione tra processi» Problemi di mapping indirizzi fisici/virtuali con DMA» Problemi di accesso da parte del kernel (doppia interfaccia di rete) SO per - 2013-52 - 2001 - Luigi Pomante 26

La Comunicazione nei Comunicazione di Livello Utente I processi si scambiano messaggi tramite opportune chiamate di sistema Send and Receive» In questo modo la comunicazione è esplicitamente gestita dall utente» N.B. Tecnica utilizzabile anche per i Multiprocessore Queste comunicazioni possono essere blocccanti (sincrone) o non bloccanti (asincrone) Nel secondo caso l elaborazione può continuare a patto di non usare il buffer contenente il messaggio spedito/ricevuto fino a trasferimento completato Servono dei meccanismi per avvisare che il buffer è utilizzabile» Es. interrupt, pop-up thread, active message SO per - 2013-53 - La Comunicazione nei Remote Procedure Call (RPC) Offrono un paradigma diverso da quello basato sull I/O Chiamate a procedure residenti su un altro calcolatore» Normale passaggio di parametri» I processi utente fanno chiamate a procedura locali al client stub (che gira in spazio utente)» Tali procedure hanno lo stesso nome di quelle server e si occupano del vero I/O» Operazioni di send/receive implicite e trasparenti Problemi con passaggio di puntatori, tipizzazione debole e variabili globali SO per - 2013-54 - 2001 - Luigi Pomante 27

La Comunicazione nei Distributed Shared Memory (DSM) Permette di mantenere il concetto di memoria condivisa Con la DSM le pagine sono dislocate nelle varie memorie locali Quando una CPU effettua una load (store) su una pagina che non ha, avviene una chiamata al sistema operativo che provvede a recuperarla facendosela spedire appena possibile» Page fault remoto Ottimizzazioni» Replicare le pagine (coerenza!) Differenze con la vera Shared Memory (a)» Gestione HW (b)» Gestione SW (SO) SO per - 2013-55 - Sistemi Operativi per Aspetti SW (SO) Lo Scheduling nei 2001 - Luigi Pomante 28

Lo Scheduling nei Nei tutti i processi risiedono nella stessa memoria e potenzialmente ogni CPU può eseguirne uno qualunque Nei ogni CPU ha un certo insieme di processi da eseguire e non è fattibile (per l elevato costo della comunicazione) uno scambio dinamico di questi In pratica lo scheduling è locale e quindi quello classico Diventa però fondamentale l allocazione dei processi sui vari nodi ai fini del bilanciamento del carico e della minimizzazione delle comunicazioni inter-nodo SO per - 2013-57 - Bilanciamento del Carico nei E di estrema importanza proprio perchè lo scheduling locale non permette (facilmente) di intervenire a posteriori Fondamentale differenza con i Processor Allocation Algorithm Graph-Theoretic Deterministic Algorithm Sender-Initiated Distributed Heuristic Algorithm Receiver-Initiated Distributed Heuristic Algorithm SO per - 2013-58 - 2001 - Luigi Pomante 29

Bilanciamento del Carico nei Graph-Theoretic Deterministic Algorithm Si basano su stime dei requisiti di CPU e memoria da parte dei processi e di traffico medio sulla rete Cercano l allocazione che minimizza il traffico sulla rete Teoria dei grafi: insiemi di taglio tali da soddisfare dei vincoli (CPU e memoria) e minimizzarne altri SO per - 2013-59 - Bilanciamento del Carico nei Sender-Initiated Distributed Heuristic Algorithm Quando un processo viene creato esso è eseguito localmente a meno che il nodo in questione non sia sovraccarico Il carico è calcolato con opportune metriche Se il nodo è sovraccarico questo contatta altri nodi (a caso) e se ne trova uno con il carico più basso del suo gli spedisce il nuovo processo Dopo k tentativi vani il processo è eseguito localmente SO per - 2013-60 - 2001 - Luigi Pomante 30

Bilanciamento del Carico nei Receiver-Initiated Distributed Heuristic Algorithm E duale al precedente: quando un processo termina e il carico e basso, il nodo contatta (a caso) altri nodi in cerca di processi da eseguire Dopo k tentativi smette di chiedere In questo modo sistemi già carichi non sono costretti a fare lavoro in più per cercare collaboratori Si crea molto traffico quando il sistema è molto scarico Si possono combinare i due algoritmi Offerte e richieste simultanee Alternativa migliore alla ricerca casuale Elenco dei nodi spesso sovraccarichi Elenco dei nodi spesso liberi SO per - 2013-61 - Sistemi Operativi per Riferimenti 2001 - Luigi Pomante 31

Riferimenti Riferimenti Modern Operating Systems (3 a edizione, 2007), A. Tanenbaum Capitolo 8, Multiple Processor Systems SO per - 2013-63 - 2001 - Luigi Pomante 32