John Von Neumann: Padre del Calcolatore Moderno PDF

Summary

Il documento presenta una biografia di John Von Neumann, un matematico ungherese del XX secolo. Si analizza il suo modello per i calcolatori, ancora oggi utilizzato, e le sue componenti principali in modo approfondito. Il testo esplora anche le applicazioni ed il contesto storico della sua ricerca.

Full Transcript

**JOHN VON NEUMANN** John Von Neumann, nasce a Budapest il 28 dicembre del 1903 da una famiglia di banchieri ebrei. A sei anni intratteneva gli ospiti di famiglia con la sua prodigiosa memoria, ripetendo intere pagine di elenco telefonico che gli erano state mostrate solo per pochi istanti o esegue...

**JOHN VON NEUMANN** John Von Neumann, nasce a Budapest il 28 dicembre del 1903 da una famiglia di banchieri ebrei. A sei anni intratteneva gli ospiti di famiglia con la sua prodigiosa memoria, ripetendo intere pagine di elenco telefonico che gli erano state mostrate solo per pochi istanti o eseguendo rapidamente a mente divisioni con due numeri da otto cifre. Si divertiva conversando in greco antico, arrivando a padroneggiare, a dieci anni, sei lingue. Considerato come uno dei più grandi matematici della storia moderna, a lui si devono contributi fondamentali in numerosi campi come: teoria degli insiemi, analisi funzionale, topologia, fisica quantistica, economia, informatica, teoria dei giochi, fluidodinamica e in molti altri settori della matematica. Ideò modelli matematici per descrivere la meteorologia, che ancora oggi vengono utilizzati. Collaborò con il pentagono USA per la costruzione di bombe atomiche e partecipò al progetto Manhatthan per la costruzione delle bombe atomiche poi lanciate su Hiroshima e Nagasaki. Dagli inizi del 1944 von Neumann era anche responsabile di un contratto di ricerca dell'" Istituto di studi avanzati" (IAS) di Princeton. Il progetto principale aveva come obiettivo la soluzione di problemi matematici complessi di natura militare; allo IAS in particolare, fu affidato lo studio di metodi numerici per risolvere i problemi di onde d'urto. Negli ultimi mesi della guerra questo progetto si estese alla ricerca di metodi per i cosiddetti "calcolatori ad alta velocità". Sul "Memorandum sul programma del computer ad alta velocità" pubblicato l'8 novembre 1945, von Neumann evidenziò un progetto che andava oltre la costruzione del computer: "Dovranno essere fatte delle ulteriori ricerche in parallelo con lo sviluppo e la costruzione della macchina. Comunque, il lavoro principale dovrà essere fatto quando la macchina sarà completa e disponibile, usando la macchina stessa come strumento di sperimentazione". Viene considerato il **padre del calcolatore moderno**. Muore a Washington l'8 Febbraio 1957. Molti dei lavori di von Neumann non furono pubblicati perché coperti da segreto militare. Nel 1946 fu nominato presidente del "Comitato del calcolo ad alta velocità" e del "Comitato nazionale di ricerca". Parte dei suoi sforzi era volta all'organizzazione scientifica dell'informatica e delle tecnologie connesse, anche se, a suo parere, non erano ancora maturi i tempi per fondare una società scientifica che si dedicasse sullo sviluppo dei calcolatori veloci. Continuò comunque a sviluppare le sinergie tra le potenzialità dei computer e le necessità di soluzioni computazionali di problemi nucleari. **Ideò un modello dei moderni calcolatori**. **3. IL MODELLO DI VON NEMANN** Nel 1945 il matematico J. Von Neumann propose un modello di architettura per elaborare e gestire i dati, chiamato modello di Von Neumann. Von Neumann ideò quindi il primo modello di calcolatore elettronico, ancora oggi utilizzato. Come si vede dalla Figura 2, esso si basa su un insieme di semplici blocchi funzionali interconnessi. Secondo questo modello, il calcolatore è una macchina **programmabile** capace di eseguire sequenze di operazioni elementari, costituite da istruzioni elementari, dette istruzioni macchina, codificate come stringhe binarie. Questo modello viene tuttora utilizzato: l'evoluzione negli anni ha riguardato i singoli componenti e l'ottimizzazione del funzionamento dei vari elementi tra loro. Si sottolinea il fatto che l'architettura dell'hardware di un calcolatore reale è molto complessa: il modello di Von Neumann è un modello semplificato dei calcolatori moderni e che, come tale non è una macchina reale. J. Von Neumann è stato il progettista del primo calcolatore in cui i programmi potevano essere memorizzati anziché codificati mediante cavi e interruttori. Come si può vedere dalla Figura la memoria centrale è una parte importante dell'architettura di un elaboratore. La struttura del modello di Von Neumann è un modello di macchina semplificato in cui vengono evidenziate tutte le parti principali alla base degli attuali calcolatori. È composto da 4 componenti principali: -Unità centrale di elaborazione -Memoria centrale -Interfacce Ingresso/Uscita (Input/Output) -Bus Come detto precedentemente, tale modello rimane il punto di riferimento, con le dovute eccezioni tecnologiche, della costruzione dei moderni elaboratori. Tale architettura viene mappata sulla motherboard ovvero sulla parte fisica e logica di un computer. **4. LE COMPONENTI DEL MODELLO** In questo paragrafo vengono introdotti i quattro elementi principali del modello. **La CPU** La unità centrale di elaborazione (Central Processing Unit), chiamata anche processore è l'unità **fondamentale** di un elaboratore poiché è in grado di eseguire istruzioni per l'elaborazione dei dati, di svolgere anche funzioni di controllo (di coordinamento) delle altre componenti funzionali. Nelle architetture moderne si parla di Microprocessore, intendendo con tale termine quel componente elettronico che rappresenta l'implementazione reale di una CPU del modello di Von Neumann. Il microprocessore è costituito da un monocristallo di silicio puro, sezionato finemente, quindi trattato ad alte temperature in forni che contengono vari tipi di impurità allo stato gassoso. Queste impurità devono legarsi alla struttura reticolare del cristallo, influenzando la sua capacità di condurre elettricità. Il silicio diventa così un semiconduttore ed è in grado quindi di resistere al passaggio di corrente elettrica in misura maggiore rispetto ai normali conduttori come il rame, ma non tanto quanto gli isolanti. Il microprocessore (o unità centrale di elaborazione, CPU) è una elaborata combinazione transistor, che si definisce circuito integrato. I circuiti integrati vengono adoperati nei più svariati settori, dall\'amplificazione dell\'audio al controllo delle funzioni di un microonde; i microprocessori si differenziano da altri circuiti integrati del genere per il fatto che le variazioni elettriche, conseguenti ai segnali d\'ingresso, si verificano all\'interno del processore stesso in base a particolari elaborazioni. **La Memoria Centrale** La memoria centrale, memorizza e fornisce l'accesso a dati e istruzioni. Il processore dialoga con la memoria centrale attraverso operazioni di lettura/scrittura. In pratica, il processore legge ed esegue le istruzioni che legge, secondo opportune regole, in memoria centrale. Colloquia attraverso i BUS. Esistono nelle moderne implementazioni degli elaboratori, varie tipologie di memoria (Figura 5), organizzate su schede e su circuiti integrati singoli posti nella motherboard. Nella memoria centrale troveremo dati codificati a 0 e 1. **Le interfacce** Le interfacce rappresentano componenti di collegamento (considerate esterne al calcolatore), che consentono lo scambio di dati tra calcolatore e utente. L'interfaccia può cambiare al variare della periferica da collegare al calcolatore. Ad esempio l'interfaccia video SVGA oppure l'interfaccia USB con i suoi vari standard. In Figura un esempio di interfaccia tra computer e stampante. Praticamente l'interfaccia lavora a due livelli: logico e fisico. A livello logico comanda lo scambio di dati, dialogando con la periferica mentre a livello fisico l'interfaccia rende compatibili i segnali elettrici che parlano da una parte l'elaboratore e dall'altra la periferica. Ad esempio anche USB 3.0 **I Bus** L'informazione all'interno di un elaboratore "viaggia" su speciali "autostrade" che collegano le diverse unità, dette bus. Un bus è un gruppo di segnali, o di piste sul circuito stampato, utilizzati per trasportare i segnali elettrici che rappresentano i bit tra le varie unità. Essi sono canali di comunicazione tra le varie componenti per lo scambio di istruzioni, dati, segnali di sincronizzazione. I bus possono essere classificati come bus di sistema o bus interno, che collega le unità interne all'elaboratore, o come bus di periferica o bus di I/O che servono a collegare dispositivi periferici. Negli anni '90 c'era il Bus CPI che collegava la CPU con le periferiche interne, durato pochi anni, fino al '93 circa. Si hanno tre tipologie principali di bus: -Bus dei Dati (Data Bus) - adibito al trasferimento dei dati tra un\'unità che trasmette e un\'unità che riceve es. Memoria e microprocessore -Bus degli Indirizzi (Address Bus) - è il bus sul quale viene indicato l\'indirizzo dell\'unità interessata all\'operazione, esempio la cella di memoria -Bus dei segnali di controllo (Control Bus) - è il bus sul quale sono inviati i comandi che la CPU impartisce alle altre componenti del sistema In Figura si osservi la composizione del System Bus. **1. INTRODUZIONE** In questa dispensa si introduce l'architettura del microprocessore, l'elemento più importante dell'architettura di von Neumann il quale ha il compito di eseguire le istruzioni. Si illustrano dapprima le caratteristiche generali, successivamente l'architettura funzionale e il modello di funzionamento, a tre e cinque stati. **2. CARATTERISTICHE GENERALI** L'elemento fondamentale di un sistema di elaborazione, come proposto da von Neumann, è la **CPU** (Central Processing Unit). Questa viene realizzata fisicamente attraverso un **microprocessore** che può essere multicore, cioè costituito da più CPU eguali in un unico componente integrato (chip), come ad esempio il microprocessore i7 della intel. Chip del microprocessore i7 della Intel I primi microprocessori risalgono agli anni '70 nelle calcolatrici tascabili. Il primo venduto fu il 4004 a 4 bit nel 1971 da Intel. Per comprendere adeguatamente l'architettura ed il funzionamento di un microprocessore, conviene riflettere inizialmente sull'architettura generale di un sistema di elaborazione a microprocessore, ovvero entrare con una lente di ingrandimento nel modello di von Neumann in Figura. Come si può notare, la CPU risulta un elemento comunicante con gli altri elementi del sistema attraverso il system bus, composto a sua volta da tre tipologie di canali. Svolge le funzioni di esecuzione delle singole istruzioni prelevate dalla memoria centrale: -esegue i calcoli aritmetici e logici -presiede al funzionamento complessivo dell'elaboratore Scendendo ancora nel dettaglio, risulta utile sottolineare come, la mansione fondamentale di una CPU sia quella di eseguire istruzioni operanti su dati. Sia le istruzioni che i dati sono, in questa tipologia di architettura, memorizzati in memoria centrale e quindi diviene fondamentale lo schema illustrato in Figura 3, dove i componenti del modello comunicano in modo dedicato. Inoltre, nella figura, viene introdotto un altro elemento essenziale per il funzionamento di un microprocessore, ovvero il **clock**. Per comprendere l'importanza del clock, bisogna ricordare che un sistema di elaborazione e microprocessore è un sistema discreto e come tale, composto da un numero grande, ma finito di stati o configurazioni. A questo proposito è utile ricordare le prime calcolatrici meccaniche dei secoli passati dove le singole operazioni venivano effettuate attraverso meccanismi a ruote dentate: ogni operazione corrispondeva a vari spostamenti delle ruote dentate. Nel caso del microprocessore, continuando con l'analogia, il clock è uno spostamento di un singolo dentino dell'ingranaggio. Pertanto, il tempo in questi sistemi, ovvero quanto dura una operazione, va misurato attraverso il numero di impulsi di clock richiesti per portarla a termine. Ne consegue che più è alta la frequenza di clock, a parità di architettura, più risulterà veloce il microprocessore. Un microprocessore è caratterizzato da: -la frequenza del clock -l'architettura e la dimensione della memoria cache -la larghezza dei bus dati interno -la capacità di indirizzamento -la larghezza del bus dati esterno Dalla Figura 3 si nota anche lo stretto collegamento del microprocessore con la memoria centrale. In particolare si notino i due segnali leggi e scrivi, i quali appartengono alla categoria dei segnali di controllo (bus controlli), i quali servono a dire alla memoria centrale se il microprocessore vuole leggere o scrivere in memoria. Come vedremo tra poco, nelle moderne architetture di un microprocessore, per evitare i rallentamenti dovuti alle diverse velocità tra microprocessore e memoria centrale (RAM), si introduce la memoria cache. **3. L'ARCHITETTURA DEL MICROPROCESSORE** Nel corso dei decenni, l'evoluzione della CPU è stata enorme in termini di capacità di elaborazione e velocità, e la struttura interna (architettura), si è evoluta, fino ad arrivare a quella esposta in Figura. Seguendo lo schema, passiamo ad illustrarne le componenti. -**Bus interno**: canale che consente di trasferire dati e indirizzi tra i vari blocchi del microprocessore. Questa componente rappresenta un vero e proprio canale, misurato in numero di bit, il quale, più è grande e più velocizza il microprocessore. Infatti si supponga di avere due microprocessori esattamente uguali tranne che per il suo bus interno: il primo a 32 bit ed il secondo a 64 bit. Risulta chiaro che, dovendo trasferire 64 bit da una componente all'altra, entrambe interne al microprocessore, il primo tipo di microprocessore dovrà impiegare due viaggi mentre il secondo uno; -**ALU** (Arithmetic Logic Unit): unità che esegue tutte le operazioni logico-matematiche; -**Registri**: piccole aree di memoria molto veloci che conservano i dati da elaborare e le informazioni relative alle operazioni da eseguire durante l'esecuzione delle istruzioni; -**Control Unit**: coordina e gestisce le operazioni interne dei vari blocchi in base ai segnali ricevuti dall'esterno e alle istruzioni da eseguire; -**Cache interna**: Area di memoria ad accesso veloce atta a contenere le istruzioni successive a quella in corso di esecuzione, velocizzando così la fase di reperimento dell'istruzione dalla memoria centrale. Organizzata su più livelli (L1, L2, L3) in base alla velocità di accesso e alla frequenza d'uso; -**Logica di controllo**: Insieme di circuiti che trasformano gli impulsi elettrici provenienti dall'esterno in segnali utili per l'unità di controllo e trasformano in impulsi elettrici i comandi provenienti dall'unità di controllo. Si ricordi che le istruzioni alla fine devono essere trasformate in segnali elettrici; -**Memory Interface** (Memory Management Unit, MMU): Fornisce ai bus esterni di comunicazione (dati e indirizzi) gli impulsi necessari per le comunicazioni con la memoria e le periferiche e di trasformare gli impulsi ricevuti dall'esterno sui due bus in segnali utili per l'unità di controllo; Dà info alla cache per le operazioni successive così essa le ha già pronte. -**Bus dati**: Trasferisce dati e istruzioni tra microprocessore e memoria centrale (bidirezionale); -**Bus indirizzi**: Gli indirizzi con i quali la cpu seleziona una cella di memoria o una periferica (monodirezionale); -**Bus controlli**: Segnali di sincronizzazione e controllo; **4. IL CICLO MACCHINA** In questo paragrafo si illustra la modalità di funzionamento di un microprocessore per eseguire un'istruzione. Iniziamo prima con il ciclo macchina a tre stati, passando a quello a cinque stati. L'esecuzione di ciascuna istruzione avviene mediante lo svolgimento delle seguenti tre operazioni di base (ciclo macchina): **Fase di Fetch (IF)** (lettura): Il microprocessore legge dalla memoria centrale l'istruzione da eseguire; **Fase di decode (ID)** (decodifica): Il microprocessore determina il tipo di istruzione che deve essere eseguito; **Fase di Execute (EX)**: o Il microprocessore esegue l'istruzione, richiede lo svolgimento di tutte le azioni necessarie per la sua corretta esecuzione; Le tre fasi esposte rappresentano un ciclo con il quale il microprocessore esegue le istruzioni. In letteratura il ciclo macchina si può trovare anche a cinque stati, introducendo due sotto-stati aggiuntivi, come illustrato nella Figura a destra: **Fase MEM**: scrittura del risultato in memoria (solo per alcune istruzioni) **Fase WB** (Write Back): scrittura del risultato nel registro interno opportuno e aggiornamento dello stato Gli attuali microprocessori si basano su una serie di microoperazioni ciascuna di durata 1 ciclo di clock in modo tale da ottimizzare i tempi di esecuzione. **1. INTRODUZIONE** In questa dispensa, si introduce la motherboard ovvero la scheda madre, una piastra hardware sulla quale risiedono tutte le componenti funzionali di un elaboratore. I concetti appresi in questa unità didattica aiuteranno a selezionare il materiale giusto per assemblare il proprio computer. **2. CARATTERISTICHE GENERALI** La **scheda madre** o motherboard rappresenta la piattaforma fisica sulla quale sono installate le componenti e le interfacce hardware di un elaboratore. Un esempio è illustrato in Figura 1 dove viene illustrata la scheda Asus M5A78L-M PLUS. Una caratteristica fondamentale che distingue una scheda madre da un'altra è il **chipset**, ovvero una sigla corrispondente ad una ben precisa architettura hardware, ovvero l'insieme dei circuiti integrati (Northbridge e Southbridge) di una scheda madre. **Relazione con il modello di Von Neumann** La scheda madre rappresenta la realizzazione fisica del modello di Von Neumann (con le dovute eccezioni causate dalla continua evoluzione tecnologica di tutte le componenti). È interessante notare come un modello, astratto, di elaboratore, del 1945, ancora oggi rappresenta il punto di riferimento delle architetture alla base di un calcolatore. Infatti, tra le sue funzionalità abbiamo: -Esecuzione delle istruzioni -Coordinamento delle componenti hardware installate (CPU, RAM...) -Trasferimento dati dal e verso il mondo esterno (periferiche) **Modello di von Neumann e scheda madre** In Figura è illustrato il modello di von Neumann in relazione ad una scheda madre, in questo caso la ASUS P5KPL/1600. Ovviamente ad occhio immediato non risulta semplice individuare una ad una le relazioni tra le parti hardware e le parti del modello. **3. ARCHITETTURA DI UNA SCHEDA MADRE** Partendo dall'architettura esposta in Figura (architettura Intel/AMD), vediamo che da un punto di vista logico-funzionale, una motherboard è suddivisa nei seguenti due componenti principali: -Northbridge \--\> CPU o PCI-E o RAM (Memoria centrale) -Southbridge \--\> Periferiche lente **Northbridge** Il northbridge, chiamato anche MCH o Memory Controller Hub, è il circuito integrato che controlla la comunicazione tra gli elementi veloci come la RAM, la CPU ed il bus PCI-Express. L'FSB o Front Side Bus è il canale di collegamento diretto ad alta velocità con la CPU. **Southbridge** Il Southbridge chiamato anche ICH (I/O Controller Hub) gestisce le comunicazioni con gli elementi lenti della motherboard. Gli elementi che controlla il Southbridge sono: -PCI o Bus di collegamento con vecchie periferiche -USB o Canale seriale per la comunicazione con periferiche -ISA -IDE -BIOS o Canale di comunicazione con le Basic Input/output System -Legacy Northbridge e Southbridge costituiscono la parte logica (di controllo) di una scheda madre. Il microprocessore alloggia in un socket. Le interfacce di una motherboard fanno dialogare la scheda madre con il mondo esterno. Il bus AGP è il bus della scheda video. **Memoria RAM (Random Access Memory)** La RAM è il luogo fisico dove vengono allocati dati e istruzioni ed è a diretto contatto con il microprocessore: è la realizzazione concreta della Memoria Centrale. È caratterizzata dal fatto che il microprocessore, ricordando il modello di Von Neumann, può accedere sia in lettura che in scrittura in qualsiasi locazione attraverso un apposito BUS o canale di comunicazione (FSB). Dal punto di vista funzionale, una RAM può essere vista come un'enorme matrice, indirizzata dal microprocessore attraverso il bus indirizzi, come illustrato in Figura. Si compone di celle (o locazioni). Ogni cella di memoria è in grado di memorizzare una parola di memoria (ovvero, una sequenza di bit di lunghezza fissata). Inoltre, ogni cella è caratterizzata da: -Un indirizzo, che è un numero che identifica la cella e ne consente l'accesso; -Un valore, che è la sequenza di bit memorizzata dalla cella La fase di lettura/scrittura di una parola prende il nome di ciclo di memoria. -Ciclo di lettura:.Il microprocessore mette sul bus indirizzi l'indirizzo della cella di memoria da leggere.Il microprocessore attiva il segnale di lettura appartenente al bus controlli ed in input alla memoria (leggi in figura).La memoria rende disponibile il dato sul bus dati -Ciclo di scrittura:.Il microprocessore mette sul bus indirizzi l'indirizzo della cella di memoria.Il microprocessore attiva il segnale di scrittura sul bus controlli, in ingresso alla memoria (segnale scrivi in figura).Il microprocessore mette sul bus dati il dato da scrivere in memoria centrale.Il dato viene scritto alla locazione indicata in memoria centrale Tra le caratteristiche più importanti di una RAM, ricordiamo le seguenti: **Capacità** -- Il numero di bit che possono essere memorizzati, misurati in byte (e multipli del byte); -1Kbyte indica 2^10^ byte = 1024 byte -1Mbyte indica 2^20^ byte = 1024 Kbyte = 1 048 576 byte -1Gbyte indica 2^30^ byte = 1024 Mbyte = 1 073 741 824 byte **Velocità di accesso** -- Misura la velocità di esecuzione delle operazioni di lettura/scrittura, dette cicli di memoria; **Volatilità** -- le memorie [RAM] (Random Access Memory) possono essere sia lette che scritte, ma i dati memorizzati vengono persi allo spegnimento del calcolatore; Le memorie [ROM] (Read Only Memory) possono essere solo lette ed i dati sono memorizzati in modo permanente. Tale tipologia di memoria viene utilizzata ad esempio dalle case costruttrici per memorizzare in modo permanente i dati: sono i casi di memorie contenenti programmi particolari, in genere utilizzati da dispositivi hardware. La RAM dialoga con la CPU attraverso il northbridge. Due categorie di RAM \--\> SRAM (memorie statiche, più veloci, costo più alto) \--\> DRAM (memorie dinamiche, più capacità, costo minore) Dal punto di vista della componentistica, le RAM sono organizzate in schede da inserire in particolari slot, come illustrato in Figura. **4. ASSEMBLAGGIO DI UN COMPUTER** In questa sezione si illustrerà brevemente come assemblare un computer desktop. Le componenti da valutare sono molteplici. Qui riportiamo uno studio fatto per assemblare un computer orientato al gaming. La motherboard ovviamente è la componente principale ovvero lo scheletro sul quale inserire tutte le componenti, dalla CPU alla memoria centrale\... Il costo totale del computer è di circa € 1.900,00, un prezzo alto ma giustificato dalle prestazioni. **INTRODUZIONE** Un programma memorizzato su un computer digitale mantiene sia le istruzioni del programma che i dati in una memoria volatile ad accesso casuale (Random Access Memory). I computer con programma memorizzato erano degli anni \'40, come il Colossus e l\'ENIAC, programmati impostando interruttori e inserendo cavi per instradare i dati e controllare i segnali tra diverse unità funzionali. L\'unità di memoria è costituita dalla RAM, a volte indicata come memoria principale o centrale. A differenza di un disco rigido (memoria secondaria), questa memoria è veloce e anche direttamente accessibile dalla CPU. Come si vedrà, la RAM è divisa in partizioni. Ogni partizione è composta da un indirizzo e il suo contenuto (entrambi in formato binario). L\'indirizzo identificherà in modo univoco ogni posizione nella memoria. Il caricamento dei dati dalla memoria permanente (disco rigido), nella memoria temporanea (RAM) più veloce e direttamente accessibile, consente alla CPU di funzionare molto più rapidamente. **MEMORIZZARE I DATI** È un dato di fatto che il calcolatore elettronico parla il linguaggio binario (0,1) ovvero il sistema di numerazione binario. Il dato per essere trattato da un elaboratore deve essere quindi codificato in una sequenza di bit. Oggi, grazie a internet si generano ogni giorno grandi quantità di dati (e.g. big data). Un effetto di tale fenomeno è stata la nascita del mercato degli apparati di storage (fisici, fatti per memorizzare dati) e il mercato delle soluzioni cloud (virtuali). Da un punto di vista generale, la **memoria** (Memory Unit) è l\'unità destinata ad accogliere i programmi ed i dati inseriti nel calcolatore. Essa va suddivisa tra: **memoria centrale**: è la memoria che contiene dati e programmi **memoria di massa** (unità elettromagnetiche): utilizzata per l\'archiviazione dei dati e dei programmi per conservarli nel tempo (dischi magnetici ed ottici, pen drive USB, ecc.). La Figura illustra l'evoluzione che si è avuta negli anni nei dispositivi di storage. Si è passati da dispositivi locali basati su hard disk a dispositivi basati o su apposite unità, molto efficienti oppure basati su cloud. **LA MEMORIA CENTRALE** La memoria centrale è organizzata come una **sequenza ordinata di celle** di lunghezza prefissata (word), ciascuna caratterizzata da: -un indirizzo -un contenuto Una cella di memoria può essere costituita da 8, 16, 32 o 64 bit. Un altro parametro importante della memoria è il **tempo di accesso** ovvero il tempo necessario al trasferimento di un dato tra CPU e memoria, ossia il tempo richiesto per leggere o scrivere un dato in una cella di memoria (é quindi il ciclo di scrittura o lettura). La memoria centrale può essere realizzata con dispositivi diversi in funzione del tipo di elaboratore. Le memorie a semiconduttore possono essere classificate in due grandi categorie: le memorie a tecnologia RAM e quelle a tecnologia ROM. Due esempi sono raffigurati in Figura. RAM Le **memorie RAM** (Random Access Memory) sono memorie in cui l'informazione può essere [letta o scritta]. Sono dette memorie volatili (quando spegniamo il computer noi perdiamo tutto ciò che c\'è dentro). Le RAM si distinguono in statiche e dinamiche. Queste ultime sono di gran lunga più utilizzate per il loro miglior rapporto prezzo/prestazioni. Le RAM dinamiche (DRAM) si sono evolute per migliorare la velocità di accesso. Si è passati dalle SDRAM (Syncrohnuos Dynamic RAM) alle attuali DDR RAM (Double Data Rate RAM), o semplicemente DDR, che sono già alla terza versione: DDR 3. Le **memorie ROM** (Read Only Memory) sono memorie [a sola lettura]. L\'operazione di scrittura viene effettuata una volta per tutte dal costruttore e l\'informazione non si perde in assenza di alimentazione. Altri tipi di memorie ROM sono: PROM, EPROM, EEPROM. Queste ultime utilizzate nella realizzazione di pen drive o delle memorie flash. Le RAM si distinguono in statiche e dinamiche. **ARCHITETTURA** L'architettura della memoria centrale è raffigurata nella Figura sottostante. La figura è molto articolata e descrive una fase completa di dialogo tra memoria centrale e microprocessore. Sono raffigurati tutti e tre i bus dell'architettura di Von Neumann: bus dati, indirizzi e controlli ed una RAM di 128 words, ciascuna di 16 bit. La figura esprime un'operazione di lettura o scrittura in memoria. Le fasi devono essere lette nel modo seguente: -Si vuole leggere o scrivere una word all'indirizzo di memoria: 01111010 (indirizzo posto sul bus indirizzi) -Nel bus controlli è attivo il segnale di lettura o di scrittura -Nel bus dati viaggia il dato da inserire o letto **Memoria Cache** Al fine di migliorare le prestazioni di memoria, rendendo più breve il tempo medio di accesso, i progettisti di elaboratori hanno introdotto uno speciale sistema di memoria, chiamato **cache** **memory**. In essa vengono memorizzate, replicandole, le informazioni, dati e istruzioni, che hanno la maggior probabilità di essere utilizzate in un breve orizzonte temporale dalla CPU: In tal modo il tempo di lettura/scrittura di un dato risulta molto inferiore rispetto alla RAM tradizionale. La memoria cache, chiamata anche memoria CPU, è la memoria ad accesso casuale statico ad alta velocità (SRAM) che un microprocessore può accedere più rapidamente di quanto possa accedere alla normale RAM. Questa memoria è tipicamente integrata direttamente nel chip della CPU o collocata su un chip separato che ha un\'interconnessione bus separata con la CPU. Lo **scopo** della memoria cache è quello di memorizzare le istruzioni e i dati del programma che vengono utilizzati ripetutamente nelle operazioni di programmi o informazioni che la CPU probabilmente richiederà successivamente. Il processore del computer può accedere rapidamente a queste informazioni dalla cache anziché doverlo prelevare dalla memoria centrale del computer. L\'accesso rapido a queste istruzioni aumenta la velocità generale del programma. Poiché il microprocessore elabora i dati, cerca prima nella memoria cache. Se trova le istruzioni o i dati che sta cercando da una precedente lettura dei dati, non deve eseguire una lettura più lunga dei dati dalla memoria principale o da altri dispositivi di memorizzazione dei dati. La memoria cache è responsabile dell\'accelerazione delle operazioni e dell\'elaborazione del computer. La maggior parte dei programmi utilizza solo poche risorse del computer. Questo perché le istruzioni ripetute tendono ad essere memorizzate nella cache. Questo è il motivo per cui le misurazioni delle prestazioni del computer con processori più lenti ma cache più grandi possono essere più veloci di quelle per computer con processori più veloci ma con meno spazio nella cache. Il caching multilivello o multilivello è diventato popolare nelle architetture server e desktop, con diversi livelli che offrono maggiore efficienza attraverso il tiering gestito. In poche parole, meno frequentemente si accede a determinati dati o istruzioni, più in basso è il livello di cache in cui sono scritti i dati o le istruzioni. Questo schema è raffigurato in Figura sottostante. I livelli evidenziati sono L1, L2 e poi la memoria DRAM. Oggigiorno esiste anche il livello L3 di memoria cache e tutti i livelli sono allocati direttamente dentro la CPU. **MEMORIA DI MASSA** La memoria di massa è una memoria del computer che non è volatile e di natura persistente e non è accessibile direttamente dal microprocessore. Permette all\'utente di memorizzare dati che possono essere istantaneamente e facilmente recuperati, trasportati e utilizzati da applicazioni e servizi. La memoria di massa è costituita da tutti i dispositivi di memorizzazione permanenti, come la memoria di sola lettura (ROM), le unità flash, le unità disco rigido (HDD), i nastri magnetici e altri tipi di supporti di memorizzazione interni/esterni. Nelle operazioni di calcolo, la memoria di massa è accessibile solo dalla memoria principale e successivamente trasferita al processore. Questa memoria è più lenta della memoria centrale ma può memorizzare e conservare i dati, anche se il computer non è collegato all\'alimentazione elettrica. Ha anche notevoli capacità di archiviazione, che vanno da megabyte a diversi terabyte di spazio di archiviazione all\'interno di una singola memoria. Le caratteristiche principali: -**non volatilità**: i dati memorizzati non vengono persi allo spegnimento del calcolatore (perché memorizzati in forma magnetica o ottica e non elettronica); -**grande capacità di memorizzazione**: una unità di memoria secondaria ha capacità maggiore (anche di diversi ordini di grandezza) rispetto alla memoria centrale; -**bassi costi per bit**: il costo per bit di una memoria secondaria è minore (di diversi ordini di grandezza) rispetto alla memoria centrale; -**tempo di accesso** (seek time): tempo per il posizionamento dell'elemento di lettura/scrittura su un blocco di dati; -**velocità di trasferimento** (throughput): massima quantità di dati trasferibile nell'unità di tempo. Altre caratteristiche delle memorie secondarie rispetto alle memorie centrali sono ad esempio la minore velocità di accesso (i tempi di accesso a una memoria secondaria sono maggiori (di qualche ordine di grandezza) rispetto alla memoria principale). **I** **dati di una memoria di massa per essere acceduti dal processore devono comunque transitare nella memoria centrale.** In pratica: la memoria secondaria memorizza tutti i programmi e di dati del calcolatore e memorizza i programmi in esecuzione e i dati necessari per la loro esecuzione. Esempi: Hard Disk, SSD, Pen Drive, CD-ROM, DVD. **HARD DISK** Un **hard disk** (disco fisso) è una unità di memorizzazione composta da uno o più piatti di alluminio rotanti ricoperti di materiale magnetico e da testine. Una **testina** permette la scrittura e lettura di bit su un disco, memorizzati sotto forma di stati di polarizzazione (positiva e negativa). Inoltre, in un disco magnetico ciascun piatto è composto da due superfici (facce), ciascuna faccia è suddivisa in **tracce** (circolari) e **settori** (a spicchio). Un **cilindro** è l'insieme delle tracce in una data posizione radiale, i settori sono le unità logiche di memorizzazione con capacità di 512 byte (o superiori). L'indirizzo di un settore è dato dalle seguenti informazioni: cilindro, superficie e settore. In Figura 1 due immagini della struttura interna di un hard disk. Si possono notare le varie parti: nella figura di sinistra sono visualizzate alcune componenti tra cui la Data Cache ovvero il firmware (=ROM con software di gestione a bordo) il quale pilota i meccanismi. Nella figura di destra invece vediamo la tipica struttura winchester con più piatto in un unico cilindro, ciascuno dei quali dotato di apposite testine di lettura/scrittura. Nella Figura sotto abbiamo un'altra prospettiva dell'hard disk dove sono messe in risalto lo chassis con le sue parti meccaniche, la figura centrale con la struttura dei singoli piatti ed infine le testine con la loro distanza dal piatto. In particolare, il **Piatto singolo** è un supporto rigido ricoperto di materiale ferromagnetico, con una testina di lettura/registrazione (elettrocalamita). La testina sfiora il disco a circa 1μm (micrometro). La struttura come accennato è quella Winchester, ovvero diversi piatti impilati con capacità di memorizzazione che va da 10 GB a 2 TB (Terabyte) ed oltre. Il tempo di accesso ai dati risulta dell'ordine di 10ms, mentre la velocità di trasferimento è dell'ordine di 10 MB/s. I piatti sono fissi, racchiusi in un contenitore in cui è fatto il vuoto. I piatti ruotano e le testine leggono o scrivono sulle tracce attraverso unità che sono i settori. La velocità di rotazione dei piatti è: 10-15,000 RPM (dischi veloci, per server) 5-10,000 RPM (per PC e WS) 3-5,000 RPM (per computer portatili) **CONFIGURAZIONE RAID** Si chiama Configurazione RAID (esempio di configurazione hard disk), un sistema di dischi per realizzare unità di memorizzazione per server. Si usano dischi di qualità media con meccanismi di correzione degli errori misti HW/SW. La sigla RAID sta per: Redundant Array of Independent (Inexpensive) Disks. Esistono varie configurazioni di sistemi RAID, numerate dallo 0 al 5. Ne vediamo alcune. **Configurazione RAID 1** In questa configurazione, i dati sono copiati identici su due o più dischi speculari, come illustrato in Figura (immagine a sinistra). Pertanto si ha ridondanza massima: se un hard disk si rompe, piò subito entrare in funzione la sua copia. In genere i server che supportano tale configurazione RAID consentono anche il BOOT A CALDO ovvero la possibilità di estrarre ed inserire un hard disk senza spegnere la macchina. **Configurazione RAID 4-5** I dati sono smistati su più hard disk distribuendo in questo modo lo spazio richiesto dai dati. In Figura (immagine a destra) un esempio applicativo. Inoltre, un sistema di controllo dell'errore consente di individuare possibili errori di scrittura. **ALTRI DEVICES** Esistono altri dispositivi utilizzati per la memorizzazione secondaria. **Solid State Disk (SSD)** Il Solid State Disk è un disco composto da chip di memoria. È caratterizzato da una lettura veloce, da una scrittura lenta. Ha un tempo seek costante e molto basso 0.1 ms ed una velocità di trasferimento di 100 MB/s e superiori. Manifesta però un costo per bit alto. **Pen drive** Basata su tecnologia EEPROM, con alta capacità di memorizzazione: 32 GB, in crescita. Non è dotata di parti mobili (basso consumo energia). Tipicamente con connettore USB. In Figura 4 un esempio di pen Drive. **SD Card** La SD card, Secure Digital, ha un'alta capacità (4 GB, in crescita), nessuna parte mobile (basso consumo energia). Le dimensioni risultano alquanto ridotte, anche se ne esistono diversi formati come la micro SD card per il cellulare. ridotte (24x32 mm, o miniSD 20x21.5 mm). È veloce, (100 Mbps 4-bit mode, 25 Mbps 1-bit SPI mode) e viene utilizzata in molte applicazioni come la robotica ed i droni. **COMPACT DISK** Il Compact disc (CD) è un formato di archiviazione dati di dischi ottici digitali che è stato sviluppato congiuntamente da Philips e Sony e rilasciato nel 1982. Il formato è stato originariamente sviluppato per archiviare e riprodurre solo registrazioni audio (CD-DA), ma è stato successivamente adattato per la memorizzazione di dati (CD-ROM). Da questi sono derivati anche altri formati, tra cui l\'archiviazione audio e dati (CD-R) write-once, supporti riscrivibili (CD-RW), Compact Disc video (VCD), Super Video Compact Disc (SVCD), Photo CD, PictureCD , CD-i e CD musicale avanzato. Il primo lettore CD audio disponibile in commercio, il Sony CDP-101, è stato rilasciato nell\'ottobre 1982 in Giappone. I CD standard hanno un diametro di 120 millimetri (4,7 pollici) e possono contenere fino a circa 80 minuti di audio non compresso o circa 700 MiB di dati. Il Mini CD ha vari diametri che variano da 60 a 80 millimetri (da 2,4 a 3,1 in); a volte vengono utilizzati per i singoli CD, memorizzano fino a 24 minuti di audio o forniscono driver di periferica. Al momento dell\'introduzione della tecnologia nel 1982, un CD poteva archiviare molti più dati di un disco rigido del personal computer, che normalmente conteneva 10 MB. Entro il 2010, i dischi rigidi hanno comunemente offerto lo stesso spazio di archiviazione di un migliaio di CD, mentre i loro prezzi erano crollati a livello di commodity. Nel 2004, le vendite mondiali di CD audio, CD-ROM e CDR hanno raggiunto circa 30 miliardi di dischi. Nel 2007, 200 miliardi di CD erano stati venduti in tutto il mondo. Dai primi anni 2000 i CD venivano sempre più sostituiti da altre forme di archiviazione e distribuzione digitale, con il risultato che entro il 2010 il numero di CD audio venduti negli Stati Uniti era sceso del 50% circa; tuttavia, sono rimasti uno dei metodi di distribuzione principali per l\'industria musicale. Nel 2014, le entrate derivanti dai servizi di musica digitale corrispondevano per la prima volta a quelle delle vendite in formato fisico. La Figura illustra la struttura ed il funzionamento di un CD. In pratica, un raggio laser colpisce la superficie, se tale raggio viene riflesso si associa il valore 1 altrimenti il valore 0. Tra la le varie tipologie di CD abbiamo: -- dischi ottici, a sola/prevalente lettura -- singola faccia, rimovibili -- capacità: 650-700 MB dati (74-80' audio) -- lenti: tempo di accesso 300 ms -- uso: distribuzione di software o dati -- tipologie: -- CD-ROM (dati registrati in produzione) -- CD-R (dati registrabili da utente) -- CD-RW (dati registrabili e cancellabili da utente, ma con perdita di capacità) Tra le velocità di trasferimento abbiamo: -- base = 176 KB/s -- oggi 2x, 3x, 4x, 8x, 16x, \..., 52x Mentre quando sono indicate tre velocità esse sono nell'ordine: -- write-once /rewrite /read -- es. 12x / 10x / 32x (= 1.8 / 1.5 / 4.8 MB/s) Con tempo di accesso: 100 ms. **DVD** Il DVD (Digital Video Disc) è un formato di archiviazione di dischi ottici digitali inventato e sviluppato nel 1995. Il supporto è in grado di memorizzare qualsiasi tipo di dati digitali ed è ampiamente utilizzato per software e altri file di computer, nonché programmi video guardati con lettori DVD. I DVD offrono una maggiore capacità di archiviazione rispetto ai compact disc pur avendo le stesse dimensioni. I DVD preregistrati sono prodotti in serie con macchine per lo stampaggio che stampano fisicamente i dati sul DVD. Tali dischi sono una forma di DVD-ROM perché i dati possono solo essere letti e non scritti o cancellati. I dischi DVD registrabili vuoti (DVD-R e DVD + R) possono essere registrati una volta utilizzando un registratore DVD e quindi funzionano come DVD-ROM. I DVD riscrivibili (DVD-RW, DVD + RW e DVD-RAM) possono essere registrati e cancellati molte volte. I DVD sono utilizzati nel formato video digitale consumer DVDVideo e nel formato audio digitale consumer DVD-Audio nonché per l\'authoring di dischi DVD scritti in uno speciale formato AVCHD per contenere materiale ad alta definizione (spesso in combinazione con videocamere formato AVCHD). I DVD contenenti altri tipi di informazioni possono essere indicati come dischi di dati DVD. La tassonomia dei DVD segue le seguenti classificazioni: -- Dischi con diametro 12 cm (8 cm = miniDVD) -- Single side (SS) o double side (DS) -- Single layer (SL) o double layer (DL) -- 2 GB = 1 ora di video ad alta qualità, con 3 colonne sonore differenti (durata ancora maggiore se video con qualità VHS) -- Velocità 1x = 1.32 MB/s In Figura sotto è illustrata la differente capacità di memorizzazione tra DVD e CD. Per concludere questo excursus sulle periferiche di memorizzazione di massa, parliamo adesso dei **Blue-Ray DVD**. Questo standard rappresenta un nuovo formato DVD (incompatibile col precedente), dove si usa un raggio laser blu-violetto (l=405 nm) invece che rosso (l=650 nm). La capacità di memorizzazione è di 25/50 GB (single/double layer). Viene utilizzato per memorizzare un film in HD. **INTRODUZIONE** Un **sistema operativo** è un software di sistema che gestisce le risorse hardware e software del computer e fornisce servizi comuni per i programmi per computer. I sistemi operativi programmano le attività per un uso efficiente del sistema e possono anche includere software di contabilità per l\'allocazione dei costi del tempo del processore, della memoria di massa, della stampa e di altre risorse. Per le funzioni hardware come l\'input e l\'output e l\'allocazione della memoria, il sistema operativo funge da intermediario tra i programmi e l\'hardware del computer, anche se il codice dell\'applicazione viene solitamente eseguito direttamente dall\'hardware e spesso effettua chiamate di sistema ad una funzione del sistema operativo o è interrotta da esso. I sistemi operativi si trovano su molti dispositivi che contengono un computer, dai telefoni cellulari e console per videogiochi ai server Web e ai supercomputer. Oggigiorno, il sistema operativo desktop dominante è Microsoft Windows con una quota di mercato dell\'82,74% circa. macOS di Apple Inc. è al secondo posto (13,23%), e le varietà di Linux sono collettivamente al terzo posto (1,57%). Nel settore mobile (smartphone e tablet combinato), l\'utilizzo nel 2017 arriva fino al 70% di Android di Google e secondo i dati del terzo trimestre 2016, Android su smartphone è dominante con l\'87,5% e un tasso di crescita del 10,3% all\'anno, seguito da iOS di Apple con il 12,1 percento e una diminuzione annua della quota di mercato del 5,2 percento, mentre gli altri sistemi operativi ammontano a appena lo 0,3 percento. Le distribuzioni Linux sono dominanti nei settori server e supercalcolo. Altre classi specializzate di sistemi operativi, come sistemi embedded e real-time, esistono per molte applicazioni. **CONCETTI BASE** Un Sistema Operativo è un insieme di programmi standard che permettono di realizzare una efficiente comunicazione tra l'hardware della macchina e l'utente. Ovviamente la Figura 1 è una figura emblematica estrema di cosa significhi una comunicazione uomo computer: senza una opportuna comunicazione o, nel nostro caso interfaccia, non risulta possibile far fare all'elaboratore ciò che chiediamo. Tale figura, per quanto bizzarra possa sembrare racchiude però la filosofia di un Sistema Operativo: far comunicare in modo adeguato l'uomo con la macchina. Un quadro migliore, più strutturato e consono alla serietà del corso è quello illustrato in Figura sotto, dove il Sistema Operativo ha una sua collocazione ben precisa in un'architettura a strati, della quale parleremo approfonditamente in seguito. Comunque in tale figura spicca la posizione del Sistema Operativo, come gestore dei circuiti che compongono l'elaboratore, ovvero delle sue componenti più interne, delle quali l'utente non si deve preoccupare. Il Sistema Operativo è in qualche modo il software responsabile della gestione delle risorse del calcolatore, e in particolare di come le risorse vengono allocate alle applicazioni ovvero ai programmi in esecuzione, che possono essere molteplici allo stesso istante. Ad esempio, l'utente può richiede al sistema operativo di eseguire un programma facendo semplicemente un doppio click sull'icona di un programma sul desktop del calcolatore (ad esempio un programma della suite Office). Per avviare l'esecuzione di tale programma, il sistema operativo svolge le seguenti attività: individua il codice eseguibile del programma (memorizzato su hard disk) alloca al programma le risorse necessarie per la sua esecuzione (ad esempio, una certa quantità di memoria centrale) carica il codice eseguibile del programma in memoria centrale avvia il programma Alla luce di quanto detto, possiamo allora affermare che il Sistema Operativo deve: -permettere all'utente (il quale non è detto che sia un informatico) di usare in modo semplice e immediato tutte le risorse (HW e SW) che il sistema di elaborazione mette a disposizione -ottimizzare l'uso delle risorse a disposizione, attuando opportune politiche di gestione razionale delle stesse -fornire un'immagine astratta di tutte le risorse disponibili, indipendentemente da come queste funzionino (risorse hardware) e dei dettagli implementativi necessari al loro uso. In questo modo, si svincola l'utente comune dalla struttura fisica della macchina stessa. Ricordando la struttura di Von Neumann dei moderni elaboratori, un **programma** è un insieme di istruzioni che deve eseguire il calcolatore ovvero il microprocessore o CPU per risolvere un particolare problema come la risoluzione di una equazione di II grado. Le istruzioni, codificate in un apposito linguaggio di programmazione (e.g. linguaggio C), un linguaggio comprensibile sia all'umano che alla macchina, sono allocate in memoria centrale dove, la CPU attraverso il ciclo istruzione esegue ciascuna istruzione. A questo punto, per il corretto prosieguo dello studio, è importante sottolineare come un calcolatore sia rappresentabile attraverso una macchina a **stati finiti**, ovvero attraverso un sistema il quale, a partire da uno stato iniziale, evolve nel tempo attraverso una sequenza di azioni deterministiche provocate dall'esecuzione delle istruzioni di un programma. Per stato del sistema si intende un insieme di parametri caratteristici quali i registri generali, lo stack pointer, il program counter, il registro di stato. In sostanza, ogni istruzione determina un insieme di cambiamenti finito. La rappresentazione a stati finiti di un elaboratore, ne fornisce una visione simbolica molto semplice. **PROCESSI E RISORSE** Un **Processo** è un programma in esecuzione il quale, per poter evolvere, ha bisogno di componenti HW e SW come ad esempio microprocessore, video, hard disk, etc\... Definiamo invece **Risorsa** qualsiasi elemento hardware o software che viene usato da un processo e che ne condiziona l'avanzamento. Ad esempio, un programma deve effettuare una lettura da un codice a barre per poi elaborarlo: la risorsa hardware che si occupa della lettura del codice prima o poi lo deve leggere altrimenti il processo non avanza. In Figura è illustrata l'architettura funzionale generale di un elaboratore, sempre a partire dal modello di Von Neumann. In essa sono evidenziate: la Memoria centrale, i Processori e gli I/O Devices. Come si può notare, la parte del Sistema Operativo è allocata in memoria centrale, in una zona non accessibile ai programmi normali. **FUNZIONALITA' GENERALI** Un Sistema Operativo ha due gruppi di funzionalità principali: il primo gruppo verso l'utente ed il secondo gruppo verso la macchina: Funzionalità [verso l'utente]: ---\> Attraverso un'apposita interfaccia, permette di utilizzare applicativi e dati presenti nel calcolatore (e di creare nuovi dati) ---\> Permette la condivisione della stessa macchina a più utenti (isolando lo spazio di lavoro, coordinando l'accesso a risorse condivise) Funzionalità [verso i programm]i: ---\> Attivazione, esecuzione, terminazione ---\> Attribuzione delle risorse del calcolatore (CPU, memoria, I/O, ecc.) ai programmi ---\> Coordinamento rispetto all'uso condiviso delle risorse Tutto ciò tenendo presente che più processi possono richiedere le stesse risorse, in genere limitate, che tutti i processi in competizione sulla stessa risorsa devono comunque ottenere la risorsa prima o poi. I tempi di inattività della risorsa devono essere minimi e bisogna minimizzare i tempi di attesa dei processi. Una funzionalità molto importante di un Sistema Operativo è quella dello **Scheduling**, ovvero della funzionalità che gestisce a quale tra i processi in competizione deve essere assegnata una certa risorsa (se due o più processi vogliono usare un file, a quale do il file?). In particolare, le responsabilità dello scheduling solo: -Tenere aggiornate le informazioni sullo stato di ciascuna risorsa -Gestire i conflitti -Assegnare una risorsa ad un processo -Prendere il controllo di una risorsa Infatti, un Sistema Operativo ricade sotto la seguente classificazione riguardante la gestione delle risorse: ---\> Gestore del/dei processori ---\> Gestore della memoria centrale ---\> Gestore delle periferiche -- Input/Output ---\>Gestore delle informazioni -- File System **ARCHITETTURA DI UN SISTEMA OPERATIVO** I sistemi operativi hanno una struttura complessa, che può essere descritta come una gerarchia di [macchine virtuali] dove ciascun livello della gerarchia è relativo a una macchina virtuale del sistema operativo che gestisce una diversa tipologia di risorse. Le risorse gestite sono i processori, la memoria, le periferiche, le memorie secondarie, l'interfaccia utente. L'utente del calcolatore interagisce solo con l'interfaccia grafica del sistema operativo, dove per interfaccia si intende un sistema di comunicazione tra due entità che parlano linguaggi diversi. Nel **modello a strati** di un sistema operativo, raffigurato in Figura sopra, presenta 7 livelli. Ogni strato/livello ha la responsabilità di una parte delle risorse, si appoggia allo strato sottostante e comunica con lo strato sovrastante. In Figura sotto l'immagine mostra la collocazione delle varie figure per la comunicazione con un elaboratore: utente finale, programmatore e progettista di Sistemi Operativi. **LE BASI** Una rete di computer è una rete di telecomunicazioni digitali che consente ai nodi di **condividere** risorse. Nelle reti di computer, i dispositivi informatici scambiano dati tra loro utilizzando connessioni (collegamenti dati) tra i nodi. Questi collegamenti dati sono stabiliti su supporti via cavo come cavi o cavi ottici o supporti wireless come il WiFi. I computer di rete che originano, instradano e terminano i dati sono chiamati nodi di rete. I nodi sono generalmente identificati dagli indirizzi di rete e possono includere host come personal computer, telefoni e server, nonché hardware di rete come router e switch. Si può dire che tali dispositivi siano collegati in rete quando un dispositivo è in grado di scambiare informazioni con altri dispositivi. Reti informatiche, video digitali, audio digitale, uso condiviso di applicazioni e server di archiviazione, stampanti, fax e messaggistica digitale, applicazioni di messaggistica istantanea e molti altri. Le reti di computer differiscono nel mezzo di trasmissione utilizzato per trasportare i loro segnali, i protocolli di comunicazione per organizzare il traffico di rete, la dimensione della rete, la topologia, il meccanismo di controllo del traffico e l\'intento organizzativo. La rete di computer più conosciuta è Internet. La fusione delle tecnologie dell'informazione e della comunicazione ha avuto un impatto notevole sul modo in cui i moderni sistemi informatici sono organizzati: il modello di organizzazione dei sistemi informatici è quello delle **reti di calcolatori**. Una rete di calcolatori è un insieme di apparati **indipendenti**, che sono collegati tra di loro per potersi scambiare dati. Le **applicazioni per reti di calcolatori** sono organizzate sulla base del [modello cliente/servente] (client/server) e del concetto di [servizio] (offerto dalla rete). In Figura, è illustrato un esempio di rete di calcolatori con topologia a BUS, caratterizzata dal fatto che tutti i nodi o host della rete sono collegati tramite un canale unico chiamato BUS ("parlano" attraverso esso). Questa architettura è stata l'architettura di riferimento fino alla fine degli anni '90. I calcolatori in una rete di calcolatori: possono essere usati per eseguire applicazioni di uso individuale (exel, word\...); possono essere usati per usufruire di "servizi" basati sullo scambio di dati -- ad esempio, possono condividere risorse informatiche come stampanti e dischi; possono [scambiarsi] dati e messaggi. Intuitivamente, un **servizio** in una rete di calcolatori corrisponde a una modalità di [condivisione] di dati e/o risorse tra i calcolatori collegati alla rete. Ad esempio un database residente su un server di una rete di un'azienda. Tale nodo eroga il sevizio di mettere a disposizione i dati appartenenti al database. **INTERNET** Internet è la più grande rete di calcolatori, a diffusione mondiale. La connessione di un calcolatore a Internet può avvenire con diverse modalità: un calcolatore può essere collegato a Internet mediante una scheda di rete nell'ambito di una rete di calcolatori (Es. azienda) un calcolatore può essere collegato a Internet mediante un modem e una connessione telefonica di accesso remoto a un fornitore (provider) di servizi Internet (Es. connessione ad Internet di casa) In Figura 2 è illustrato un esempio di collegamento a Internet di una rete aziendale. Come si può notare, una sede aziendale centrale e le sue sedi periferiche sono collegate a Internet attraverso diverse tipologie di apparecchiature. Internet, in quanto rete di calcolatori, rende disponibile ai suoi utenti diversi servizi (ad esempio, il servizio di posta elettronica e il servizio di trasferimento di file). Il World Wide Web (o Web) è il servizio più diffuso di Internet e permette la condivisione e l'accesso a documenti che sono distribuiti sui calcolatori di Internet e collegati tra di loro. La condivisione di documenti su Internet e sul Web è possibile dal fatto che a ciascuna risorsa di Internet è associato un nome univoco. Possibili risorse su Internet e sul Web sono i calcolatori, gli utenti, i documenti ed il nome di una risorsa di Internet è l'indirizzo della risorsa, chiamato **URL** (Uniform Resource Locator). **BROWSER WEB** Per accedere a documenti sul Web, un calcolatore deve essere collegato a Internet e deve disporre di una applicazione chiamata **browser web** (Microsoft Internet Explorer o Google Chrome). Un browser web è una applicazione che permette l'accesso a documenti sul Web la quale comprende il linguaggio HTML. **HTML** HTML è l'acronimo di Hyper Text Markup Language ("Linguaggio di contrassegno per gli Ipertesti") e non è un linguaggio di programmazione. Si tratta di un linguaggio di markup (di 'contrassegno' o 'di marcatura'), che permette di indicare come disporre gli elementi all'interno di una pagina. Il punto forte di tale linguaggio è che esso è comprensibile al browser. Nato nel 1991, ad opera di Tim Berners-Lee. Il 4 aprile 2017 la Association for Computing Machinery annuncia di averlo insignito del premio Turing 2016 «per l\'invenzione del World Wide Web, del primo browser web e dei protocolli e algoritmi fondamentali che consentono al web di adeguarsi alle dimensioni.» Infatti «Il WWW è considerata una delle innovazioni informatiche più influenti della storia, usata da miliardi di persone ogni giorno come lo strumento principale per comunicare, informarsi, commerciare e numerose altre attività. Grazie a quanto inventato da Tim Berners-Lee, oggi è possibile accedere a documenti sul Web con diverse modalità: fornendo al browser l'indirizzo del documento --- scrivendolo nella barra dell'indirizzo; raggiungere un documento seguendo un collegamento ipertestuale nel documento correntemente visualizzato dal browser --- cliccando con il mouse sul collegamento Prendiamo come esempio di navigazione, l'accesso all'indirizzo www.virgilio.it. Ciò si ottiene mettendo la URL (=www.virgilio.it) sulla barra di navigazione del browser e spingendo il tasto invio. Dopodiché appare la pagina. La figura illustra ciò che vede l'utente (home page), mentre ciò che vede il browser sono le istruzioni di presentazione dei contenuti in linguaggio HTML. Cliccando sulla parola SPORT, si apre un'altra pagina. La parola alla quale viene associato un link è detta [hot word] (sono sulla home page, schiaccio su un titolo e mi porta su un'altra pagina) mentre li link associato è detto [àncora]. **NAVIGAZIONE IPERTESTUALE** Un **sito web** è un insieme di documenti gestiti da una organizzazione, memorizzati su uno o più calcolatori collegati a Internet, e che possono essere acceduti mediante il servizio Web. L'accesso a un sito web inizia solitamente da un documento chiamato [home page] del sito, la quale fornisce informazioni di carattere generale sul sito, contiene collegamenti alle parti principali del sito, che possono essere accedute mediante navigazione ipertestuale e contiene collegamenti ad altri siti correlati. Il World Wide Web è un vastissimo insieme di documenti. L'unità di informazione sul Web è il **documento** o **pagina**: Una pagina è composta solitamente da testi e immagini; Ciascuna pagina ha un indirizzo univoco; Il Web è un insieme di pagine; I documenti del Web sono organizzati mediante una **struttura ipertestuale**. Agli elementi (come parole, frasi e immagini) di una pagina possono essere associati dei collegamenti ad altre pagine. Un collegamento ipertestuale è composto dall'elemento della pagina a cui è associato il collegamento chiamato ancora (letto àncora), dalla pagina referenziata dal collegamento, mediante il suo indirizzo che viene visualizzato dal browser sulla barra di stato quando il cursore del mouse si trova sopra l'àncora. In Figura sotto un esempio di collegamenti tra pagine HTML. **COMUNICAZIONE** Lo scopo di una rete di calcolatori è quello di permettere la comunicazione (ovvero, lo scambio di dati) tra due o più calcolatori. Che cosa serve affinché i due calcolatori possano scambiarsi dati? Servono due cose importanti: (i) un canale fisico di comunicazione tra i due calcolatori, chiamata la componente hardware della comunicazione. Di essa fanno parte i MEZZI TRASMISSIVI; (ii) un insieme di regole che regolano lo scambio di dati, ovvero la componente software della comunicazione: PROTOCOLLI. Per la comunicazione tra calcolatori è possibile usare molti canali (mezzi) fisici di trasmissione: collegamento elettrico con cavi in rame - consente una velocità/capacità di trasmissione fino a 1 Gbit/s su una distamza di 100m; collegamento con fibra ottica multimodale - consente una velocità/capacità di trasmissione superiore al Gbit/s su una distanza di 1-10 km; collegamento con fibra ottica mono modale - consente una velocità/capacità di trasmissione superiore al Gbit/s su una distanza di 10-100 km; collegamenti che usano frequenze radio (es. wireless, UMTS, collegamenti via satellite, ecc.). **STORIA** La storia di Internet inizia con lo sviluppo di computer elettronici negli anni \'50 (1968). Concetti iniziali di reti estese hanno avuto origine in diversi laboratori di informatica negli Stati Uniti, nel Regno Unito e in Francia. Il Dipartimento della Difesa degli Stati Uniti ha stipulato contratti già negli anni \'60, incluso lo sviluppo del progetto ARPANET, diretto da Robert Taylor e da Lawrence Roberts. Nato durante il periodo di guerra fredda USA-URSS, in caso di attacco URSS le comunicazioni dovevano continuare. Il primo messaggio fu inviato su ARPANET nel 1969 dal laboratorio di informatica del professor Leonard Kleinrock all\'Università della California, Los Angeles (UCLA) al secondo nodo di rete presso lo Stanford Research Institute (SRI). Le reti a commutazione di pacchetto come la rete NPL, ARPANET, Merit Network, CYCLADES e Telenet, sono state sviluppate tra la fine degli anni \'60 e l\'inizio degli anni \'70 utilizzando una varietà di protocolli di comunicazione. Donald Davies dimostrò per la prima volta il cambio di pacchetto nel 1967 al National Physics Laboratory (NPL) nel Regno Unito, che divenne un banco di prova per la ricerca britannica per quasi due decenni. Il progetto ARPANET ha portato allo sviluppo di protocolli per l\'internetworking, in cui più reti separate potevano essere unite in una rete di reti. La suite di protocolli Internet (TCP / IP) fu sviluppata negli anni '70 e divenne il protocollo di rete standard su ARPANET, incorporando concetti del progetto francese CYCLADES diretto da Louis Pouzin. Nei primi anni \'80 la NSF ha finanziato l\'istituzione di centri nazionali di supercalcolo in diverse università e ha fornito l\'interconnessione nel 1986 con il progetto NSFNET, che ha anche creato l\'accesso alla rete ai siti di supercomputer negli Stati Uniti da organizzazioni di ricerca e istruzione. I fornitori di servizi Internet commerciali (ISP) hanno iniziato ad emergere alla fine degli anni \'80. ARPANET è stato dismesso nel 1990. Connessioni private limitate a parti di Internet da parte di entità commerciali ufficialmente emerse in diverse città americane verso la fine del 1989 e il 1990, e NSFNET è stato dismesso nel 1995, eliminando le ultime restrizioni all\'uso di Internet per trasportare traffico commerciale. Negli anni \'80, la ricerca al CERN in Svizzera condotta dallo scienziato informatico britannico Tim Berners-Lee ha portato al World Wide Web, collegando i documenti ipertestuali in un sistema informativo accessibile da qualsiasi nodo della rete. Dalla metà degli anni \'90, Internet ha avuto un impatto rivoluzionario su cultura, commercio e tecnologia, inclusa l\'ascesa della comunicazione quasi istantanea tramite posta elettronica, messaggistica istantanea, chiamate telefoniche VoIP (Voice Over Internet Protocol), interattiva a due vie videochiamate e World Wide Web con i suoi forum di discussione, blog, social network e siti di shopping online. La comunità di ricerca e istruzione continua a sviluppare e utilizzare reti avanzate come JANET nel Regno Unito e Internet negli Stati Uniti. L\'aumento delle quantità di dati viene trasmesso a velocità sempre più elevate su reti in fibra ottica che funzionano a 1 Gbit /s, 10Gbit /s o più. L\'acquisizione di Internet del panorama della comunicazione globale è stata quasi istantanea in termini storici: ha comunicato solo l\'1% delle informazioni che scorre attraverso reti di telecomunicazioni a due vie nell\'anno 1993, già il 51% entro il 2000 e oltre il 97% delle informazioni telecomunicate entro il 2007. Oggi Internet continua a crescere, spinto da quantità sempre maggiori di informazioni online, commercio, intrattenimento e social networking. Tuttavia, il futuro di Internet globale potrebbe essere modellato dalle differenze regionali nel mondo. Per tutti gli anni Settanta ARPAnet continuò a svilupparsi in ambito universitario e governativo. Nel 1974 venne adottato lo standard di trasmissione TCP/IP (Transmission Control Protocol/Internet Protocol) ed il progetto della rete prese ad essere denominato Internet. **Commutazione di pacchetto** La vera innovazione di Internet sta nel modo in cui i messaggi vengono trasmessi e la strada che seguono. Durante la guerra fredda, si voleva attivare un protocollo che, se una linea fisica fosse crollata, ad esempio per un attacco nucleare, i messaggi avrebbero avuto la possibilità di prendere comunque un'altra strada e arrivare a destinazione. Pertanto si hanno le due seguenti possibilità: **Commutazione di pacchetto** L\'idea di base consiste nel suddividere l\'informazione in entità elementari (i pacchetti) che poi vengono trasmesse e instradate individualmente e teoricamente ognuna in modo indipendente per essere poi riassemblate nel punto di destinazione. Se si danneggia una linea i singoli pacchetti prendono altre strade (routing). Internet è una rete a commutazione di pacchetto. **Commutazione di circuito** Viene mantenuta attiva una linea fisica per tutta la durata della comunicazione (se si danneggia la linea la comunicazione decade) In Figura la rete ArpaNet così com'era nel 1970. Come si può notare, tra un nodo ed un altro esistono varie strade possibili. 1989\--\> invenzione del web, protocollo HTTP, Tim Berners Lee 1990\--\> abbandono del progetto da parte dei militari che proseguono con la rete MilNet 1991\--\> Internet diviene globale **LE BASI** Internet é un insieme di reti che comunicano.\ Valgono i seguenti principi generali: Ogni nodo deve essere individuato in modo univoco (indirizzi di rete) -Indirizzo IP: Deve esistere un linguaggio comune di controllo comprensibile a tutti i nodi (protocolli di trasmissione) -TCP/IP: L'informazione è organizzata in blocchi (pacchetti), ciascuno trasmesso indipendentemente La rete è basata su centrali di smistamento che operano con criteri prestabiliti su ogni blocco (commutazione di pacchetto) Deve quindi esistere un insieme di regole per realizzare dei servizi (protocolli applicativi), HTTP, SMTP, FTP,... Deve esistere un unico sistema per identificare risorse in rete (URL), Protocollo HTTP **Router e routing** L'apparato di rete che gestisce l'instradamento dei messaggi (pacchetti) su Internet prende il nome di router. Esso è un dispositivo che si occupa di far comunicare tra di loro reti differenti ed eterogenee. È il dispositivo utilizzato per permettere l'accesso di tutti i computer di una rete LAN a un'altra rete (Internet). La CISCO è attualmente l'azienda leader nella fabbricazione di tali apparati. In particolare, il router è un vero e proprio computer dedicato al routing, necessita di un Sistema Operativo e dal punto di vista hardware è dotato di almeno due schede di rete. Il router può essere paragonato a un vigile o a un dipendente delle poste addetto allo smistamento di pacchi. Il router opera al terzo livello del modello ISO/OSI e si occupa della gestione dei pacchetti dati in arrivo o in uscita da uno o più nodi di una rete informatica (sia locale come una LAN, sia estesa geograficamente come Internet). Al suo interno, inoltre, sono archiviate le routing table o tabelle di indirizzamento, che permettono ai pacchetti in transito di conoscere la topografia della rete scegliere così il percorso più breve per raggiungere la destinazione a loro assegnata. I router, tra l\'altro, permettono di mettere in contatto e comunicazione anche due o più sottoreti, garantendo l\'interoperabilità del sistema a livello di indirizzamento dei pacchetti dati. In Figura 4 la struttura di un tipico pacchetto dati che i router instradano tra reti diverse. **PROTOCOLLO IP** IP= Internet Protocol Esso è formato da 32 bit suddivisi in 4 byte ed espressi secondo la regola decimale puntata (IPv4). Quindi sono disponibili 2\^32 numeri (circa 4 miliardi), sono però terminati! Struttura di indirizzo IP Ogni router che si affaccia su Internet ha un suo indirizzo (pubblico) obbligatorio: senza tale indirizzo non risulta possibile instradare i dati. Gli indirizzi IP sono suddivisi in 5 classi: A, B, C, D ed E. Solo le prime tre (A, B, C) possono essere utilizzate per assegnare indirizzi agli host. Le classi di indirizzi seguono la seguente tassonomia: Classe A da 0.0.0.0 a 127.255.255.255 Classe B da 128.0.0.0 a 191.255.255.255 Classe C da 192.0.0.0 a 223.255.255.255 Classe D da 224.0.0.0 a 239.255.255.255 Classe E da 240.0.0.0 a 255.255.255.254 Gli indirizzi a loro volta sono suddivisi in modo seguente: **Indirizzi pubblici** -- Sono gli indirizzi che si affacciano sulla rete Internet -- Univoci in tutto il pianeta -- Rilasciati dall'authority **Indirizzi privati** -- Indirizzi riservati per le reti locali -- Non possono essere utilizzati per affacciarsi direttamente alla rete pubblica internet Definiti dalla normativa RFC 1918. L'authority per il rilascio di indirizzi IP Pubblici è la Internet Corporation for Assigned Names & Numbers (ICANN): oversees the registration of domains. Il passaggio da indirizzo privato a pubblico lo fa il router. In Figura 8 è illustrato un esempio di architettura completa su Internet. In particolare si hanno due router con un indirizzo IP pubblico ciascuno. Tale indirizzo rappresenta l'identificativo con il quale le due reti private si affacciano su internet. Quindi su internet le due reti locali appaiono con un unico indirizzo. Sarà compito del router di gestire la rete interna attraverso una traduzione da indirizzo pubblico a privato. Come si può notare, le due LAN hanno gli stessi indirizzi IP, ma sono privati. Attualmente abbiamo IPv4 e IPv6. **INTRODUZIONE A OPEN OFFICE** OpenOffice è una suite di programmi utili per il lavoro d'ufficio su personal computer, progettato per vari sistemi operativi. Apache ha preso in mano lo sviluppo nel 2011. I programmi contenuti nella suite sono detti anche **moduli** perché sono parti dello stesso ambiente di lavoro, cooperano fra loro e presentano parti in comune. OpenOffice.org (OOo) identifica sia un prodotto software che una comunità di volontari che produce e supporta tale software. Poiché un marchio registrato "OpenOffice" esiste già, il nome corretto sia per il progetto open source sia per il software è "OpenOffice.org". Il formato nativo di OOo è OpenDocument, un formato standard aperto adottato da un numero crescente di enti governativi mondiali quale formato di file obbligatorio per la pubblicazione ed accettazione di documenti. OOo è in grado di aprire e salvare documenti anche in molti altri formanti, ivi compresi quelli usati da varie versioni di Microsoft Office. **COSA CI OFFRE OPEN OFFICE** **Writer** Writer è uno strumento ricco di funzioni per la creazione di lettere, libri, relazioni, bollettini, opuscoli ed altri documenti. È possibile inserire grafici e oggetti di altri componenti nei documenti Writer. Con Writer è possibile esportare file nei formati HTML, XHTML, XML, Adobe PDF (Portable Document Format) e Microsoft Word di diverse versioni. Permette inoltre di collegarsi al vostro client di posta elettronica. **Calc** Esso è come exel, ovvero un foglio di calcolo. Calc dispone di tutte le funzioni avanzate di analisi, creazione di diagrammi e scelte decisionali di un programma di calcolo avanzato. Dispone, tra l\'altro, di oltre 300 funzioni per calcoli finanziari, statistici e matematici. La funzione Scenario Manager fornisce analisi del tipo "what if" (cosa succede se). Con Calc è possibile creare diagrammi 2-D e 3-D integrabili in altri documenti OOo. È anche possibile aprire e lavorare con fogli di calcolo in formato Microsoft Excel e salvarli nel formato originale Excel. Calc è in grado di esportare i fogli di calcolo anche nei formati Adobe PDF e HTML. **Impress (presentazioni multimediali)** Impress fornisce tutti i più comuni strumenti di presentazione multimediale quali effetti speciali, animazione e strumenti di disegno. Il programma integra anche le funzioni grafiche avanzate dei componenti Draw e Math OOo. È possibile, inoltre, migliorare le presentazioni con gli effetti speciali di testo offerte da Fontwork, oltre che con clip audio e video. Anche Impress è compatibile con il formato Microsoft PowerPoint ed è anche in grado di salvare le vostre presentazioni in numerosi formati grafici, compreso Macromedia Flash (SWF, ormai in disuso). **Draw (grafica vettoriale)** Draw è uno strumento per il disegno vettoriale in grado di creare qualsiasi cosa, da semplici diagrammi o diagrammi di flusso fino alla grafica 3-D. La funzione Smart Connectors permette di definire punti di connessione personalizzati. Draw può essere usato per creare disegni da utilizzare in qualsiasi altro componente di OOo, ma anche per creare nuove clipart da aggiungere alla Gallery. Il programma è in grado di importare immagini in molti formati e salvarle in oltre 20 formati compresi PNG, HTML, PDF e Flash. **Base (database)** Base offre tutti gli strumenti necessari per lavorare con i database tramite un\'interfaccia utente semplice ed intuitiva. Con Base si possono creare e modificare formulari, rapporti, query, tabelle, viste e relazioni in modo da gestire i database come con gli applicativi analoghi più comuni. Base presenta molte nuove caratteristiche quali la possibilità di analizzare e modificare relazioni da una vista diagramma. Base integra HSQLDB quale motore standard di database relazionale. Il programma può anche elaborare documenti in formato dBASE, Microsoft Access, MySQL, Oracle o qualsiasi altro database compatibile con ODBC o JDBC. Base fornisce il supporto per un sottoinsieme del linguaggio SQL ANSI-92. **Math (formule)** Math è l\'elaboratore di formule ed equazioni di OOo. Può essere usato per creare equazioni complesse contenenti simboli o caratteri non disponibili nelle serie di caratteri standard. Anche se usato normalmente per creare formule in altri documenti, come file di Writer e Impress, Math è utilizzabile anche come strumento indipendente. Con Math è possibile salvare le formule nel formato standard Mathematical Markup Language (MathML) e inserirle in pagine web e altri documenti non creati da OOo. **VANTAGGI DI OPEN OFFICE** Ecco alcuni dei vantaggi di OpenOffice.org rispetto ad altre suite per ufficio, come ad esempio Office di Microsoft. -Nessun costo di licenza. OOo è liberamente utilizzabile e distribuibile da chiunque senza alcun costo. Molte caratteristiche, disponibili come add-on opzionali a pagamento in altre suite per ufficio (come l\'esportazione in formato PDF), sono invece disponibili gratuitamente in OOo. -Nessun costo nascosto attuale o futuro. -Open source. Grazie alle licenze open source di OOo è possibile distribuire, copiare e modificare il software come si desidera. -Multipiattaforma. OOo3 funziona su numerose architetture hardware e sistemi operativi diversi quali Microsoft Windows, Mac OS X, Linux e Sun Solaris. -Ampio supporto linguistico. L\'interfaccia utente di OOo è disponibile in oltre 40 lingue ed il progetto OOo offre correttori ortografici e di sillabazione e dizionari per oltre 70 lingue e dialetti. OOo fornisce anche supporto sia per lingue con disposizione testo complesso Complex Text Layout (CTL) sia per lingue con scrittura da destra a sinistra (RTL) quali Indi, Ebraico e Arabo. -Interfaccia utente condivisa. L\'interfaccia utente semplice ed intuitiva comune a tutti i componenti rende il loro utilizzo semplice da apprendere e padroneggiare. Dispone di molte procedure guidate. -Integrazione. I componenti di OpenOffice.org sono ben integrati tra di loro. Tutti i componenti condividono un correttore ortografico ed altri strumenti comuni, utilizzabili in modo omogeneo in tutta la suite. Ad esempio, gli strumenti per il disegno disponibili in Writer sono gli stessi presenti in Calc e, con funzionalità simili ma più avanzate, in Impress e Draw. Non è necessario sapere quale applicativo sia stato usato per creare un particolare file (per esempio, è possibile aprire un file Draw da Writer). -Granularità. Di solito, la modifica di un\'opzione si riflette su tutti i componenti della suite. In ogni caso, le opzioni di OOo possono essere configurate a livello di componente o addirittura a livello di singolo documento. -Compatibilità dei file. Oltre ai suoi formati nativi, OOo offre la possibilità di esportare in PDF e Flash, come pure il supporto per l\'apertura ed il salvataggio dei file nei formati più diffusi come Microsoft Office, HTML, XML, WordPerfect e Lotus 123. -Nessun vincolo esclusivo con il produttore. OOo3 utilizza per i file il formato OpenDocument, un formato XML (eXtensible Markup Language, rende i documenti più "piccoli") sviluppato come standard di settore da OASIS (Organization for the Advancement of Structured Information Standards). Tali file sono facilmente decomprimibili e leggibili con un qualsiasi elaboratore di testo e la loro struttura è aperta e liberamente consultabile. -Tutti hanno voce in capitolo. Migliorie, eliminazione di bug e date di pubblicazione sono decise dalla comunità. Anche voi potete entrare a far parte della comunità e contribuire allo sviluppo del prodotto che utilizzate. **COMPATIBILITÀ E FORMATI** I formati attualmente scelti dagli sviluppatori di OO si basano su **XML** (uno standard affermato sul web), il che garantisce la leggerezza dei file e la totale e libera leggibilità. OO ha un\'altissima compatibilità verso e da molti formati. In particolare è in grado di importare ed esportare da e verso **Microsoft Office** e StarOffice. Microsoft ha recentemente annunciato la compatibilità inversa. Dalla versione 3 (2008) è stata potenziata la compatibilità con il formato MDB di Microsoft Access e con il linguaggio VBA per le macro. Dalla versione 3.2 (2010) è migliorato il supporto per i font di tipo OpenType, per la visualizzazione, la stampa e l\'esportazione verso PDF. OO supporta Open Document Format (ODF), standard ISO che integra un linguaggio per le formule e un modello per i metadati basato sugli standard RDF e OWL del W3C. ODF è riconosciuto e adottato da un numero crescente di Paesi, e utilizzato già da molte aziende per le loro applicazioni. Per quanto riguarda le animazioni, si riescono a creare anche semplici file animati GIF. OO Writer può esportare in BibTeX (.bib), LaTeX 2e (.tex) e MediaWiki (.txt). Esistono molte estensioni per i formati più diversi. Da tutti i moduli di OO è possibile esportare in formato **HTML** o in formato **PDF**, due standard affermati in Internet. **Lezione 10,11 e 13: guardare slide** Per stampare: CTRL+P Per aprire file: CTRL+F12 Per chiudere: CTRL+ **CALC** Calc è il componente per fogli elettronici di OpenOffice. Un foglio elettronico simula un foglio di lavoro sul computer: è possibile inserirvi dei dati, dati numerici che poi possono essere elaborati per produrre dei risultati, essere organizzati o mostrati tramite diagrammi. Altrimenti, potete inserire i dati e usare Calc nella modalità \"What if\...\" (Cosa succede se\...), cambiando alcuni dati e osservando i risultati senza dover riscrivere l\'intero foglio elettronico o l\'intero foglio. Calc lavora con elementi chiamati fogli elettronici. I fogli elettronici consistono di un certo numero di singole schede, ognuna contenente un blocco di celle disposte in righe e colonne. Queste celle contengono i singoli elementi (testo, numeri, formule, ecc.) che preparano i dati alla visualizzazione e alla manipolazione. Ciascun foglio elettronico può avere molte schede e ciascuna scheda molte singole celle. Nella versione 3.0 di OO, ogni scheda può avere un massimo di 65.536 righe e di 1024 colonne. Error 503: Il valore viene diviso per 0 o il divisore si trova in una cella vuota Error 50: Manca una parentesi nella formula Error 509: Manca un operatore nella formula \#VALORE: Le celle sono vuote o contengono lettere e si vuole fare un calcolo \#RIF: Il riferimento usato ad una cella non è valido **IMPRESS** Impress è il programma di presentazione di diapositive di OpenOffice.org Con Impress si possono creare diapositive contenenti molti elementi diversi, come testo, elenchi puntati e numerati, tabelle, diagrammi, clip art e un\'ampia varietà di oggetti grafici. Impress include il controllo ortografico, i sinonimi, i modelli di testo predefiniti alcuni stili di sfondo molto gradevoli. La finestra principale si compone di tre parti: -il riquadro Diapositive -l\'area di lavoro -il riquadro delle Attività. Diverse barre degli strumenti possono essere visualizzate o nascoste durante la creazione della presentazione. Il Riquadro diapositive riporta le immagini in miniatura delle diapositive della presentazione, nell\'ordine in cui si vuole mostrarle. Facendo clic su una diapositiva la si seleziona e la si colloca nell\'Area di lavoro. Qui è possibile applicare le modifiche desiderate per quella specifica diapositiva. È possibile eseguire un certo numero di operazioni addizionali su una o più diapositive nel riquadro diapositive: Aggiungere le nuove diapositive in una qualsiasi posizione all\'interno della presentazione dopo la prima diapositiva. Contrassegnare una diapositiva così che non venga mostrata come elemento della presentazione. Eliminare dalla presentazione una diapositiva non più necessaria. Rinominare una diapositiva. Copiare o spostare il contenuto di una diapositiva ad un\'altra. È anche possibile eseguire le seguenti operazioni, anche se ci sono metodi più efficaci nel Pannello diapositive: Modificare la transizione della diapositiva che segue quella selezionata o dopo tutte le diapositive di un gruppo. Modificare la sequenza delle diapositive nella presentazione. Cambiare lo schema diapositiva. Modifica il layout della diapositiva per un gruppo di diapositive simultaneamente. Il Riquadro attività è costituito da cinque sezioni: **Pagine master**: Qui si definisce lo Stile pagina che verrà usato nella presentazione. Impress contiene 28 Pagine master predefinite (diapositive master). Una di queste - Default - è senza sfondo, mentre le altre ne hanno uno. **Layout**: Venti layout predefiniti vengono visualizzati. È possibile scegliere quello che si vuole, usarlo così com\'è oppure modificarlo a seconda delle vostre esigenze. **Struttura tavole**: Undici stili di tabelle standard sono disponibili in questo riquadro. È possibile inoltre modificare l\'aspetto di una tabella con le selezioni per mostrare o nascondere specifiche righe e colonne o di applicare un aspetto di fasce colorate a righe e colonne. **Animazioni personalizzate**: È disponibile un elenco di una varietà di animazioni per gli elementi selezionati. É possibile aggiungere l\'animazione a una diapositiva, e può essere modificata o eliminata in seguito. **Cambio diapositiva**: In questa sezione sono incluse 56 differenti transizioni compresa l\'opzione Nessuna transizione. È possibile selezionare la velocità della transizione (lenta, media, veloce). É possibile scegliere tra transizione automatica o manuale, e la durata della presentazione della diapositiva selezionata (solo per la transizione automatica). L\'Area di lavoro ha cinque schede: Normale, Struttura, Note, Stampati, e Ordine diapositive. Queste cinque schede sono chiamate **Pulsanti di visualizzazione**.

Use Quizgecko on...
Browser
Browser