




























































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
dispense con annessi appunti riguardo informatica 1 - laurea triennale in matematica
Tipologia: Dispense
1 / 138
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































































importante capire che la presenza del programma da eseguire è essenziale: un computer senza programmi non serve a niente. I computer attualmente usano una tecnologia elettronica basata sui transistor e sui circuiti integrati. Tale tecnologia consente di avere compo- nenti estremamente veloci, di piccolissime dimensioni e molto economiche. In passato i computer usavano componenti elettromeccanici e prima ancora puramente meccaniche. In futuro forse si useranno componenti di tipo quan- tistico che potrebbero consentire dimensioni molto ridotte e tempi di calcolo minori di quelli attuali. I dati elaborati dai computer moderni sono digitali, cioè rappresentati come sequenze di cifre, con un numero nito (e piccolo) di cifre possibili. La base comunemente usata nell'informatica è la base due, che usa solo due cifre: 0 e 1, che si chiamano bit (abbreviazione di BInary digiT). Due è il numero minimo di cifre utilizzabile in un sistema di numerazione, l'uomo usa la base dieci per motivi storici (probabilmente perché ha dieci dita), ma in un computer due cifre sono più semplici da trattare che dieci (o un altro numero). Uno degli esempi più convincenti della convenienza della base due è la scheda perforata, tra i più antichi sistemi di memorizzazione, ormai non più usato nell'informatica. Le cifre 0 e 1 possono essere rappresentate semplice- mente come assenza o presenza di un foro nella scheda: rilevare se la scheda è bucata in un punto è abbastanza facile. Se ci fossero altre cifre bisognerebbe usare fori di grandezza o forma diversa, rendendo complicata la lettura dei dati e molto probabile un'errata rilevazione. In molte altre situazioni due cifre possono essere rappresentate facilmente, mentre basi maggiori sono de- cisamente più dicili da trattare. E' evidente che i dati numerici sono facilmente esprimibili come sequenze di cifre. Se invece si vogliono trattare dati, come immagini, lmati, suoni, parlato, ecc., si devono usare particolari conversioni che trasformano i dati di luminosità, colore, frequenza ed altezza del suono, ecc. in forma digitale. Agli albori dell'informatica i computer trattavano quantità numeriche in forma analogica, ma poi la maggiore versatilità della forma digitale ha nettamente prevalso, soppiantando completamente i calcolatori analogici. Del resto in molti campi l'uso della tecnologia analogica si sta progres- sivamente sostituendo a quella digitale, ad esempio orologi, bilance e con- tachilometri che una volta erano solo analogici (usando lancette o altri stru- menti) adesso sono anche digitali. In maniera simile si può osservare il pas- saggio dai supporti analogici a quelli digitali nella musica (dischi in vinile e musicassette sostituite dai CD) e nei lm (DVD al posto di pellicole e videocassette).
0.2 Hardware e software
Un computer ha una serie di componenti siche, chiamate generalmente hardware, che sono studiate da una particolare branca dell'informatica, l'architettura degli elaboratori. L'insieme dei programmi utilizzabili in un computer si chiama invece software. Come si vedrà in seguito esistono due categorie di software: quello di base e quello applicativo. Chiaramente hardware e software hanno l'uno bisogno dell'altro e per certi versi si possono compensare. Ad esempio un'operazione può essere implementata via hardware (tramite un circuito logico, ad esempio) o via software (attraverso una funzione di libreria). La prima soluzione con- sente una maggiore ecienza, dato che l'operazione è eseguita direttamente dall'hardware, mentre la seconda deve essere scritta in termini di operazioni più elementari. Ma la seconda soluzione è decisamente più versatile: innanzitutto il soft- ware può essere aggiornato, modicato e inserito facilmente, l'hardware ovvi- amente no. Inoltre produrre nuove componenti software è possibile anche per un utente normale, mentre la produzione in proprio di nuove componenti hardware è un'impresa estremamente dicile, perché necessita di strumen- tazioni e materiali particolari.
L'architettura di Von Neumann è stata utilizzata per la prima volta negli anni '50 e da allora l'evoluzione dell'informatica è stata impressionante. Ciò nonostante i computer convenzionali odierni seguono tuttora questa architet- tura, anche se ogni singola componente ha avuto uno sviluppo notevole: processori sempre più veloci, memorie sempre più capienti, ecc.Monitor
Keyboard (^) disk driveFloppy
Hard disk drive
Hard disk controller
Floppy disk controller
Keyboard controller
Video CPU Memory controller
Bus
1.2 Il processore
Il processore è la parte del computer che esegue i programmi. Al suo interno comprende le seguenti componenti. I registri sono piccole memorie di un numero ssato di bit (comunemente 16, 32 o 64 bit). Un processore ha di solito un numero esiguo di registri, infatti tali memorie sono usate quasi esclusivamente per contenere i dati trattati in quel momento. L'unità di controllo (Control Unit) si occupa della gestione dell'esecuzione delle singole istruzioni. Le istruzioni sono codicate mediante un codice nu- merico univoco, il quale condensa in un unico numero il tipo dell'istruzione e gli operandi su cui operare. Di solito gli operandi sono essere costanti nu- meriche, registri o il contenuto di celle di memoria. Il programma da eseguire deve risiedere nella memoria centrale. L'unità di controllo svolge in maniera ciclica le seguenti tre fasi
Per sapere quale istruzione deve essere caricata nella fase di fetch, si usa un apposito registro chiamato Program Counter (di solito abbreviato in PC). Tale registro contiene l'indirizzo dell'istruzione corrente, la fase di fetch lo usa per ottenere il codice dell'istruzione da eseguire e poi lo incrementa in modo che la prossima fase di fetch prenderà l'istruzione successiva. L'unità logico-aritmetica (ALU, Arithmetic Logic Unit) si occupa dell'esecuzione delle operazioni aritmetiche su numeri interi o reali (ad- dizione, sottrazione, ecc.) e delle operazioni logiche su sequenze di bit (AND, OR, NOT, scorrimento a sinistra e a destra, ecc.). Tale unità si usa anche per copiare dati da un registro all'altro. L'insieme delle possibili istruzioni che un processore può eseguire si chiama linguaggio macchina. I suoi principali tipi di istruzione sono
indirizzo... 24 25 26 27 28 29 30 31 32 contenuto... 10 24 90 101 244 201 89 90 40 l'operazione di lettura della cella di indirizzo 26 produce come risultato il numero 90. L'operazione di scrittura ha come operandi un indirizzo a ed un numero d e modica il contenuto della cella a, memorizzando d al posto del con- tenuto che a aveva prima, il quale si perde denitivamente. Ad esempio nella porzione di memoria già vista in precedenza la scrittura del dato 44 sulla cella di indirizzo 26 produce come eetto indirizzo... 24 25 26 27 28 29 30 31 32 contenuto... 10 24 44 101 244 201 89 90 40 La RAM è molto veloce, ossia i tempi di risposta per le operazioni di lettura e di scrittura sono molto bassi e paragonabili a quelli delle altre operazioni del processore. I tempi di accesso si attestano sull'ordine dei nanosecondi. Inoltre i tempi di risposta della RAM sono costanti rispetto all'indirizzo da accedere (sia in lettura, sia in scrittura), pertanto la RAM è detta memoria ad accesso casuale in quanto non c'è nessuna dierenza in tempo di accesso quando si accede a celle scelte a caso piuttosto che scelte in modo sequenziale. I tempi di accesso dipendono invece dalla grandezza della memoria. Per ottenere tale velocità, la RAM utilizza una tecnologia puramente elet- tronica che la rende relativamente costosa (se paragonata agli altri tipi di memoria) e che soprattutto ha bisogno di un continuo passaggio di corrente. Infatti appena si toglie la corrente, la RAM perde completamente il proprio contenuto (volatilità). Questa caratteristica fa sì che la RAM possa essere usata solo come memoria temporanea, in cui memorizzare dati e programmi in corso, ma non come memoria a lungo termine. Anche se la volatilità della RAM è una caratteristica negativa, la sua presenza è comunque indispens- abile per avere un'esecuzione veloce dei programmi, infatti gli altri tipi di memoria non reggerebbero alla velocità di esecuzione del processore. Esistono due tipologie di RAM, quella statica e quella dinamica. La RAM statica è essenzialmente formata da ip-op, ovvero dei circuiti logici di tipo sequenziale che sono in grado di memorizzare un singolo bit. La RAM dinamica è invece dotata di piccoli capacitori, il bit 1 è rappresentato con il capacitore carico, mentre lo 0 è quando il capacitore è scarico. In entrambi i casi, per conservare il contenuto è necessario il passaggio di corrente. Un altro tipo di memoria centrale è la ROM (Read Only Memory), che consente solo operazioni di lettura, ma non di scrittura. Si tratta di una memoria pertanto di una memoria non volatile, ma che però non può essere usata che per memorizzare dati costanti e programmi ssi. Tale memoria
viene riempita in fase di costruzione e non può essere modicata. La memoria RAM è spesso aancata da una memoria simile, ma più piccola e più veloce, chiamata memoria cache. Questa memoria contiene una parte dei dati memorizzati nella RAM: il processore ogni volta che deve accedere alla memoria RAM, prima controlla se tali dati sono presenti nella cache. In caso positivo, il processore è in grado di accedere al dato in modo più veloce, poiché la cache è in grado di rispondere in tempi minori. In caso negativo, il processore deve ottenere i dati dalla RAM. Tale situ- azione si chiama cache miss e, quando si verica, i tempi di accesso sono maggiori rispetto all'uso della sola RAM, in quanto in un'operazione di let- tura/scrittura bisogna accedere sia alla RAM sia alla memoria cache. Però è possibile diminuire la probabilità di cache miss usando alcuni accorgimenti per memorizzare nella memoria cache le parti di RAM che sono maggiormente utilizzate. Ad esempio, quando la cache è piena e c'è bisogno di fare spazio per un nuovo dato, viene di solito eliminato il dato che non è utilizzato da più tempo. In questo modo la cache contiene solo i dati che vengono utilizzati nell'immediato. Un altro accorgimento consiste nel copiare nella cache non solo la la cella richiesta, ma anche una serie di celle di memoria contigue ad essa. In questo modo se il programma richiede successivamente una cella vicina a quella richiesta in precedenza, quest'ultima è già presente nella cache.
1.4 Le memorie di massa
Le memorie di massa superano il problema della volatilità della RAM e consentono di memorizzare in forma permanente i dati e in una quantità decisamente maggiore. Però hanno tempi di risposta molto più elevati (in termini di ordini di grandezza) e che, in molti casi, non sono nemmeno costanti. Le tre tipologie di memoria di massa che attualmente sono utilizzate si dierenziano in base alla tecnologia utilizzata per memorizzare i dati.
I dischi magnetici usati attualmente sono gli hard disk. Essi sono organizzati in pacchetti di dischi, alloggiati all'interno del computer, che possono avere una grande capacità (anche diversi centinaia o migliaia di GB). In un hard disk vi possono essere circa una decina di dischi. L'hard disk è di solito la memoria principale di massa, in cui risiedono il sistema operativo e i programmi installati, oltre che i dati più importanti.
nel caso peggiore la testina deve percorrere l'intero raggio del disco e si deve aspettare un intero giro. I tempi medi di seek e di latenza si attestano su qualche millisecondo, mentre il tempo di trasferimento richiede qualche microsecondo. Infatti, un hard disk moderno ha velocità di trasferimento intorno a 50-200 MB al secondo. Dal punto di vista sico, la lettura e la scrittura dei bit avvengono tramite interazioni magnetiche tra la testina e la supercie del disco.
I dischi ottici sono unità di memorizzazione rimovibili, sono formati da un disco ruotante e una testina che interagisce con esso. Nei dischi ottici sono sfruttate le proprietà ottiche delle superci, in particolare la riettività. I dischi ottici esistono in due formati principali: CD e DVD, i quali si dierenziano nella capienza, i primi contengono circa 700 MB, mentre i secondi arrivano tra i 4 e i 9 GB di dati. Esistono unità di sola lettura (lettori CD/DVD) e unità di scrittura (masterizzatori CD/DVD); queste ultime sono comunque in grado anche di leggere. La lettura di un CD o un DVD può essere svolta con l'ausilio di un raggio laser che colpendo la supercie del disco ne rivela la presenza di parti a potere riettente diverso (pit o land). Nella scrittura è necessario disporre di un supporto scrivibile e di utilizzare un raggio laser più potente.
Spiral groove
Pit Land
2K block of user data
A seconda delle possibilità di scrittura si distinguono varie categorie di dischi ottici
CD-ROM e DVD-ROM, dischi a sola lettura, il cui contenuto è mem- orizzato, durante la produzione del disco, e poi non è più modicabile;
CD-R e DVD-R, dischi che essere letti un numero imprecisato di volte, possono essere scritti una sola volta (tramite un masterizzatore), ma non possono però essere cancellati o riscritti altre volte;
CD-RW e DVD-RW, dischi che possono essere letti, scritti e cancellati più volte.
Una dierenzia ulteriore con i dischi magnetici è che i dischi ottici, oltre ad essere più lenti (un CD-ROM viene letto ad una velocità di 150 KB al secondo), sono anche maggiormente soggetti ad errori di lettura e di scrittura.
Le memorie ash sono essenzialmente delle memorie simili a delle ROM, che però possono essere cancellate e scritte mediante l'applicazione di opportune tensioni di corrente. La forma comunemente usata nei PC è quella delle cosiddette pen-drive (chiavette) che sono unità estraibili di capienza di decine di GB, ma sono anche utilizzate nelle memorie delle macchine fotograche e dei cellulari. Inoltre le memorie ash sono alla base dei cosiddetti SSD (Solid State Disc "dischi allo stato solido"), cioè delle memorie esterne abbastanza capi- enti da poter sostituire i dischi magnetici (ad esempio nei portatili di ultima generazione). Le memorie ash non hanno parti meccaniche in movimento e quindi hanno tempi di risposta molto bassi, migliori di quelle degli hard disk, anche se non sono ancora paragonabili alla velocità di risposta di una RAM. Inoltre le memorie ash sono costose, se paragonate a quelle degli hard disk (calcolando ovviamente il costo per singolo byte).
1.5 I dispositivi di I/O
I dispositivi di Input/Output (I/O) servono a far comunicare il computer con il mondo esterno (utente, altri computer, ecc.) e a farlo interagire con gli oggetti circostanti. In teoria l'elenco dei dispositivi di I/O è una lista aperta, in cui in ogni periodo vi sono nuove invenzioni (e anche dispositivi che diventano obsoleti, come il perforatore di schede perforate). Innanzitutto si distinguono le classe dei dispositivi di solo input, quella dei dispositivi di solo output, e quella dei dispositivi di input e output.
2.1 Tipologie di software
L'insieme dei programmi che si usano in un computer si chiama software e se ne distinguono due categorie: il software di base ed il software applicativo. Il software di base è un insieme di programmi che gestisce le varie componenti del computer in modo da renderle più semplici da utilizzare (sia per l'utente, sia per gli altri programmi). La parte principale del software di base è il sistema operativo. Il software applicativo è invece costituito da tutti quei programmi che sono utilizzati per scopi specici: word processor, fogli elettronici, nav- igazione su internet, graca, musica, videogiochi, ecc.
2.2 Il sistema operativo
Il sistema operativo è un insieme di programmi che si occupano della ges- tione dell'intero computer e può essere scomposto in vari moduli, ognuno dei quali si occupa di una funzione diversa. La parte principale del sistema op- erativo viene caricato in memoria e mandato in esecuzione all'accensione del computer (fase di bootstrap), mentre altre parti sono eseguite nel momento in cui servono. Il sistema operativo si frappone tra l'hardware e il software applicativo, secondo il seguente schema