Multicomputers a scambio di messaggi. Multicomputers. Multicomputers. Massively Parallel Processors (MPP) Clusters of Workstations (COW)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Multicomputers a scambio di messaggi. Multicomputers. Multicomputers. Massively Parallel Processors (MPP) Clusters of Workstations (COW)"

Transcript

1 Multicomputers a scambio di messaggi Massively Parallel Processors (MPP) Clusters of Workstations (COW) 1 Multicomputers I sistemi multiprocessore hanno una scalabilità limitata dalla difficoltà di connettere fra loro molti core (o molte CPU multi-core) fornendo loro la visibilità dell intero spazio di memoria. Inoltre, nei sistemi multiprocessore la presenza di memoria condivisa in cui centinaia di CPU stanno cercando di accedere alle stesse variabili crea un collo di bottiglia che limita fortemente la scalabilità di questo tipo di architetture. Quando c è bisogno di una potenza computazionale maggiore di quella che possono fornire i sistemi a memoria condivisa, è necessario ricorrere ad architetture in cui i vari nodi comunicano solo attraverso lo scambio di messaggi, e non esiste uno spazio di indirizzamento comune. A causa di questa caratteristica, queste architetture sono a volte chiamate NO Remote Memory Access (NORMA) 2 Multicomputers Nei sistemi multicomputer i programmi che girano su CPU diverse interagiscono scambiandosi informazioni attraverso primitive come SEND e RECEIVE anziché con istruzioni come LOAD e STORE. Ogni nodo del sistema è composto di una o poche CPU (eventualmente multi-core), della RAM condivisa solo dai core locali, eventualmente un disco (e/o altri dispositivi di I/O), e un processore per la comunicazione attraverso una rete di interconnessione (Tanenbaum, Fig. 8.34). 3 1

2 Massively Parallel Processors (MPP) Le architetture MPP sono sistemi con un costo dell ordine dei milioni o decine di milioni di dollari, usati per applicazioni scientifiche, finanziarie e militari. Gli MPP sono tipicamente costituiti da centinaia o migliaia di CPU standard o prodotte appositamente, connesse da una rete privata ad alte prestazioni. Gli MPP hanno di solito anche una alta capacità di I/O, dovuta al tipo di problemi trattati che richiedono la capacità di processare grosse quantità di dati (dell ordine dei terabytes) e di spostarli velocemente da una macchina all altra. 4 Massively Parallel Processors Spesso usano software di gestione del sistema appositamente sviluppato per la sincronizzazione e la comunicazione fra i processi: librerie dedicate e/o sistema operativo. Infine, gli MPP devono avere una alta tolleranza ai guasti, che non possono che essere frequenti, dato l elevatissimo numero di CPU, banchi di memoria, e dischi coinvolti. Devono così essere previsti specifici meccanismi hardware e software per monitorare il sistema, gestire i guasti, ed evitare che il lavoro fatto fino a quel punto vada perso. Questi sistemi sono prodotti in quantità ovviamente limitate, così che non esistono dei principi generali di progettazione: ogni sistema ha le sue proprie peculiarità. 5 BlueGene Il progetto BlueGene dell IBM nasce nel 1999 con l obiettivo di produrre un supercomputer adatto a risolvere problemi che richiedono un elevato sforzo computazionale: nell analisi della struttura delle proteine umane, nei modelli climatici, in campo astronomico, finanziario e militare. L idea era quella di costruire non solo il sistema più veloce in termini di potenza di calcolo (teraflops), ma anche il più efficiente in termini di teraflops/$, teraflops/watt, teraflops/m 3. Da qui l idea di non usare i processori più veloci (e costosi) disponibili, ma di produrre un chip custom che occupasse poco spazio, girasse a velocità relativamente bassa e consumasse molto poco. 6 2

3 BlueGene Il cuore di BlueGene e un chip (prodotto a partire dalla metà del 2003) formato da due PowerPC 440 con un clock a soli 700 MHz (Tanenbaum, Fig. 8.36) 7 BlueGene Il PowerPC 440 è un processore superscalare, usato principalmente in sistemi embedded, in grado di avviare fino a 4 istruzioni anche floating point) per ciclo di clock. La versione usata in BlueGene è stata arricchita con istruzioni FP di tipo vettoriale. I due core su ogni chip sono identici, ma uno è usato per le computazioni vere e proprie, e l altro per le comunicazioni tra i vari nodi del sistema. Ogni coppia di core ha a disposizione 512MB di RAM privata (condivisa dai due core), estendibili fino a 2 GB. Per mantenere la coerenza delle cache tra i due core, viene usata una logica di snooping. 8 BlueGene Una scheda custom ospita due chip e la RAM per ciascun chip. 16 schede custom sono montate su una motherboard, per un totale di 32 chip (ossia 32 core per la computazione) e almeno 16GB. 32 motherboard sono ospitate in un cabinet, per un totale di 1024 core per la computazione Infine, un sistema completo è formato da 64 cabinet, per un totale di 65,536 core per la computazione e almeno 32TB di RAM (Tanenbaum, Fig. 8.37) 9 3

4 BlueGene Notate che ogni core ha accesso diretto solo alla propria RAM, e che non esistono dischi locali : Il sistema ha invece 1024 nodi di I/O, connessi ai dischi e ad altre periferiche. La rete di interconnessione tra i nodi è un toroide a tre dimensioni: Un toroide a due dimensioni è una griglia con i nodi ai lati connessi fra loro. In un toroide 3D, ogni nodo è all intersezione di 3 assi anziché 2, ed ha due vicini ai due lati di ogni asse. Ogni chip comunica quindi con sei vicini, con una connessione punto a punto ad una velocità di 1,4 Gbit/sec, con una ampiezza di banda totale (la quantità di informazione che può essere spostata nell intero sistema nell unità di tempo) di 275 terabit/sec. 10 BlueGene La comunicazione tra i nodi è sostanzialmente a commutazione di pacchetto, con la differenza che i pacchetti vengono forwardati dai nodi intermedi senza attendere di aver ricevuto l intero pacchetto. In più, il sistema è connesso anche attraverso altre reti (tra cui una Gigabit Ethernet), per gestire la manutenzione e la comunicazione con i dispositivi di memorizzazione di massa (dischi e sistemi a nastro magnetico) Su ogni chip gira un SO molto semplice, appositamente sviluppato, che supporta un solo utente ed un solo processo suddiviso in due thread: uno per ciascun core del chip. Questa semplice soluzione garantisce alte prestazioni e bassi errori software. Attraverso software opportuno, il sistema è in grado di eseguire dei checkpoint, ai quali l intero stato della computazione viene salvato su disco. In caso di crash del sistema, la computazione può 11 riprendere dall ultimo check point BlueGene La descrizione dei lucidi precedenti si riferisce al progetto BlueGene iniziale, noto come BlueGene/L. Più di recente sono stati sviluppati sistemi BleGene con prestazioni ancora più elevate. La serie dei BlueGene/P, progettati per raggiungere un potere computazionale di un PetaFLOPS (10 15 operazioni floating point al secondo). Formati da chip contenenti ciascuno 4 PowerPC 450, per un totale di core (scalabili fino a core) La serie dei BlueGene/Q, progettata per raggiungere i 20 PetaFLOPS, userà chip a 18 core PowerPC A2. Il BlueGene/Q noto come Sequoia installato al Lawrence Livermore National Laboratory nel 2012 ha circa 1,6 milioni di core, e 1,6 PetaByte di RAM 12 4

5 Red Storm Red Storm è un altro sistema MPP molto noto, sviluppato dalla Cray per una impresa privata che lavora per il governo USA. I processori usati in Red Storm sono degli Opteron (inizialmente single core, e più di recente dual e quad core) Gli Opteron sono assemblati a gruppi di 4 su una scheda, insieme ad un processore dedicato per la rete (un router prodotto dalla IBM chimato Seastar). Ogni core ha a disposizione almeno 1 GB di RAM privata. Sulla scheda sono presenti anche un chip Ethernet da 100Mb/sec e un processore su cui gira Linux per la manutezione software degli altri componenti della scheda. Le schede sono impaccate a gruppi di 8 in una card cage, e 3 card cage sono inserite in un cabinet, per un totale di 96 Opteron. 13 Red Storm L intero sistema è composto di 108 cabinets: processori (a uno o più core) con 10TB di RAM (Tanenbaum, Fig. 8.38). 14 Red Storm Le CPU sono interconnesse fra loro da una rete toroidale 3D mediante i Seastar. Ogni Seastar ha 7 canali bidirezionali a 24 Gbit/ sec di comunicazione con gli altri 6 nodi adiacenti e con l Opteron: il tempo di transito di una comunicazione tra 2 nodi adiacenti è di 2 microsecondi, e sale a 5 microsecondi tra due nodi qualsiasi. Una rete Ethernet a 100 Mbit/sec che collega le varie schede viene usata come rete di backup e per la manutenzione. Il sistema usa Opteron di servizio per l amministrazione e l I/O, in particolare verso i dischi, organizzati come sistemi RAID in grado di memorizzare fino a 240 TB con una ampiezza di banda aggregata di 50 MB/sec Su Ogni CPU per la computazione gira un semplice SO custom, il catamount, mentre Linux è usato per le 512 CPU di servizio. 15 5

6 BlueGene e Red Storm Le configurazioni di base BlueGene (2004) e Red Storm (2005) a confronto (Tanenbaum, Fig. 8.40) 16 Massively Parallel Processors Trovate informazioni dettagliate sui supercomputer più potenti del mondo su ( list) A giugno 2011 il Blue Gene più potente installato era solo al dodicesimo posto della classifica (con circa un PetaFLOPS di potere computazionale e core). I primi due MPP della classifica erano rispettivamente in Giappone e in Cina, e il campione del mondo era formato da circa core e ha una potenza computazionale di circa 8 PetaFLOPS. A giugno 2012, il super computer più potente è di nuovo un Blue Gene/Q, il Sequoia, con circa 1,6 milioni di core, e una potenza computazionale di picco di circa 20 PetaFLOPS. 17 Massively Parallel Processors A giugno 2014 il computer più potente è il cinese Tianhe-2 Milky way-2, con 33 PetaFLOPS e più di tre milioni di core Xeon. In tre anni (dal 2011 al 2014) si è quindi più che quadruplicata la potenza di calcolo massima raggiunta da un supercomputer. Il Sequoia è retrocesso al terzo posto, mentre interessante è il secondo posto, detenuto dal Titan, un supercomputer CRAY che combina processori Opteron e processori grafici NVIDIA. Un anno, dopo, nel giugno 2015, le prime posizioni sono rimaste invariate. Notevole il 17-esimo posto del supercomputer italiano HPC2, installato dall ENI e capace di una potenza computazionale di 3 PetaFLOPS. È formato da processori Xeon e NVIDIA (ma un 18 anno prima, nel giugno 2014, era all 11-esimo posto). 6

7 COW: Clusters (Of Workstations) Un cluster è tipicamente formato da un insieme di macchine connesse in rete. Ma allora cosa li distingue dalle architetture MPP? In realtà la distinzione non è netta. In genere, le unità computazionali di un MPP sono tutte uguali, e sono impacchettate in modo molto denso in una struttura progettata appositamente. I processori comunicano fra loro mediante una rete ad alte prestazioni, spesso progettata specificamente per quella architettura. La singola unità computazionale non potrebbe funzionare da sola 19 COW: Clusters (Of Workstations) Al contrario, un cluster è innanzi tutto costituito da macchine che possono essere anche molto diverse fra loro: PC e workstations con processori diversi In alcuni casi, ciascuna unità computazionale costituisce un sistema che potrebbe anche funzionare da solo (al massimo mancano il video e la tastiera/mouse) I vari nodi sono connessi da una rete non progettata esplicitamente per quell applicazione: una rete Ethernet o anche Internet. Il numero di nodi connessi è estremamente variabile: si va da qualche PC a qualche decina di migliaia. Ancor meno che con i MPP, non esiste un criterio di progettazione specifico per i cluster. 20 Google Il motore di ricerca di Google deve in qualche modo di memorizzare ed indicizzare l intero WEB, e compiere una ricerca in meno di un secondo, gestendo migliaia di richieste al secondo provenienti da tutto il modo 24 ore su 24. Il servizio di Google deve sempre essere disponibile, indipendentemente da errori nel software, guasti hardware, e mancanze di energia. Tutto ciò deve essere ottenuto al minor costo possibile. Come fa Google? 21 7

8 Google Innanzi tutto, Google gestisce più centri di elaborazione (data centers) sparsi un pò in tutto il mondo. In questo modo, un centro può fornire il servizio al posto di un altro che sia inutilizzabile per una qualsiasi ragione. Inoltre, quando ci si collega a l IP del client viene ispezionato, e la richiesta viene rediretta al data center più vicino al client Ogni centro ha almeno una connessione a fibra ottica a 2,488 Gbit (OC 48) con Internet, su cui vengono ricevute le query e inviate le risposte. E presente anche una connessione di backup a 622 Mbit (OC 12) verso un provider alternativo, nel caso quello principale sia inaccessibile. 22 Google La filosofia di Google è di utilizzare processori di basso costo (e quindi basse prestazioni), e di aggiornarli con processori più moderni solo quando questi diventano economicamente convenienti. Ad esempio, nel marzo 2000 le CPU usate erano principalmente Celeron a 533 MHz, che costavano meno di 200$ l uno, mentre il prezzo dei Pentium III a 800 MHZ era di circa 800$. Nel novembre 2000 il prezzo dei Pentium III scese a 200$, e i Celeron vennero sostituiti. Di fatto, un tipico PC Google è composto da una scheda madre con un processore di fascia bassa, qualche centinaio di mega di RAM e qualche giga di hard disk (Come dice Tanenbaum, the kind of thing a grandmother might buy for checking her occasionally ). 23 Google In accordo con uno dei report più recenti (e comunque vecchio di qualche anno), un PC Google è formato da un AMD Opteron dual core a 2,2 GHz, con 8GB di RAM DDR2 a 533 MHz (anziché a 666 MHz, che sarebbe lo standard, per diminuire i consumi). Su ogni PC gira Linux Red Hat. 24 8

9 Google 80 PC sono montati all interno di un unico rack e connessi fra loro da una rete Ethernet. Ciascuna connessione a fibra ottica è instradata a due switch Ethernet a 128 porte: due porte per ciascun rack. Ogni rack ha quindi 4 connessioni verso l esterno: devono guastarsi tutte e quattro perché il rack sia sconnesso dalla rete. In tutto, 64 rack possono essere connessi alla rete in questo modo, per un totale di al massimo 5120 PC per centro di elaborazione. 25 Google Un tipico cluster Google (Tanenbaum, Fig. 8.42) 26 Google Sono tre i punti fondamentali su cui si basa la gestione di un sistema complesso ed esteso come Google: 1. I componenti si guastano, con frequenza tanto maggiore quanti più numerosi sono i componenti. C è quindi bisogno di software tollerante ai guasti. 2. Replicare ogni componente, sia hardware che software. Questo migliora non solo la tolleranza ai guasti, ma anche le prestazioni del sistema. In Google, i PC, i dischi, i cavi, gli switch Ethernet e le connessioni ad Internet sono replicati più volte. Analogamente, come vedremo più avanti, le informazioni usate da Google per le ricerche sono replicate pesantemente sia all interno di un centro che nei vari centri. 27 9

10 Google 3. Ottimizzare il rapporto costo/prestazioni. Questo punto è di fatto una conseguenza dei precedenti due. Se il sistema è stato correttamente congegnato per gestire i guasti, l uso di componenti costosi, ad esempio RAID con dischi SCSI è inutile. Anche il sistema più costoso si guasta, e spendere 10 volte di più per dimezzare il numero di guasti non sembra una buona idea. Meglio comprare 10 volte più hardware e gestire i guasti quando si presentano: quando tutto funziona correttamente, più hardware significa prestazioni migliori. 28 Google Proprio basandosi su un principio di ridondanza, Google si affida a più siti in cui le informazioni sono replicate: nel gennaio 2005 erano circa 60 i data centers google sparsi per il mondo, per un totale di circa PC (ma questi numeri crescono continuamente, e Google fornisce le informazioni con un ritardo di alcuni anni) Google, mantiene una copia di ogni pagina Web e periodicamente esplora l intera rete per mantenere aggiornato il proprio database. (Il refresh rate va da uno a sette giorni, con una media di due) Le copie delle pagine Web vengono suddivise in pezzi detti shards, replicati più volte e distribuiti sui vari cluster di document server. I cluster di document server vengono tra l altro usati per restituire i pezzettini di testo rilevante che formano il risultato di una query. 29 Google Inoltre, le copie delle pagine vengono usate anche per fornire un rapido accesso alle pagine stesse quando Google fornisce il risultato di una interrogazione (ad esempio nel caso in cui le versioni originali non siano velocemente disponibili). Analogamente, mentre aggiorna il suo database di pagine, Google aggiorna il suo search index, in cui ogni parola indicizzata è associata alla lista di documenti (pagine Web, file PDF, PPT, ecc.) presenti in rete che contengono quella parola, ordinati secondo una classifica di rilevanza L algoritmo usato per stabilire la rilevanza di una pagina rispetto ad una parola dell indice è segreto. Il search index è a sua volta grande alcuni terabyte, ed è suddiviso in shards replicati e distribuiti su più cluster di index servers

11 Google Per mantenere Google attivo usando macchine che si possono guastare, un punto cruciale è la replicazione e la distribuzione delle informazioni. Ogni shard è grande 64 megabyte, ed è replicato mediamente tre volte su macchine non adiacenti: non devono essere sulla stessa linea di alimentazione né sullo stesso switch verso la rete. Alcuni master server vengono usati per sapere dove si trovano i vari shard, così da poter instradare le richieste ai relativi server. 31 Processamento delle query Processamento di una query in Google (Tanenbaum, Fig. 8.41) 32 Processamento delle query Una richiesta viene inizialmente inviata ad un data center (1) Un load balancer instrada la richiesta ad uno dei vari gestori di query (2) e, in parallelo, ad un analizzatore sintattico (3) e ad un server che gestisce la pubblicità con cui Google si finanzia (4). Il gestore della query interroga uno o più index server in parallelo per sapere in quali pagine si trovano le parole oggetto della ricerca (5, 6). Con i risultati, consulta i document server per estrarre i pezzettini di testo più significativi che contengono le parole cercate (7, 8). A questo punto, la risposta viene inviata al client, insieme con la pubblicità ed eventuali segnalazioni di errore (9, 10, 11)

12 PROCESSORI VETTORIALI 34 Processori Vettoriali Nella prima parte del corso abbiamo visto come le prestazioni di un processore (single core) possano essere migliorate: 1. Lanciando più istruzioni per ciclo di clock 2. Usando pipeline con molti stadi In questo modo, è possibile sfruttare più a fondo il parallelismo presente fra le istruzioni Ma quanto maggiore è la quantità di ILP che vogliamo sfruttare, tanto maggiore è la quantità di hardware di cui abbiamo bisogno: 1. per analizzare le istruzioni da avviare e capire quali sono indipendenti fra loro 2. per supportare l esecuzione parallela (più stazioni di prenotazione, ROB più grandi, branch prediction più sofisticati...) 35 Processori Vettoriali La quantità di hardware necessaria per eseguire in parallelo più istruzioni cresce più che linearmente (più o meno quadraticamente) con il numero di istruzioni eseguite in parallelo. Questo limita praticamente il numero di istruzioni avviabili per ciclo di clock e il numero di stadi di una pipeline. I processori vettoriali, commercializzati a partire da metà anni 70 (i più famosi sono certamente i vari modelli prodotti dalla Cray), rappresentano una alternativa allo sfruttamento dell ILP tipico dei classici processori superscalari multiple issue moderni. Queste architetture mettono a disposizione istruzioni che lavorano su vettori di dati, ossia, in sostanza, su array di numeri. Una tipica operazione vettoriale può ad esempio sommare due vettori da 64 elementi e produrre un vettore risultato di 64 elementi 36 12

13 Processori Vettoriali L istruzione vettoriale è quindi equivalente ad un intero loop in cui ad ogni iterazione verrebbe calcolato uno dei 64 elementi di output, verrebbero aggiornati gli indici e si salterebbe indietro all inizio del ciclo per operare sull elemento successivo. Le istruzioni vettoriali hanno quindi delle importanti caratteristiche: 1. Una singola istruzione vettoriale specifica una gran quantità di lavoro, equivalente ad eseguire un intero loop. In particolare, una istruzione può rappresentare decine di operazioni più semplici, e intere unità funzionali posso essere tenute completamente occupate prelevando ed eseguendo una sola di tali istruzioni (invece che preoccuparsi di prelevare e lanciare molte istruzioni potenzialmente dipendenti tra loro ad ogni ciclo di clock). 37 Processori Vettoriali 2. L uso di una istruzione vettoriale indica che la computazione di ogni elemento del vettore risultato è indipendente dalla computazione di altri risultati nel vettore. Come conseguenza, l hardware della CPU non deve controllare nessun data hazard all interno di una istruzione vettoriale, e gli elementi del vettore possono essere elaborati usando un array di U.F. in parallelo, o un unica U.F. pipelined o una configurazione mista. 3. E necessario controllare le alee tra due istruzioni vettoriali solo una volta per ogni vettore operando, e non per ogni elemento dei due vettori. La logica di controllo è quindi molto più semplice, a parità di potere espressivo delle istruzioni. 38 Processori Vettoriali 4. Le istruzioni vettoriali accedono di solito a locazioni adiacenti di memoria, quelle che ospitano i vari elementi del vettore. Gli accessi alla memoria (sia questa la RAM o la cache) sono in generale più efficienti, perché è più probabile che valga il principio di località. 5. Un intero loop viene sostituito da un unica istruzione vettoriale Come conseguenza, scompaiono tutti gli hazard sul controllo, e la necessità di gestire il branch prediction 39 13

14 Processori Vettoriali Per tutte le ragioni viste, le operazioni vettoriali possono essere rese più veloci di una sequenza di operazioni scalari sullo stesso numero di dati, ed ha senso considerare l uso di unità funzionali vettoriali per quelle applicazioni che ne possano fare un uso vantaggioso. I processori vettoriali trovano un naturale impiego in vari campi scientifici e industriali in cui sia necessario manipolare grandi quantità di dati che hanno una naturale forma vettoriale: ad esempio, le previsioni metereologiche, simulazioni di crash test, applicazioni multimediali. 40 Architettura di base L architettura di base di un processore vettoriale, simile a quella del Cray-1 (H-P3, Fig. G.1) 41 Architettura di base Un processore vettoriale è formato da una parte scalare classica e da una parte vettoriale. le unità vettoriali sono di solito in grado di operare sia su numeri floating point che interi, e su valori binari. Come per le architetture RISC, tutte le operazioni vettoriali lavorano sui registri (vettoriali) della macchina, e solo le operazioni vettoriali di load e store interagiscono con la memoria. I componenti principali di un classico processore vettoriale sono i seguenti (facciamo anche alcune assunzioni numeriche, abbastanza standard): 42 14

15 Architettura di base Registri vettoriali. 8 registri vettoriali, ciascuno dei quali contiene 64 elementi da 32 o 64 bit ciascuno Unità Funzionali vettoriali. Ogni unità è pipelined, è può far partire una nuova operazione ad ogni ciclo di clock. Una unità di controllo verifica gli eventuali conflitti nell uso delle unità funzionali (hazard strutturali) e nell accesso ai registri (Hazard sui dati) Unità vettoriali load-store. Possono operare in modo tale da spostare l intero contenuto di più celle adiacenti di RAM nei registri vettoriali, e viceversa. Registri scalari. Che possono essere usati per calcolare indirizzi di RAM o per eseguire operazioni tra vettori e scalari. 43 Alcune istruzioni vettoriali Ecco alcuni esempi di classiche istruzioni macchina vettoriali ADDV V1, V2, V3 somma gli elementi dei vettori V2 e V3, metti il risultato nel registro vettoriale V1 (ci saranno istruzioni analoghe per la moltiplicazione e la divisione) ADDVS V1, V2, F0 somma lo scalare F0 ad ogni elemento del registro vettoriale V2, metti il risultato in V1 LV V1, R1 Carica il contenuto della RAM a partire dall indirizzo in R1 dentro V1 EQ V1, V2 compara ogni elemento di V1 e V2 e metti il risultato in un vettore di bit. 44 Un semplice problema vettoriale Dobbiamo eseguire il seguente calcolo: Y = a X + Y dove a è uno scalare, ed X e Y sono due array (vettori) in RAM Questo problema è noto come AXPY loop, ed è uno dei test di base usati in alcuni benchmark. Per semplicità, assumiamo che il numero di elementi di X e Y sia identico al numero di elementi di un registro vettoriale su cui vogliamo operare

16 Un semplice problema vettoriale Ecco una possibile soluzione usando una macchina RISC. X e Y iniziano agli indirizzi scritti in Rx ed Ry: LD F0,a // load scalar a ADD R4, Rx, #512 // last address to load jmp: LD F2, 0 (Rx) // load X(i) MUL F2, F2, F0 // a X(i) LD F4, 0 (Ry) // load Y(i) ADD F4, F4, F2 // a X(i) + Y(i) SD 0 (Ry), F4 // store into Y(i) ADD Rx, Rx, #8 // increment index to X ADD Ry, Ry, #8 // increment index to Y SUB R20, R4, Rx // compute bound BNEZ R20, jmp // check if done 46 Un semplice problema vettoriale Ed ecco invece la soluzione usando una macchina vettoriale: LD F0,a // load scalar a LV V1, Rx // load vector X MULVS V2, V1, F0 // vector-scalar multiply LV V3, Ry // load vector Y ADDV V4, V2, V3 // add vectors SV Ry, V4 // store result Notate, se i vettori sono di 64 elementi, il programma precedente richiede l esecuzione di quasi 600 istruzioni, mentre quello vettoriale ne usa solo 6, sia perché lavora in un colpo solo su 64 elementi, e sia perché quasi la metà delle 600 istruzioni del programma precedente sono overhead del loop. 47 Un semplice problema vettoriale Non solo, nel programma scalare, la SD dipende dalla ADD che implementa a X(i) + Y(i) e questa ADD dipende dalla MUL precedente. Gli stall della pipeline possono essere limitati con le tecniche viste per l ILP dinamico e statico, ma il numero di istruzioni da eseguire rimane comunque alto

17 Processori vettoriali: osservazioni Perché i processori vettoriali non hanno preso il sopravvento sulle classiche architetture superscalari? Innanzi tutto, i processori vettoriali hanno una architettura inerentemente più complessa, che limita verso l alto la velocità del clock: nel 2001 la più veloce architettura vettoriale aveva un clock di 500 MHz. La complessità dell architettura è dovuta proprio al modo in cui operano i processori vettoriali. infatti: 1. sono necessari registri molto più grandi e connessi al datapath in maniera più complicata. 2. Ogni unità funzionale vettoriale è molto più sofisticata, se si vuole operare su più elementi contemporaneamente. 49 Processori vettoriali: osservazioni 3. L intero datapath di una CPU vettoriale deve essere più ampio, se si vogliono spostare più blocchi di operandi da un punto all altro contemporaneamente. 4. Anche la connessione con la memoria deve essere più sofisticata, per riuscire a sostenere la quantità di dati che la CPU richiede di elaborare con un unica istruzione vettoriale. Per tutte queste ragioni, i processori vettoriali hanno costi di produzione sensibilmente superiori ai processori tradizionali. Inoltre, il loro uso è effettivamente giustificato solo in quelle applicazioni che hanno una naturale formulazione vettoriale 50 Processori vettoriali: osservazioni Come conseguenza, la domanda del mercato è sempre rimasta limitata e non sono state possibili produzioni su larga scala che ne avrebbero abbattuto i prezzi. per contro, l aumento delle prestazioni delle classiche CPU superscalari degli anni 80 e 90 ha permesso ai processori tradizionali di diminuire le differenze rispetto alle prestazioni dei processori vettoriali anche su problemi tipicamente vettoriali per tutte queste ragioni, i processori vettoriali sono ormai diventati prodotti di nicchia. Tuttavia l esperienza progettuale dei processori vettoriali è stata almeno parzialmente trasferita nei processori superscalari moderni. Infatti, molte applicazioni multimediali contengono codice che può essere naturalmente vettorizzato, e molti processori moderni hanno arricchito il loro set di istruzioni macchina con estensioni 51 multimediali che ricalcano lo stile delle istruzioni vettoriali. 17

18 Processori vettoriali: osservazioni la tecnica più comune consiste nel permettere che uno specifico registro (o un set di registri) possa essere suddiviso in sottoparole più corte che sono processate in parallelo. Ad esempio, nel Pentium II MMX (1997) vennero aggiunte 57 istruzioni vettoriali che operavano sui registri floating poing a 64 bit permettendo di trattarli suddivisi in sottoparole di 16 o 32 bit. a tutte le sottoparole di un registro poteva essere applicata in parallelo una qualsiasi istruzione vettoriale. Alcune architetture (ad esempio le CPU Intel e il PowerPC) hanno col tempo aumentato la lunghezza dei registri vettoriali per permettere di elaborare più dati in parallelo. 52 Processori vettoriali: osservazioni Nel 1999 il Pentium III venne ulteriormente arricchito di 70 istruzioni multimediali chiamate Streaming SIMD Extension (SSE), e all architettura vennero aggiunti 8 registri vettoriali a 128 bit che potevano essere usati a blocchi di 32 bit per eseguire 4 operazioni floating point a singola precisione in parallelo. Nel 2001 sono state aggiunte altre 144 istruzioni SSE2 al Pentium 4, che permettono fra l altro di trattare i registri vettoriali a blocchi di 64 bit per eseguire 2 operazioni floating point in doppia precisione in parallelo. Nel 2004 Si è passati alla versione SSE3 introdotta nel Pentium 4 Prescott. Tra le altre cose, in questa versione sono disponibili istruzioni per eseguire operazioni diverse sui dati contenuti in due registri vettoriali. Ad esempio: ADDSUBPD input {A0, A1}, { B0, B1}, output: { A0 - B0, A1 + B1 } 53 Processori vettoriali: osservazioni Nel 2007 si passa alle SSE4, che introducono altre istruzioni multimediali ad hoc, progettate per accelerare l implementazione di specifiche funzioni multimediali considerate importanti. La Advanced Vector Extensions (AVX) del 2010 duplica l ampiezza dei registri a 256 bit, e offre istruzioni corrispondenti, che raddoppiano il numero di istruzioni eseguibili su dati di metà lunghezza (H-P5, Fig. 4.9): 54 18

19 Processori vettoriali: osservazioni Infine, osserviamo che le istruzioni vettoriali sono particolarmente adatte per i processori embedded, perché permettono di esprimere elevati livelli di parallelismo in maniera concisa, e sono pesantemente usate nei processori delle console per videogames. 55 Una tassonomia delle architetture dei computer 56 Tassonomia delle architetture Abbiamo visto diversi tipi di architetture, e ci si può chiedere se esse possano essere classificate in base a determinate caratteristiche. Effettivamente, esiste una classificazione dei diversi tipi di architetture piuttosto nota, ma anche piuttosto rozza e imprecisa (e anche datata, visto che risale addirittura al 1966): la tassonomia di Flynn (Tanenbaum, Fig. 8.20): 57 19

20 Tassonomia delle architetture La classificazione di Flynn è basata su due concetti: il livello di parallelismo nel flusso (stream) di istruzioni in esecuzione e nel flusso di dati processati dalle istruzioni. Un sistema con n core ha n program counter, e quindi n flussi di istruzioni che possono procedere in parallelo. Analogamente possiamo considerare un flusso di dati come costituito da una sequenza di dati. In un flusso, ogni dato è computato a partire dal dato precedente. Ma possiamo avere più flussi di dati fra loro indipendenti, nel senso che la computazione dei dati di un flusso è indipendente dalla computazione dei dati di un altro flusso. I flussi di istruzioni e di dati sono (almeno entro certi limiti) ortogonali, e sono possibili 4 combinazioni diverse: 58 Tassonomia delle architetture SISD: Single Instruction (stream) Single Data (stream) è la classica architettura monoprocessore, in cui le istruzioni vengono eseguite una alla volta su un unico flusso di dati: le variabili del programma in esecuzione. Da quello che abbiamo visto nella parte sull ILP, questa visione è per lo meno molto superficiale (pensate solo alla presenza della pipeline), e ad oggi vale solo per i più semplici processori usati per applicazioni embedded, come ad esempio l I processori della famiglia dell 8051 non sono pipelined, (molte istruzioni si eseguono in un ciclo di clock), lanciano ed eseguono le istruzioni in-order, e non hanno cache. Sono macchine a 8 bit, un clock di qualche decina di MHz, costano 10, 20 centesimi di euro, e sono di gran lunga i processori più venduti: attualmente circa 8 miliardi di pezzi l anno. 59 Tassonomia delle architetture Sono usati nelle radio sveglie, nelle lavatrici, nei forni a microonde, nei telefoni cordless, in alcuni giochi elettronici, in alcuni dispositivi medici, e così via. Al contrario, considerare appartenente alla categoria SISD un processore superscalare multiple-issue sembra un po una forzatura, che però di solito viene fatta: in fondo, i moderni processori sono comunque i naturali pronipoti della classica architettura Von Neumann MISD: Multiple Instruction (stream) Single Data (stream): ha senso una architettura di questo tipo? Molti autori pensano di no. Tuttavia, data l innaturale classificazione dei moderni processori pipelined nella categoria SISD, viene a volte osservato che questi processori sono più vicini ad una architettura MISD: il dato in elaborazione passa da un istruzione all altra man mano che queste fluiscono attraverso i vari stadi della pipeline

21 Tassonomia delle architetture SIMD: Single Instruction (stream) Multiple Data (stream): Piuttosto sorprendentemente, il modello SIMD fu uno dei primi modelli di architettura parallela proposti, il cui più famigerato rappresentante fu l Illiac IV. Il progetto dell Illiac IV fu avviato a metà degli anni 60, e l Illiac IV vide la luce nel 1972: costava 31 milioni di dollari (di allora) e aveva una capacità computazionale di circa 50 MFLOPS (ma l obiettivo iniziale era di 1 GFLOP: a quel tempo sarebbe stato equivalente all intera capacità computazionale disponibile). L Illiac IV è stato il più famoso rappresentante di un modello di architettura in buona parte abbandonato noto come array processor: un ampio numero di processori identici che eseguono la stessa sequenza di istruzioni su insiemi diversi di dati. 61 Tassonomia delle architetture Ma c è una seconda classe di architetture SIMD, concettualmente assai simili agli array processors: i processori vettoriali. Anche i processori vettoriali lavorano su un array di dati, ma un unico core è responsabile per l esecuzione dell operazione specificata su tutti gli elementi del vettore. Come abbiamo visto, anche questi processori non hanno avuto molto successo, sebbene alcune delle idee provenienti da questo tipo di architetture siano state poi trasferite nei moderni processori superscalari con le istruzioni di tipo SIMD. 62 Tassonomia delle architetture MIMD: Multiple Instruction (stream) Multiple Data (stream): Ossia tutte le architetture multicore, multiprocessore e multicomputer viste fino ad ora, dai piccoli sistemi UMA (o, addirittura, dai dual core), fino ai clusters come Google. Occorre ribadire che la tassonomia di Flynn è piuttosto rozza, e diversi tipi di architetture non sono di facile classificazione seguendo lo schema di Flynn: i processori multithreaded sono dei SISD o dei MIMD? i processori moderni con estensioni SIMD dove li mettiamo? 63 21

22 Tassonomia delle architetture La tassonomia di Flynn (Tanenbaum, Fig. 8.21). 64 Una nota storica Le problematiche delle architetture a parallelismo sia implicito che esplicito, sia a livello hardware che software, sono ovviamente un campo di studio aperto e in continua evoluzione e, addirittura: arguments for the advantages of parallel execution can be traced back to the 19 th century [Menabrea 1842]! (H-P3, p. 652) Hennessy e Patterson fanno riferimento ad un articolo scritto appunto nel 1842: 65 Una nota storica Sketch of The Analytical Engine Invented by Charles Babbage By Luigi Federico Menabrea of Turin, Officer of the Military Engineers from the Bibliothèque Universelle de Genève October, 1842, n. 82 With notes upon the Memoir by the Translator ADA AUGUSTA, COUNTESS OF LOVELACE 66 22

23 Una nota storica Charles Babbage ( ), inglese, fu una figura eminente del suo tempo. Gli fu assegnata la cattedra di Matematica a Cambridge nel 1828, La stessa che fu di Isaac Newton e, ai giorni nostri, di Stephen Hawking. Lasciò tuttavia la cattedra nel 1839 per dedicarsi a tempo pieno alle sue idee di inventore. Fu membro delle più importanti società scientifiche inglesi ed europee, e amico di Charles Darwin, Sir John Herschel (astronomo), e Pierre Simon de Laplace. 67 Una nota storica Tra gli anni 1820 e 1830 Babbage concepisce e in parte realizza un dispositivo noto come difference engine, sostanzialmente una calcolatrice (attenzione, non un calcolatore) elettronica in grado di eseguire alcuni tipi di operazioni aritmetiche, anche su numeri molto grandi. Babbage ottiene anche cospicui finanziamenti pubblici per la realizzazione della sua invenzione, che tuttavia non vede mai completamente la luce. A parte i problemi tecnici, la ragione è che, a partire dai primi anni 30, Babbage si dedica ad una nuova invenzione: una macchina in grado di calcolare funzioni arbitrariamente complesse su un numero arbitrario (ma comunque limitato) di variabili: l Analytical Engine 68 Una nota storica Da subito, Babbage concepisce l idea di controllare il funzionamento dell Analytical Engine attraverso schede perforate: l intuizione gli deriva da quelle usate nel telaio automatico inventato da Joseph-Marie Jacquard in Francia nel Babbage incomincia a chiedere finanziamenti per realizzare questa sua nuova invenzione, ma senza molto successo, visti i soldi già spesi e gli scarsi risultati ottenuti con il progetto precedente. Babbage incomincia allora a cercare fuori dall Inghilterra quell interesse per le sue idee che non era stato in grado di sollevare in patria, e nell agosto del 1840 viene invitato a Torino, a tenere una serie di conferenze al Secondo congresso degli Scienziati Italiani patrocinato da re Carlo Alberto di Savoia

24 Una nota storica Nel partecipare al congresso, l intenzione di Babbage è di sollevare l interesse di Giovanni Plana, astronomo torinese, professore dell Università di Torino, tra gli scienziati più noti e influenti a livello europeo in quel periodo (Plana fu tra l altro il fondatore dell Osservatorio Astronomico di Torino) Babbage spera che Plana voglia scrivere e pubblicare un resoconto delle sue conferenze, incarico che però Plana affida ad un suo allora sconosciuto allievo, Luigi Federico (conte di) Menabrea, ingegnere del genio militare. (Menabrea diverrà poi generale di Garibaldi, ministro del regno e primo ministro dal 1867 al Il suo interesse per la scienza rimase comunque sempre vivo, e fu tra l altro professore di Scienza delle Costruzioni all Università di Torino dal 1846 al 1860) 70 Una nota storica Menabrea scrive un articolo che riassume le idee dell Analytical Engine, e l articolo viene pubblicato, in francese, nell ottobre del 1842 sul n. 82 della rivista della Bibliothèque Universelle de Genève. All inizio del 1843, Ada Augusta Byron, contessa di Lovelace (e figlia del poeta George Byron) su consiglio di Charles Wheatstone (amico di famiglia e co-inventore del telegrafo) traduce il lavoro di Menabrea per il Taylor's Scientific Memoirs, una rivista inglese specializzata nella pubblicazione di articoli scientifici e resoconti di congressi esteri. Ada Lovelace invia la traduzione a Babbage, il quale la esorta (e con la quale collabora) ad aggiungere note di chiarimento al lavoro di Menabrea. 71 Una nota storica L articolo di Menabrea, tradotto e corredato delle ampie note di Ada Lovelace, viene pubblicato nel settembre del 1843, ed è considerato il primo articolo nella storia dell informatica. L articolo descrive molti aspetti dell architettura dei computer e della loro programmazione circa cento anni prima che queste idee fossero riscoperte, nel ventesimo secolo. Charles Babbage viene universalmente considerato l inventore del primo calcolatore elettronico digitale, e Ada Lovelace la prima programmatrice nella storia dell informatica. Sfortunatamente, le idee di Babbage e di Ada Lovelace furono prima ignorate, e poi dimenticate, per quasi un secolo

25 Una nota storica L Analytical Engine era sostanzialmente un computer a schede perforate: come abbiamo visto, l idea delle schede proveniva dal telaio per tessitura inventato da Jacquard: una scheda perforata permetteva di stabilire quale combinazione di fili di diverso colore dovessero essere usati in ogni riga di un tessuto Ma nel telaio di Jacquard era necessaria una scheda per ogni riga del tessuto che doveva essere prodotto (a quei tempi esisteva un ritratto di Jacquard fatto al telaio usando schede). Un intuizione fondamentale nell Analytical Engine fu l idea di usare cicli per i calcoli che dovevano essere ripetuti più volte, in questo modo usando un numero finito e limitato di schede per specificare calcoli che potevano essere ripetuti un numero indefinito di volte. 73 Una nota storica La macchina di Babbage era progettata per eseguire delle Operazioni su delle Variabili. Le operazioni venivano eseguite da un complesso dispositivo chiamato mill (mulino, macinino) guidato dalle schede perforate. Il mill operava sulle Variabili: cilindri di ottone su cui erano impilati più dischi numerati da 0 a 9, in grado così di rappresentare numeri positivi e negativi in notazione decimale. Le Variabili potevano memorizzare i valori di input di un calcolo da eseguire, il risultato di computazioni intermedie da usare poi in altre computazioni, e naturalmente il risultato finale delle computazioni: schede speciali permettevano di specificare quali Variabili dovevano memorizzare quali valori (iniziali, intermedi e finali) 74 Una nota storica Nell Analytical Engine emergono quindi già in modo chiaro alcuni concetti di base dei moderni processori: l unità di controllo, cositutita dal Mill, che opera sulle Variabili. Il programma che deve essere eseguito dal Mill, rappresentato da una serie di schede perforate. Il concetto di memoria, usata per contenere i dati iniziali, intermedi e finali del calcolo, rappresentato dalle Variabili della macchina (in sostanza, i registri di una moderna CPU). Il concetto di computazione parallela, poiché diverse operazioni intermedie potevano essere eseguite in parallelo su diverse Variabili. Il concetto di input e output, rappresentato da quelle Variabili che contenevano i valori di partenza di una computazione, e dalle Variabili designate per memorizzare i risultati finali

26 Una nota storica chi vuole approfondire questo argomento, può trovare in rete molte informazioni. Un buon punto di partenza è il seguente: Qui troverete tra l altro l articolo di Menabrea tradotto da Ada Lovelace, biografie dei protagonisti di questa storia, riproduzioni dei disegni dei progetti di Babbage, e alcuni programmi Java che permettono di emulare il funzionamento dell Analytical Engine

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

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore Contenuti Introduzione 1 Introduzione 2 3 4 5 71/104 Il Calcolatore Introduzione Un computer...... è una macchina in grado di 1 acquisire informazioni (input) dall esterno 2 manipolare tali informazioni

Dettagli

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

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Origini e caratteristiche dei calcolatori elettronici

Origini e caratteristiche dei calcolatori elettronici Origini e caratteristiche dei calcolatori elettronici Lunedì, 09 ottobre 2006 Supercomputer, mainframe 1 Server, workstation, desktop, notebook, palmare Un po di storia 1642 Biagio Pascal 1671 Leibniz

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Breve storia del calcolo automatico

Breve storia del calcolo automatico Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Approfondimenti 01 Breve storia del calcolo automatico Marzo 2010 L architettura del calcolatore 1 Approfondimenti: Storia del calcolo automatico

Dettagli

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema La macchina di Von Neumann rchite(ura di un calcolatore us di sistema Collegamento Unità di Elaborazione (CPU) Memoria Centrale (MM) Esecuzione istruzioni Memoria di lavoro Interfaccia Periferica P 1 Interfaccia

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

COME È FATTO IL COMPUTER

COME È FATTO IL COMPUTER 1 di 8 15/07/2013 17:07 COME È FATTO IL COMPUTER Le componenti fondamentali Un computer, o elaboratore di dati, è composto da una scheda madre alla quale sono collegate periferiche di input e output, RAM

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

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

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

L HARDWARE parte 1 ICTECFOP@GMAIL.COM

L HARDWARE parte 1 ICTECFOP@GMAIL.COM L HARDWARE parte 1 COMPUTER E CORPO UMANO INPUT E OUTPUT, PERIFERICHE UNITA DI SISTEMA: ELENCO COMPONENTI COMPONENTI NEL DETTAGLIO: SCHEDA MADRE (SOCKET, SLOT) CPU MEMORIA RAM MEMORIE DI MASSA USB E FIREWIRE

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

Vari tipi di computer

Vari tipi di computer Hardware Cos è un computer? Un computer è un elaboratore di informazione. Un computer: riceve informazione in ingresso (input) elabora questa informazione Può memorizzare (in modo temporaneo o permanente)

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

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

CALCOLATORI ELETTRONICI A cura di Luca Orrù

CALCOLATORI ELETTRONICI A cura di Luca Orrù Lezione 1 Obiettivi del corso Il corso si propone di descrivere i principi generali delle architetture di calcolo (collegamento tra l hardware e il software). Sommario 1. Tecniche di descrizione (necessarie

Dettagli

Architettura dei calcolatori I parte Introduzione, CPU

Architettura dei calcolatori I parte Introduzione, CPU Università degli Studi di Palermo Dipartimento di Ingegneria Informatica C.I. 1 Informatica ed Elementi di Statistica 2 c.f.u. Anno Accademico 2009/2010 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

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

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

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

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

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

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

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

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP Un indirizzo IP è composto da 32 bit. Generalmente, per convenienza, è presentato in decimale: 4 ottetti (bytes) separati da un punto. Ogni rete fisica

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

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

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

Lo scenario: la definizione di Internet

Lo scenario: la definizione di Internet 1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

INTRODUZIONE ALL' INFORMATICA

INTRODUZIONE ALL' INFORMATICA INTRODUZIONE ALL' INFORMATICA Gruppo MMP: Andrea Portugalli, Matteo montagna Luca Marazzina Anno2014 1 Informatica 1.1 informatica 1.2 sistema di elaborazione 1.3 componenti di un sistema 2 Hardware 2.1

Dettagli

Appunti di Sistemi Elettronici

Appunti di Sistemi Elettronici Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare

Dettagli

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

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

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

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

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

I componenti di un Sistema di elaborazione. CPU (central process unit)

I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) La C.P.U. è il dispositivo che esegue materialmente gli ALGORITMI.

Dettagli

Fondamenti di informatica: un po di storia

Fondamenti di informatica: un po di storia Fondamenti di informatica: un po di storia L idea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal, Leibniz) Nell ottocento vengono realizzati i primi

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi

Dettagli

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

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

Sommario. Analysis & design delle applicazioni parallele. Misura delle prestazioni parallele. Tecniche di partizionamento.

Sommario. Analysis & design delle applicazioni parallele. Misura delle prestazioni parallele. Tecniche di partizionamento. Sommario Analysis & design delle applicazioni parallele Misura delle prestazioni parallele Tecniche di partizionamento Comunicazioni Load balancing 2 Primi passi: analizzare il problema Prima di iniziare

Dettagli

Informatica. Teoria. L architettura dei PC Storia dell informatica Periferiche Reti - Software. Marco Brama 2010-2011

Informatica. Teoria. L architettura dei PC Storia dell informatica Periferiche Reti - Software. Marco Brama 2010-2011 \ 1 Informatica Teoria L architettura dei PC Storia dell informatica Periferiche Reti - Software Marco Brama 2010-2011 La presente dispensa è stata creata appositamente ad integrazione del programma didattico

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Progetto Vserver- HighAvailability

Progetto Vserver- HighAvailability Progetto Vserver- HighAvailability 16.12.2003 Alberto Cammozzo - Dipartimento di Scienze Statistiche - Università di Padova mmzz@stat.unipd.it Nell'ambito dell'aggiornamento dei servizi in corso si propone

Dettagli

Appunti di informatica. Lezione 6 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 6 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 6 anno accademico 2015-2016 Mario Verdicchio RAM disco La RAM è basata su dispositivi elettronici, che funzionano con tempi molto rapidi, ma che necessitano di alimentazione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

La Videosorveglianza Criteri per il dimensionamento dello storage

La Videosorveglianza Criteri per il dimensionamento dello storage La Videosorveglianza Criteri per il dimensionamento dello storage Serie vol 1005/2010 L importanza di registrare le immagini video Il valore di un sistema di videosorveglianza non dipende solo dall abilità

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 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Reti di calcolatori ed indirizzi IP

Reti di calcolatori ed indirizzi IP ITIS TASSINARI, 1D Reti di calcolatori ed indirizzi IP Prof. Pasquale De Michele 5 aprile 2014 1 INTRODUZIONE ALLE RETI DI CALCOLATORI Cosa è una rete di calcolatori? Il modo migliore per capire di cosa

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

Che cosa è un VIRUS?

Che cosa è un VIRUS? Virus & Antivirus Virus Nella sicurezza informatica un virus è un software, appartenente alla categoria dei malware, che è in grado, una volta eseguito, di infettare dei file in modo da riprodursi facendo

Dettagli

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata. Sommario A cosa serve InfoWEB?... 3 Quali informazioni posso comunicare o ricevere?... 3 Cosa significa visualizzare le informazioni in maniera differenziata in base al livello dell utente?... 4 Cosa significa

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Introduzione Che cos è un calcolatore? Come funziona un calcolatore? è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso

Dettagli

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 3 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Gerarchia delle memorie

Gerarchia delle memorie Memorie Gerarchia delle memorie Cache CPU Centrale Massa Distanza Capacità Tempi di accesso Costo 2 1 Le memorie centrali Nella macchina di Von Neumann, le istruzioni e i dati sono contenute in una memoria

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II Lezione 5 Giovedì 19-03-2015 1 Intensità del traffico e perdita dei pacchetti La componente

Dettagli

Una delle cose che si apprezza maggiormente del prodotto è proprio la facilità di gestione e la pulizia dell interfaccia.

Una delle cose che si apprezza maggiormente del prodotto è proprio la facilità di gestione e la pulizia dell interfaccia. Nella breve presentazione che segue vedremo le caratteristiche salienti del prodotto Quick- EDD/Open. Innanzi tutto vediamo di definire ciò che non è: non si tratta di un prodotto per il continuos backup

Dettagli

Centro Iniziative Sociali Municipio III

Centro Iniziative Sociali Municipio III Centro Iniziative Sociali Municipio III C.I.S Municipio III Corso di informatca Roberto Borgheresi C ORSO BASE DI I NFORMATICA Centro Iniziative Sociali Municipio III Coordinatore: Roberto Borgheresi Insegnanti:

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Fatti Raggiungere dal tuo Computer!!

Fatti Raggiungere dal tuo Computer!! Fatti Raggiungere dal tuo Computer!! Presentazione PcBridge è il modo rivoluzionario di accedere al proprio computer in qualsiasi momento e da qualsiasi luogo. Inserendo la penna usb OUT, Pcbridge permette

Dettagli

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale) Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

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

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

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

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi RAID. Corso di Calcolatori Elettronici. Feragotto Elena

Sistemi RAID. Corso di Calcolatori Elettronici. Feragotto Elena Sistemi RAID Corso di Calcolatori Elettronici Feragotto Elena Cos è RAID Nato all Università di Berkeley nel 1968, RAID significa: Redundant Array of Inexpensive Disk L idea era quella di sostituire un

Dettagli

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

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

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

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli