UNIVERSITA DEGLI STUDI DI TRIESTE FACOLTA DI INGEGNERIA. Corso di Laurea in Ingegneria Elettronica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITA DEGLI STUDI DI TRIESTE FACOLTA DI INGEGNERIA. Corso di Laurea in Ingegneria Elettronica"

Transcript

1 UNIVERSITA DEGLI STUDI DI TRIESTE FACOLTA DI INGEGNERIA Corso di Laurea in Ingegneria Elettronica Relazione sul Calcolo Parallelo realizzata per il Corso di Sistemi Operativi (Prof. Enzo Mumolo) da Lorenzo Sabbatini

2 1. Introduzione al calcolo parallelo Negli ultimi dieci anni il calcolo ad alta performance (HPC - High Performance Computing) è diventato uno strumento essenziale in numerose discipline scientifiche e tecnologiche come la climatologia, la ricerca della fisica del plasma, studi dei materiali, elettromagnetismo, biomedica, fluidodinamica e robotica. Strutture teoriche in grado di predire risultati accurati richiedono un enorme potenza computazionale per produrre progressi rilevanti in questi campi in tempi ragionevoli. La fisica computazionale ha, in certi casi, fornito informazioni rilevanti che si potevano ottenere solo tramite esperimenti molto costosi; infatti, le simulazioni di sistemi complessi su piattaforme ad alta performance sono chiamate esperimenti computazionali. Il calcolo ad alte prestazioni non dipende solo dall uso di piattaforme computazionali sempre più veloci, ma anche dalla realizzazione di modelli, algoritmi, codici. Questi due obiettivi si possono ottenere solo tramite la congiunzione di diverse discipline e capacità dove le tecniche di sviluppo di modelli e gli algoritmi da una parte, e i metodi computazionali dall altra, contribuiscono in egual misura all esecuzione di esperimenti simulati. Come esempio si può citare la CFD (Computational Fluid Dynamics) il cui scopo principale è lo studio della turbolenza. Il termine turbolenza indica lo stato dinamico di un fluido. Le quantità fisiche associate a questo stato, come le velocità locali, la temperatura e la pressione, esibiscono fluttuazioni caotiche nel tempo e nello spazio. L interesse per i flussi turbolenti non è solo derivato dal desiderio di capirne la fisica, ma anche dal fatto che molte applicazioni tecnologiche necessitano di predire il loro comportamento. La combustione turbolenta è uno di quei campi che presentano maggiori sfide. Questo fenomeno è attualmente oggetto di un sempre maggior interesse in ambito sia industriale che ambientale. Infatti, la gran parte degli studi fatti é mirata ad aumentare l efficienza della combustione e allo stesso tempo a ridurre il livello di emissioni dannose. Perciò, qualsiasi passo in avanti compiuto in questo campo potrà aiutare a risolvere molti dei problemi pratici di tutti i giorni. Per quanto riguarda la fluidodinamica, si rivolge l attenzione alla conoscenza della struttura spaziale della turbolenza e al suo sviluppo temporale. Tali informazioni sono difficili da ottenere in un esperimento di laboratorio perché bisogna eseguire misure simultanee in istanti e posizioni diverse. Poiché le equazioni del moto del fluido sono ben note, sono risolte con tecniche numeriche tipiche della CFD. Il principale vantaggio di questo approccio è che fornisce informazioni dettagliate sulle strutture tridimensionali del flusso, che sono praticamente impossibili da ottenere tramite misure di laboratorio. La messa a punto di queste simulazioni numeriche è stata consentita dal rapido incremento della potenza computazionale disponibile. Quando tutti i dettagli della turbolenza sono simulati numericamente si parla di DNS (Direct Numerical Simulation).Al presente, DNS è l unico strumento che può fornire informazioni molto importanti sulla distribuzione dei vortici in flussi turbolenti, tramite dati tridimensionali della velocità. Sfortunatamente, DNS è molto costosa dal punto di vista computazionale, limitando il suo uso a bassi numeri di Reynolds (quantità che caratterizza il moto del fluido), non comparabili ai numeri di Re che caratterizzano i problemi industriali. Questo perché all aumentare di questo numero aumenta il divario tra le grandi e le piccole scale della turbolenza; le prime hanno dimensioni comparabili con le lunghezze che caratterizzano la geometria del problema. Ne segue che per catturare le piccole scale della turbolenza, al crescere del numero di Re saranno necessarie griglie di calcolo sempre più spinte. Parallelamente deve raffinarsi anche la discretizzazione temporale, sia per problemi di stabilità dei metodi numerici utilizzati sia per catturare le sempre più rapide fluttuazioni delle grandezze turbolente su piccola scala. Valgono i seguenti legami (stime) tra il numero di Reynolds e le caratteristiche della simulazione: N p Re 9/4 N t Re 7/8 dove N p rappresenta il numero complessivo di celle dove N t rappresenta il numero totale di passi di tempo Esempio 1: Nel caso di una simulazione eseguita con un codice commerciale (FLOW3D), supponendo Re = 5000 sono necessari circa 3.84 * 10 6 nodi e passi di tempo. La memoria richiesta è pari a 307 Mwords ed il tempo di calcolo su un super calcolatore CRAY 2 (inizio anni 80) è stimato approssimativamente in 3 anni. Esempio 2: Simulazione eseguita da Eggels e altri (Tratta da Journal of Fluid Mechanics): Re = 5300 con una griglia pari a [256 x 96 x 128] per un totale di 3.15 * 10 6 nodi. La memoria richiesta è pari a 29.7 Mwords. Per portare a termine la simulazione sono necessarie 152 ore di tempo di CPU su una calcolatore CRAY YMP - /464 (1988). 2

3 Introduzione al calcolo parallelo Esistono poi altri tipi di problemi. Nonostante siano stati fatti notevoli progressi negli ultimi 5 anni nello sviluppo di potenti e innovative architetture hardware, il software rimane il maggiore fattore limitante nello sfruttamento di questi sistemi ad alta performance. In particolare non è emerso nessun paradigma di programmazione dominante per il calcolo parallelo e c è una considerevole scarsità di standard e di disponibilità in strumenti software e pacchetti applicativi. C è ancora molto lavoro da fare per migliorare i linguaggi dedicati alla programmazione parallela, per migliorare la tecnologia dei compilatori, l ambiente di sviluppo dei programmi e gli stessi algoritmi paralleli. 3

4 Sistemi paralleli 2. Sistemi Paralleli 2.1 Classificazione di Flynn Si tratta di una classificazione in cui si presentano le diverse tipologie standard di macchine calcolatrici. Il criterio proposto da Flynn tiene conto delle modalità di manipolazione sia dei dati che delle istruzioni. Macchine SISD (Single Instruction stream - Single Data stream) Si rifanno al modello di Von Neumann. La maggior parte degli elaboratori scalari rientra in questa categoria. Ad ogni passo di tempo è eseguita una sola istruzione. Macchine SIMD (Single Instruction stream - Multiple Data stream) Sono macchine SIMD tutti gli elaboratori vettoriali che manipolano una sola istruzione ad ogni istante di tempo ma che contengono più unità funzionali aritmetiche capaci di operare contemporaneamente su più dati Macchine MISD (Multiple Instruction stream - Single Data stream) Non esistono applicazioni di questo modello. Macchine MIMD (Multiple Instruction stream - Multiple Data stream) Sotto questa dicitura si possono classificare tutti gli elaboratori con più unità di elaborazione (sia scalari che vettoriali), da quelli che possiedono una bassa interazione tra processi concorrenti (es. CRAY C90) a quelli progettati per sfruttare al massimo le interazioni tra processori (es. CRAY T3E). Prendiamo ora in considerazione le macchine MIMD e vediamo tre diverse realizzazioni di queste macchine calcolatrici che si distinguono per il tipo di connessione tra processori e memoria. 4

5 Sistemi paralleli 2.2 Tipologie di interconnessione Macchine UMA (Uniform Memory Access) Memoria E difficile aumentare il numero dei processori causa il tempo di accesso alla memoria Non è prevista la scalabilità, il numero dei processori è fisso. Accesso alla memoria globale agevole P0 P1... PN Macchine NORMA (No Remote Memory Access) P1 M1 La richiesta del singolo processore deve passare attraverso la rete. E possibile aggiungere con facilità altri processori. Gestione esplicita della comunicazione tra i nodi. RETE P2.... PN M2.... MN Macchine Numa (Non Uniform Memory Access) P1 M1 Memoria logicamente condivisa ma fisicamente distribuita Più veloce del modello NORMA Preservo la scalabilità Gestione più agevole delle comunicazioni Rete P2... PN M2... MN 5

6 Architettura del Cray 3. Architettura del CRAY T3E 3.1 Macroarchitettura MIMD Architettura a memoria fisicamente distribuita ma logicamente condivisa Interconnessione di tipo toroidale tridimensionale. Incrementata latenza e il meccanismo di sincronizzazione 6

7 Architettura del Cray 3.2 Microarchitettura del PE microprocessore DEC Alpha (EV5) 300 MHz di picco (un periodo di clock è pari a 3.3 nanosecondi) 600 Mflop/s di picco Memorie cache presenti sul chip (consistenti con l hardware) Memoria cache per le istruzioni da 8 KB e una memoria cache da 8 KB per i dati cache dati secondaria da 96 KB (associativa a tre vie) Decodifica scalare delle istruzioni a quattro vie Quattro pipeline di esecuzione 2 per gli interi (inclusi 2 load o 1 store) 2 per i float (1 add, 1 multiply, sia a 32 che a 64 bit) aritmetica IEEE a 32 e a 64 bit Moltiplicazione e somma floating point in 4 cps (13.3 ns) registri a 64 bit 32 per gli interi e 32 per i numeri in virgola mobile Alta larghezza di banda 4.8 Gbyte/s per un load, 2.4 Gbyte/s per uno store Memoria locale Mbytes/PE in futuro è prevista l installazione di 1 e 2Gbytes/PE 6 banchi di memoria 7

8 Architettura del Cray 3.3 Stream Buffers Precaricamento asincrono dalla DRAM a buffer veloci Gestito automaticamente dall hardware Miglior performance rispetto alla cache esterna 8

9 Architettura del Cray 3.4 Diagramma a blocchi del singolo nodo del T3E 9

10 Architettura del Cray 3.5 Rete di interconnessione dei processori Toro 3D bidirezionale Latenza hardware inferiore al microsecondo Larghezza di banda (teorica) superiore a 650 MB/sec Larghezza di banda effettiva di 480 MB/sec Network routing Special routing Usato per la manutenzione e l inizializzazione Direction order routing Usato per il trasferimento di dati attraverso un percorso predeterminato Routing adattativo Se quella direzione è occupata, si tenta un altra dimensione (non arbitraria) 10

11 Architettura del Cray 3.6 Accesso globale della memoria Il nodo CRAY T3E incrementa l interfaccia di memoria del microprocessore Alpha attraverso un elevato numero (512 dedicati all utente e 128 dedicati al sistema) di registri esterni (E-registers) gestiti in maniera esplicita. Tutte le comunicazioni remote e la sincronizzazione sono eseguite attraverso questi registri. Essi consentono un numero molto elevato di richieste per nascondere la latenza della rete, e forniscono un supporto efficiente per accessi non consecutivi alla memoria attraverso la raccolta (gather) di singole parole che possono poi essere caricate consecutivamente attraverso il bus di sistema del microprocessore. Altra cosa importante è che incrementano notevolmente il grado di canalizzazione (pipelinig) per le richieste di accesso alla memoria globale. I dati contenuti negli E-register possono essere caricati nel processore Alpha a 600 Mb/s Gli E-register adottano un nuovo meccanismo di traduzione degli indirizzi. Il microprocessore usa uno spazio di memoria cacheable e uno spazio per la memoria I/O non cacheable, che si distingue attraverso il bit più significativo dell indirizzo fisico. I load e store effettuati in memoria locale fanno parte dello spazio di memoria cacheable. La traduzione degli indirizzi avviene sul processore nella maniera usuale, e gli indirizzi fisici sono passati in memoria. I registri mappati in memoria, compresi gli E-registers, usano lo spazio I/O non cacheable. Esistono due tipi di operazioni che possono essere eseguite sugli E-registers: Load e store diretti tra gli E-registers e i registri del processore Operazioni globali degli E-registers I load/store diretti sono usati per memorizzare i risultati negli E-registers e caricare i risultati dagli E-registers. Le operazioni globali sono usate per il trasferimento dati verso e dalla memoria (sia locale che remota). Comandi degli E-registers Load e store Trasferimento dati tra i registri del microprocessore Alpha e gli E-registers Comandi che operano sulla memoria locale (GET, PUT) Trasferimento dati tra gli E-registers e la memoria locale Comandi che operano sulla memoria globale (GET, PUT) Trasferimento dati tra gli E-registers e la memoria globale Comandi vettoriali (GETV4, GETV8, PUTV4, PUTV8) Trasferimento di 4/8 parole tra la memoria e gli E-registers consecutivi. Comandi speciali Operazioni atomiche (swap, fetch&inc, fetch&add, etc.) 11

12 Architettura del Cray 3.7 Interfaccia GigaRing del Cray T3E Il Gigaring è una rete di interconnessione per le periferiche collegate al T3E (Dischi, Nastri, reti Ethernet, etc.). Su questa interfaccia i dati viaggiano in entrambe le direzioni ad una velocità di 1 Gbyte/s. Esistono poi delle interfacce che connettono questa rete ai router della rete interna del CRAY T3E. 12

13 Architettura del Cray 3.8 Sistema I/O del CRAY T3E 3.9 Configurazione del T3E al Cineca (*) 128 PE (76.8 Gflops/s di picco) 8 PE di supporto (Per il sistema operativo, ridondanti) 128 Mbytes di memoria per ciascuno PE 3 canali GigaRing 21 dischi DD-318 per un totale di circa 200 Gigabytes 10 dischi DD-60 per un totale di circa 19 Gigabytes (*) Centro di Calcolo Elettronico dell Italia Nord Orientale 13

14 Architettura del Cray 3.10 Funzionamento della memoria Un operazione sulla memoria del PE è essenzialmente di due tipi: Una lettura o scrittura dei dati nella memoria locale del PE. Ogni PE ha a disposizione tra i 64 Mbytes (8 Mwords) e 2 Gbytes (256 Mwords) di memoria. Una lettura o scrittura dei dati in memoria remota (la memoria locale a qualche altro PE). Le operazioni tra un PE e la memoria locale sono sempre più veloci delle operazioni compiute tra un PE e la memoria remota. L'accesso ai dati in memoria locale avviene attraverso 2 livelli di cache: una cache secondaria da 96 Kbyte e una cache dati da 8 Kbyte ad alta velocità. I dati scritti in memoria locale passano attraverso 6 buffer di scrittura e la cache secondaria. La consistenza della cache è eseguita automaticamente sui sistemi CRAY T3E. La cache è una memoria ad alta velocità che aiuta a spostare velocemente i dati tra la memoria locale e i registri del microprocessore EV5. E ancora una parte importante della programmazione MPP. La direttiva CACHE ALIGN allinea ogni variabile specificata su una linea di cache. Ciò può essere utile per le variabili frequentemente referenziate e per il passaggio di array alle routine SHMEM. La direttiva CACHE ALIGN può essere usata con tutti i paradigmi di programmazione descritti in questa relazione. La cache dati è una direct mapped cache, cioè ogni locazione di memoria è mappata in una locazione della cache dati. Quando un array, per esempio, è più grande della cache dati, una locazione della cache dati può mappare più di un indirizzo dell array. Ogni locazione è composta da una singola linea di 4 parole (32 byte). La cache secondaria è una cache associativa a tre vie, e le linee possono contenere fino a 8 parole, per un totale di 64 bytes. In una cache associativa a tre vie, ogni locazione di memoria è associata con tre linee della cache secondaria. La scelta della linea nella quale è mappato il dato avviene in maniera casuale. Può essere selezionata qualsiasi linea. Vedremo ora un esempio di funzionamento della cache dati e della cache secondaria, che descrive lo spostamento dei dati tra la memoria locale e il microprocessore (Procedura 1). La figura 1 illustra i componenti di un PE. Le abbreviazioni nella figura hanno il seguente significato. EV5 Il microprocessore RISC costruito dalla Digital Equipment Corporation (DEC) E0, E1 Unità funzionali per gli interi FA, FM WB MAF ICACHE DCACHE SCACHE SB DRAM Unità funzionali per i numeri in virgola mobile Buffer di scrittura Archivio degli indirizzi mancanti (Missed address file) cache delle istruzioni (non rilevanti in questa discussione) cache dati cache secondaria stream buffer Memoria locale 14

15 Architettura del Cray EV5 E0 E1 FA FM WB ICACHE DCACHE MAF SCACHE SB SB SB SB SB SB DRAM 15

16 Architettura del Cray L esempio preso in considerazione è il seguente ciclo: DO I = 1, N A ( I ) = B ( I ) * N END DO Spostamento dei dati dalla memoria 1. Un registro dell EV5 richiede il valore di B(1) dalla cache dati. 2. La cache dati non ha B ( 1 ). Richiede B( 1 ) dalla cache secondaria. 3. La cache secondaria non ha B ( 1 ). Questo è il primo cache miss in cache secondaria. Reperisce una linea ( pari a 8 parole, 64 bytes per la cache secondaria) dalla memoria locale. 4. La cache dati riceve una linea ( 4 parole per la cache dati ) dalla cache secondaria. 5. Il registro riceve b ( 1 ) dalla cache dati. Lo stato dei dati a questo punto è illustrato nella seguente figura. B ( 1 ) Registri B ( 1-4 ) Cache dati B ( 1-8 ) Cache secondaria B ( 1-N ) Memoria locale 16

17 Architettura del Cray 6. Quando gli altri registri necessitano di B ( 2 ) fino a B ( 4 ), possono prenderli direttamente dalla cache dati. 7. Quando un registro necessita di B( 5 ), la cache dati non lo ha. 8. La cache dati richiede B( 5 ) fino a B( 8 ) dalla cache secondaria, che li ha e li passa. 9. La cache dati richiede passa B ( 5 ) fino a B(8) agli appropriati registri non appena ne riceve richiesta. Quando il microprocessore ha finito con questi dati richiede B( 9 ) dalla cache dati. 10. La cache dati richiede una nuova linea di dati dalla cache secondaria, che non li ha. Questo è il secondo cache miss che avviene in cache secondaria, ed è il segnale al sistema per iniziare a canalizzare i dati. 11. La cache secondaria richiede un altra linea di 8 parole dalla memoria locale e la mette in uno dei bucket a tre linee. Può finire in una qualsiasi delle tre linee, dato che il processo di selezione è casuale. 12. Una linea di 4 parole è passata dalla cache secondaria alla cache dati, ed un singolo valore è spostato in un registro. Quando il valore di B ( 9 ) raggiunge il registro, la situazione è quella illustrata nella seguente figura. B ( 9 ) Registri Cache dati B ( 1-4 ) B ( 5-8 ) B ( 9-12 ) B ( 1-8 ) B ( 9-16 ) Cache secondaria B ( ) Stream buffer B ( 1-N ) Memoria locale 17

18 Architettura del Cray 13. Poiché è stata inizializzata la canalizzazione, i dati vengono ora precaricati,. Uno stream buffer anticipa la continua necessità del microprocessore di dati consecutivi, e comincia a reperire B ( 17 ) e B ( 24 ) dalla memoria prima che siano richiesti. Quando il microprocessore continua a richiedere elementi consecutivi di B, i dati saranno pronti con ritardo minimo. 14. Il processo di precaricamento dei dati tra la memoria locale e i registri del microprocessore continueranno fino a quando non termina il ciclo. Questi passi descrivono solo il flusso di dati in input. Il valore dell array A passa attraverso il write buffer e la cache secondaria, come illustrato nella seguente figura, e torna indietro in memoria locale. I valori di A sono scritti in memoria locale solo quando una linea in cache secondaria è rimpiazzata da una scrittura nella stessa linea, oppure quando i valori di A sono richiesti da un altro PE. B ( 9 ) A ( 9 ) Registri Write Buffer Cache dati B ( 1-4 ) B ( 5-8 ) B ( 9-12 ) A ( 9 ) A ( 1-4 ) A ( 5-8 ) B ( 1-8 ) B ( 9-16 ) Cache secondaria A( 1-8 ) B ( ) Stream buffer B ( 1-N ) A ( 1... ) 18

19 Il sistema operativo Unicos/mk 4. UNICOS/mk Unicos/mk è il nome scelto da Cray per il sistema operativo della sua macchina massicciamente parallela, il T3E. Il passaggio dal modello T3D, in cui la maggior parte delle funzioni del sistema operativo era svolta dall host C90, ad una architettura stand-alone ha richiesto un ripensamento complessivo. Un sistema operativo per una macchina di questo tipo, infatti, non può avere il classico kernel monolitico che svolge tutte le funzioni, ma deve necessariamente essere più agile e modulare, con diverse componenti che possono essere facilmente distribuite facilmente sui processori, in una parola distribuito. In fase di disegno Cray ha imposto inoltre al sistema di soddisfare altre due caratteristiche: compatibilità, ossia interfaccia utente il più possibile identica a Unicos single system image : il sistema deve apparire agli utenti come un sistema operativo unico, rendendo del tutto trasparente la sottostante architettura distribuita. 4.1 Struttura Unicos/mk è composto da un microkernel (mk) e da diversi servers, che cooperano per fornire la totalità delle funzioni del sistema operativo. Il microkernel svolge le funzioni di interfaccia con l hardware, memory management, CPU scheduling e Inter Process Communication. Ognuno dei servers si occupa di una funzione specifica: abbiamo ad esempio un File server, un Tape server, un Process Manager e così via. Unicos/mk deriva dai sistemi operativi Chorus ed Unicos. Il sistema operativo Chorus ha fornito la struttura complessiva e il microkernel, mentre i servers sono costituiti dal corrispondente codice di Unicos, opportunamente interfacciato verso il microkernel. Applicazione Process Manager File tty Socket Tape Disk Config Packet Net Dev Info Microkernel Figura 1. Uno schema grafico di questo tipo di sistema è mostrato nella figura 1, dove andando verso l alto ci si allontana dall hardware. 19

20 Il sistema operativo Unicos/mk 4.2 Unicos/mk sul T3E La distribuzione è presto fatta: su ogni processore gira una copia di microkernel e il Process Manager; su alcuni processori, inoltre, girano gli altri servers, come illustrato nella figura 2. Applicazione Applicazione Applicazione PM PM PM Microkernel Microkernel Microkernel Applicazione Applicazione Applicazione Disk Packet File PM PM PM Microkernel Microkernel Microkernel Applicazione Applicazione Applicazione Disk Packet File PM PM PM Microkernel Microkernel Microkernel Figura 2. Per comodità sul T3E si introduce una classificazione dei Processing Elements (PE) a seconda dei servers che ci girano sopra, o se si preferisce vederla dall altro lato, della funzione che esplicano. Si distingue quindi tra: Operating System PE: PE che esegue soltanto microkernel e servers. Command PE: PE che esegue anche comandi utente, dove comando è qualsiasi eseguibile compilato per l esecuzione su un solo PE. Application PE: PE che può eseguire anche applicazioni compilate per essere eseguite su un numero di PE maggiore di uno. Va sottolineato che tale distinzione è puramente funzionale, mentre non c è alcuna differenza di altro tipo tra i PE. 4.3 Cosa vede l utente Un sistema che si presenta allo stesso modo che fosse un singolo host: si fa login, si ha una shell, si fanno partire le applicazioni allo stesso modo. A questo punto è forse inutile sottolinearlo, ma anche il file system è visto identicamente ovunque. In realtà ciascuno dei comandi che si danno può essere eseguito in modo trasparente su un qualsiasi PE (Command), mentre un eseguibile compilato per un numero di PE superiore ad uno girerà senza alcun intervento dell utente su un gruppo di 20

21 Il sistema operativo Unicos/mk Application PE, (allo stesso modo di come adesso è il sistema operativo che si preoccupa di capire se un eseguibile va fatto girare sul T3D o sul C90). Esempio: se faccio ls -l grep mio può succedere che ls e grep siano fatti girare su due PE diversi. 4.4 Conclusioni Il sistema operativo Unicos/mk permette di trarre vantaggio dalle nuove architetture massicciamente parallele senza bisogno di cambiare mentalità, dato che è esso stesso a prendersi cura di nascondere la complessità dell architettura sottostante con una immagine unitaria all utente. 21

22 5. Uso del Cray T3E 5.1 Software presente sul T3E Compilatori: Fortran 90 pghpf 2.3 C e C++ CAM (Cray Assembler per MPP) Librerie: MPI Message Passing Interface PVM Parallel Virtual Machine CrayLibs: librerie scientifiche (libsci) CrayTools: Totalview, Apprentice, PAT IMSL Fortran 90 MP Library (Versione 3.0) 5.2 Accesso al Cray T3E come collegarsi: telnet t3e.cineca.it 5.3 Compilazione e linking Per il compilatore Fortran 90: f90 [opzioni] file.f segnaliamo in particolare l'opzione -Xm oppure -X npes che serve nel primo caso a generare un eseguibile malleable (sul T3D si chiamava plastic) e nel secondo caso a generare un eseguibile per npes PE. Un eseguibile malleable può essere fatto girare su un numero qualsiasi di PE usando il comando mpprun. per il C: cc [opzioni] file.c per il C++: CC [opzioni] file.c per il PGHPF: pghpf [opzioni] file.f Anche per C e C++ l'opzione -X ha lo stesso significato del Fortran. Le librerie possono essere linkate specificando "-l nome_libreria" sulla linea di comando del compilatore, ad esempio: f90 [opzioni] -l imsl file.f f90 [opzioni] -l pvm3 file.f f90 [opzioni] -l mpi file.f Chi volesse più' informazioni sul loader sappia che si chiama cld, (non più' segldr o mppldr). Con i comandi F90, cc, CC o PGHPF, il loader è richiamato direttamente una volta terminato il processo di compilazione. 22

23 Uso del CRAY T3E 5.4 Esecuzione Numero di PE (npes) specificato quando si compila il programma: f90 -Xnpe -o filename.x filename.f90 Numero di PE (npes) specificato a run time: f90 -o filename.x filename.f90 f90 -Xm -o filename.x filename.f90 Qualsiasi programma compilato senza l opzione -X npes diventa un eseguibile di tipo malleable che, per default, gira su un PE solo (che sarà un command PE). Si può cambiare il numero dei PE a run time, lanciando una applicazione con mpprun. Mpprun -n npes filename.x program-args dove filename.x è il nome del programma eseguibile e program-args i suoi argomenti. In interattivo si può eseguire qualsiasi comando e fare una compilazione con un limite di 200 secondi di CPU per processo. Inoltre su CRAY T3E è stata rimossa la restrizione sul numero di PE sui quali eseguire una applicazione parallela: non è infatti più necessario che sia una potenza di due (può essere perfino dispari!) 5.5 Esecuzione Batch E' disponibile il software NQE (il successore di NQS), che consente la sottomissione di jobs batch. Occorre creare uno script file che specifichi le risorse richieste (tempo e numero di PE; la memoria non va specificata poiché i PE sono assegnati in modalità dedicata) nonché la sequenza dei comandi che costituiscono il job da eseguire. Le opzioni interessanti sono : -l mpp_p=number Specifica il numero di PE da usare -l p_mpp_t=time Specifica il tempo in secondi di CPU per il singolo PE. Il comando per sottomettere un job e' qsub. Si raccomanda un accesso alla man page di qsub per una esauriente spiegazione dei parametri. Esempio Il comando qsub testjob sottomette uno script file chiamato testjob alla coda NQS appropriata (scelta automaticamente, in base alle risorse richieste). Se il contenuto del file testjob é : # QSTAT -l mpp_p = 128 # QSTAT -l mpp_p_t = 300 mpprun -n 128./a.out a.out sarà lanciato su 128 PE, assegnando un tempo di CPU per PE di 300 secondi. 23

24 Uso del CRAY T3E 5.6 Interazione con il sistema qstat -a qdel -k Per vedere lo stato delle richieste Per cancellare una richiesta: grmview Mostra lo stato di tutti i PE (command, application e OS) e le applicazioni running e waiting. Ps -laem Mostra lo stato delle applicazioni multi-pe jstat Mostra lo stato dei job (sessioni interattive e job batch) 5.7 Spazio disco Permanente Le home directories sono sui vari filesystems locali. Temporaneo Cosi come sul C90, per ogni sessione interattiva o job batch viene creata una directory $TMPDIR, nel filesystem /tmp, che è rimossa con tutto il suo contenuto alla fine del job o della sessione in questione. Si consiglia caldamente di eseguire in $TMPDIR, in modo che tutti i files di lavoro vengano automaticamente rimossi al termine dell'esecuzione. I files in /tmp al di fuori delle temporary directories possono essere rimossi in qualsiasi momento senza preavviso. NFS Il T3E accede via NFS ad alcuni filesystems del C90 via NFS, e viceversa: su entrambe le macchine i filesystem dell'altra sono visibili come /c90/a, /c90/infm, /c90/tmp e /t3e/a, /t3e/infm, /t3e/tmp rispettivamente. Dal T3E sono visibili anche i filesystems del fileserver sirio: /server/home, /server/tmp e /server/infm. 5.8 Salvataggio dati su cartuccia E' possibile utilizzare anche dal Cray T3E le cartucce IBM 3480 e 3490 a caricamento manuale ed automatico. Le cartucce consentono di memorizzare sino a 200 Mb (non compressi) per il tipo 3480 e sino a 800 Mb (non compressi) per le Con la compressione la capacita' aumenta in maniera molto dipendente dal tipo di dati e può arrivare sino a tre volte. Le cartucce possono essere a montaggio manuale, da parte degli operatori di sala macchine (residenza CART), o automatico, tramite il Loader STK4400 installato al CINECA (residenza SILO). Queste ultime possono ovviamente essere utilizzate anche in assenza di operatori. Le modalità di accesso rimangono le stesse utilizzate sul C90, ovvero tramite le procedure kart (vedi man kart) e, per un accesso a più basso livello, i comandi tpread e tpwrite. Il controllo di accesso passa attraverso le informazioni di proprietà e permessi mantenute nel TDB (Tape Data Base, vedi "man tdb"). L'acquisto di cartucce può essere richiesto agli operatori tramite il comando "msgr", specificando la quantità, il tipo (3480 o 3490), e la residenza (SILO o CART). L'identificativo utente sulla base del quale vengono stabiliti proprietà e permessi di accesso e' sempre lo username, ovvero username uguali su macchine diverse condividono lo stesso insieme di volumi fisici e di cartucce logiche. L'accesso alle cartucce avviene, sia pure in modo trasparente, sempre attraverso il Cray C90, al quale sono fisicamente collegate le unita', e' quindi possibile utilizzarle solo se il sistema C90 e' in funzione. 24

25 Uso del CRAY T3E 5.9 Debugging Il debugger e' TotalView (comando totalview), che consente sia l'analisi del core file che il debugging interattivo. Per default ha una interfaccia X-windows, ma e' anche possibile richiedere l'interfaccia di linea con totalview -L. Per usarlo occorre usare le opportune opzioni di compilazione; ecco un esempio per il Fortran, in cui si fa il debugging interattivo del programma myprog: % f90 -g -o myprog myprog.f % totalview myprog per invocare TotalView per un programma che abortisce e produce un core file: % f90 -g -o myprog myprog.f Operand range error (core dumped) % totalview myprog core 5.10 Misura delle performance Le routines "rtc()" (Fortran) e rtclock() (C e C++) restituiscono il real-time clock in clicks, dove un clock corrisponde a nanosecondi. REAL*8 CLK, SECONDI CLK=rtc()... < calcolo >... SECONDI=(rtc()-clk)*3.333e Apprentice Cosi come sul T3D, sul T3E e' disponibile Apprentice un vero e proprio tool di valutazione della performance. Per usare apprentice e' necessario specificare opportune opzioni di compilazione, e linkare la libreria libapp.a, in questo modo: Fortran: C e C++: f90 -ea -lapp -o myprog myprog.f cc -o try -lapp -h apprentice try.c 25

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

Dettagli

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa) Struttura astratta della memoria Memoria centrale il solo dispositivo di memoria al quale la CPU puo accedere direttamente Memoria secondaria (di massa) Estensione della memoria centrale che fornisce grande

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

ARCHITETTURE MULTIPROCESSORE E CALCOLO PARALLELO (Motivazioni e Classificazioni)

ARCHITETTURE MULTIPROCESSORE E CALCOLO PARALLELO (Motivazioni e Classificazioni) ARCHITETTURE MULTIPROCESSORE E CALCOLO PARALLELO (Motivazioni e Classificazioni) Michele Colajanni Università di Modena e Reggio Emilia E-mail: colajanni@unimo.it Perché le Architetture Multiprocessor?

Dettagli

CAPITOLO 5 - Sistemi Operativi Moderni

CAPITOLO 5 - Sistemi Operativi Moderni CAPITOLO 5 - Sistemi Operativi Moderni PRESENTAZIONE DI INSIEME Vedremo ora come si è evoluta nel tempo la struttura di un sistema operativo, per passare dalle vecchie strutture di tipo normalmente modulari,

Dettagli

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

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

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

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

PARTE II PROGRAMMAZIONE PARALLELA

PARTE II PROGRAMMAZIONE PARALLELA PARTE II PROGRAMMAZIONE PARALLELA Metodologie di Esplicitazione del Metodologie di Esplicitazione del Implicito Funzionale (Control Parallelism ) Basato sui dati (Data Parallelism ) Ogni metodologia di

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

Sistemi Distribuiti. Introduzione Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto. Sistemi Operativi mod.

Sistemi Distribuiti. Introduzione Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto. Sistemi Operativi mod. Sistemi Distribuiti Introduzione Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto 19.1 Introduzione A metà degli anni quaranta inizia l era dei calcolatori elettronici

Dettagli

Introduzione. Sistemi Distribuiti. Introduzione. Introduzione. Definizione di sistema distribuito. Introduzione

Introduzione. Sistemi Distribuiti. Introduzione. Introduzione. Definizione di sistema distribuito. Introduzione Sistemi Distribuiti Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto A metà degli anni quaranta inizia l era dei calcolatori elettronici moderni: grandi, costosi e

Dettagli

Parte IV Architettura della CPU Central Processing Unit

Parte IV Architettura della CPU Central Processing Unit Parte IV Architettura della CPU Central Processing Unit IV.1 Struttura della CPU All interno di un processore si identificano in genere due parti principali: l unità di controllo e il data path (percorso

Dettagli

Lezione 14. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 14. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 14 Sistemi operativi 9 giugno 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 14.1 Di cosa parliamo in questa lezione? Ottimizzazione degli accessi alla

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Il software Dipartimento di Ingegneria dell Informazione Universitàdegli Studi di Parma SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Cosa è un Sistema Operativo (S.O.)

Cosa è un Sistema Operativo (S.O.) Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi per: permettere all utente l uso dell elaboratore senza la conoscenza approfondita dell hardware S.O. supporto all

Dettagli

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Openmosix e Beowulf: introduzione e confronto

Openmosix e Beowulf: introduzione e confronto Openmosix e Beowulf: introduzione e confronto Giovanni Perbellini Cluster Introduzione Cluster ESD Openmosix Comandi principali Beowulf (PVM) Comandi principali Libreria PVM API Agenda 1 Introduzione -

Dettagli

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Introduzione: 1. Principi di base dei sistemi operativi 2. Sistemi

Dettagli

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

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Tecniche Automatiche di Acquisizione Dati

Tecniche Automatiche di Acquisizione Dati Tecniche Automatiche di Acquisizione Dati Sistemi operativi Fabio Garufi - TAADF 2005-2006 1 Cosa sono i sistemi operativi I sistemi operativi sono dei programmi software che svolgono le funzioni di interfaccia

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

Dettagli

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi Lezione 2: Compiti del S.O. La struttura e funzioni dei Sistemi Operativi Un S.O. ha il compito di rendere semplice (all utente), l utilizzo del calcolatore componenti di un sistema operativo servizi dei

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Sistema Operativo e Applicativi

Sistema Operativo e Applicativi Sistema Operativo e Applicativi Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Software A.A. 2012-2013 1 / 36 Software Conosciamo due classi di software: Programmi

Dettagli

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO.

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO. Sistemi Operativi Il Sistema Operativo Corso di Informatica Generale (Roberto BASILI) Cos'è un sistema operativo? Un sistema operativo e': La astrazione logica del livello macchina hardware e microprogrammata

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Definizione e storia dei sistemi operativi

Definizione e storia dei sistemi operativi Definizione e storia dei sistemi operativi Dipartimento di Informatica Università di Verona, Italy Che cos è un Sistema Operativo? E un insieme di programmi agisce come intermediario tra HW e uomo per

Dettagli

Parte VIII. Architetture Parallele

Parte VIII. Architetture Parallele Parte VIII Architetture Parallele VIII.1 Motivazioni Limite di prestazioni delle architetture sequenziali: velocità di propagazione dei segnali, la luce percorre 30 cm in un nsec! Migliore rapporto costo/prestazioni

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi basati su kernel Sistemi con microkernel Sistemi con

Dettagli

Calcolatori Elettronici L-A

Calcolatori Elettronici L-A 1 Calcolatori Elettronici L-A Obiettivo del modulo è lo studio dei seguenti aspetti dell hardware dei calcolatori: l architettura i principi di funzionamento le tecniche di progettazione l impatto dell'architettura

Dettagli

Implementazione del File System

Implementazione del File System Implementazione del file system Implementazione del File System Struttura del file system. Realizzazione del file system. Implementazione delle directory. Metodi di allocazione. Gestione dello spazio libero.

Dettagli

Cos e` un Sistema Operativo? Cos è un sistema operativo?

Cos e` un Sistema Operativo? Cos è un sistema operativo? Cos e` un Sistema Operativo? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer: fornisce un ambiente di sviluppo e di esecuzione per i programmi

Dettagli

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

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

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

CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO A cura di Tania Caprini 1 CALCOLO SERIALE: esecuzione di istruzioni in sequenza CALCOLO PARALLELO: EVOLUZIONE DEL CALCOLO SERIALE elaborazione di un istruzione

Dettagli

1. I dispositivi periferici

1. I dispositivi periferici La gestione dell I/O 1. I dispositivi periferici Un ulteriore aspetto fondamentale del SO è la gestione dei dispositivi periferici (periferiche) Dal punto di vista del sistema operativo per periferiche

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

MODELLO AD AMBIENTE GLOBALE

MODELLO AD AMBIENTE GLOBALE MODELLI DI INTERAZIONE TRA PROCESSI Modello ad ambiente globale ( global environment ) Modello a scambio di messaggi ( message passing ) MODELLO AD AMBIENTE GLOBALE Il sistema è visto come un insieme di

Dettagli

INFORMATICA. INFORmazione automatica

INFORMATICA. INFORmazione automatica INFORMATICA INFORmazione automatica Insieme di discipline e tecniche per rappresentare, elaborare e trasmettere automaticamente delle informazioni. Computer - Elaboratore elettronico: e macchina concepita

Dettagli

Sistemi di Elaborazioni delle Informazioni I

Sistemi di Elaborazioni delle Informazioni I Sistemi di Elaborazioni delle Informazioni I Docente: Marco Aldinucci aldinuc@di.unito.it http://www.di.unito.it/~aldinuc Ricevimento: Su appuntamento Esercitatore: Fabio Tordini tordini@di.unito.it 1

Dettagli

Sistemi Operativi (modulo di Informatica II) Architettura

Sistemi Operativi (modulo di Informatica II) Architettura Sistemi Operativi (modulo di Informatica II) Architettura Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Obiettivi di un sistema operativo Concetti di base sui sistemi operativi

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Indice generale. 1 Il calcolatore: astrazioni. 2 Le istruzioni: il linguaggio. e tecnologia 1. dei calcolatori 57

Indice generale. 1 Il calcolatore: astrazioni. 2 Le istruzioni: il linguaggio. e tecnologia 1. dei calcolatori 57 I Indice generale Prefazione viii 1 Il calcolatore: astrazioni e tecnologia 1 1.1 Introduzione 1 Tipi di calcolatore e loro caratteristiche 2 Cosa si può imparare da questo libro 5 1.2 Cosa c è dietro

Dettagli

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all

Dettagli

Strutture dei sistemi operativi

Strutture dei sistemi operativi Contenuti della lezione di oggi Strutture dei sistemi operativi Descrizione dei servizi messi a disposizione dell utente dal SO Utente generico Programmatore Esame delle possibili strutture di un SO Monolitica

Dettagli

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

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi Lezione 10 Cenni ai sistemi operativi distribuiti 2. Gestione della CPU e della memoria nei multiprocessori Gestione dei processi Scheduling Bilanciamento del carico Migrazione dei processi Gestione della

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

Lezione 3: Architettura del calcolatore

Lezione 3: Architettura del calcolatore Lezione 3: Architettura del calcolatore Architettura di Von Neumann BUS, CPU e Memoria centrale Ciclo di esecuzione delle istruzioni Architettura del calcolatore Il calcolatore è: uno strumento programmabile

Dettagli

L Architettura di un Calcolatore

L Architettura di un Calcolatore ASTE Information Technology Excellence oad (I.T.E..) L Architettura di un Calcolatore aurizio Palesi Salvatore Serrano aster ITE Informatica di Base aurizio Palesi, Salvatore Serrano 1 Sommario Architettura

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Concetto di processo

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 11 system Sistemi operativi 12 maggio 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 11.1 Di cosa parliamo in questa lezione? L interfaccia : system 1 Il

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Sistemi Distribuiti. Informatica B. Informatica B

Sistemi Distribuiti. Informatica B. Informatica B Sistemi Distribuiti Introduzione Che cos è un sistema distribuito? Un sistema distribuito è una collezione di computer indipendenti che appare all utente come un solo sistema coerente Da notare: le macchine

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Architettura dei calcolatori Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

I THREAD O PROCESSI LEGGERI Generalità

I THREAD O PROCESSI LEGGERI Generalità I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono

Dettagli

Il sistema di elaborazione

Il sistema di elaborazione Il sistema di elaborazione Stefano Brocchi stefano.brocchi@unifi.it Stefano Brocchi Il sistema di elaborazione 1 / 37 Informatica Il termine informatica deriva dalle parole informazione e automatica Stefano

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

Reti di calcolatori. Condivisione di risorse e comunicazione con gli altri utenti

Reti di calcolatori. Condivisione di risorse e comunicazione con gli altri utenti Reti di calcolatori Condivisione di risorse e comunicazione con gli altri utenti Reti di calcolatori Anni 70: calcolatori di grandi dimensioni, modello time-sharing, centri di calcolo Anni 80: reti di

Dettagli

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: 1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: compile time, load time, execution time. Quale delle modalità precedenti necessita di un supporto hardware per poter essere

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo Il Sistema Operativo (SO) è una parte essenziale di un sistema di calcolo In generale un SO è un insieme di programmi che agisce come intermediario tra utenti e hardware di un computer. Esiste un insieme

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Il software di base Software

Dettagli

ARCHITETTURA DI UN PERSONAL COMPUTER

ARCHITETTURA DI UN PERSONAL COMPUTER ARCHITETTURA DI UN PERSONAL COMPUTER Processore Tastiera Mouse CD-ROM Bus Memoria FD HD Stampante La struttura logica Fisicamente l unità centrale è costituita da:... la gabbia per le schede (rack)...

Dettagli

BEOWULF Cluester Linux/BSD

BEOWULF Cluester Linux/BSD BEOWULF Cluester Linux/BSD Nardo Guido 784169 Introduzione Negli anni passati, il mondo del Supercomputer inteso come clusters, è sempre stato dominato da architetture e software proprietario delle maggiori

Dettagli

Sistemi operativi e reti A.A. 2015-16. Lezione 2

Sistemi operativi e reti A.A. 2015-16. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 2 Giovedì 8-10-2015 Sistemi batch multiprogrammati La causa principale

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Complementi: Buffer I/O Gestione dei buffer e I/O scheduling: 1. Richiami sulle tecniche

Dettagli

Come funziona un sistema di elaborazione

Come funziona un sistema di elaborazione Introduzione Cosa è un Sistema Sste aoperativo? Come funziona un sistema di elaborazione Proprietà dei Sistemi Operativi Storia dei Sistemi di Elaborazione Sistemi Mainframe Sistemi Desktop Sistemi i Multiprocessori

Dettagli

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 11/01/08 Nota Questi lucidi sono

Dettagli

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da

Dettagli

Obiettivi del corso: Fornire le nozioni di base sull architettura dei sistemi di calcolo Fornire i primi strumenti di descrizione e di analisi dei sistemi digitali Descrivere in modo verticale il funzionamento

Dettagli

IL MULTIPROCESSING. Tendenza attuale: distribuire il calcolo tra più processori.

IL MULTIPROCESSING. Tendenza attuale: distribuire il calcolo tra più processori. IL MULTIPROCESSING Il problema: necessità di aumento della potenza di calcolo. La velocità di propagazione del segnale (20 cm/ns) impone limiti strutturali all incremento della velocità dei processori

Dettagli

Parte 2: Gestione dei Processi. 4.1 Concetto di Processo. 4.1.2 Stato del processo

Parte 2: Gestione dei Processi. 4.1 Concetto di Processo. 4.1.2 Stato del processo Parte 2: Gestione dei Processi 1 Il processo è l unità di lavoro nella maggior parte dei sistemi operativi. È quindi il centro di tutta la teoria dei Sistemi Operativi Il sistema operativo è responsabile

Dettagli

Il Sistema Operativo Introduzione Gestione dei processi Gestione della memoria Memoria cache (cenni) Informatica B Prof. A.

Il Sistema Operativo Introduzione Gestione dei processi Gestione della memoria Memoria cache (cenni) Informatica B Prof. A. Il Sistema Operativo Introduzione Gestione dei processi Gestione della memoria Memoria cache (cenni) Informatica B Prof. A. Morzenti Il sistema Operativo Il sistema operativo (SO) è uno strato software

Dettagli

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni LEZIONE 2 (HARDWARE) a.a. 2011/2012 Francesco Fontanella Tre concetti Fondamentali Algoritmo; Automa (o anche macchina); Calcolo; 2 Calcolatore MACCHINA

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Architetture. Paride Dagna. SuperComputing Applications and Innovation Department 18/02/2013

Architetture. Paride Dagna. SuperComputing Applications and Innovation Department 18/02/2013 Architetture Paride Dagna SuperComputing Applications and Innovation Department 18/02/2013 Introduzione Grazie alle moderne tecniche di programmazione e agli strumenti di sviluppo attualmente disponibili,

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

Comunicazione tra Processi

Comunicazione tra Processi Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo

Dettagli

Comunicazione tra Processi

Comunicazione tra Processi Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo

Dettagli

Antonio Cianfrani. Fondamenti di Reti - Prof. Marco Listanti - A.A. 2010/2011. INFOCOM Dept

Antonio Cianfrani. Fondamenti di Reti - Prof. Marco Listanti - A.A. 2010/2011. INFOCOM Dept Antonio Cianfrani Laboratorio Fondamenti di Reti 1. Introduzione ai Router IP Funzioni svolte dai Router I router operano allo strato 3 della pila protocollare OSI Individuano il cammino dei pacchetti

Dettagli