Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'Informatica: Concetti Base e Storia, Appunti di Elementi di Informatica

Appunti del corso di informatica (corso base + parte turistica) per lingue e culture per il turismo

Tipologia: Appunti

2019/2020

In vendita dal 26/02/2020

arianna-monteggia-1
arianna-monteggia-1 🇮🇹

4.4

(41)

22 documenti

1 / 75

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA
3-10-19
PROGRAMMA
I PARTE
-Introduzione: i concetti base, le applicazioni dell’informatica
-Rappresentazione delle informazioni: numeri, testo, immagini, suoni
-Architettura dell’elaboratore (hardware, parti concrete): la CPU, la memoria, le unità periferiche, la
memoria secondaria
-Software: caratteristiche, programmi applicativi, il sistema operativo (software di base), uso di
Windows, programmi di videoscrittura e uso di Word, fogli elettronici
-Comunicazione tra elaboratori: le reti di calcolatori, il World Wide Web, uso di Internet Explorer
-Multimedialità: gli strumenti e i dispositivi
-Cenni di basi di dati
II PARTE
-Basi di dati
-Modello Entità-Associazione
-Approfondimenti sul modello relazionale
-Traduzione dal modello Entità-Associazione al modello relazionale
-SQL
-HTML (NON è un linguaggio di programmazione!)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b

Anteprima parziale del testo

Scarica Introduzione all'Informatica: Concetti Base e Storia e più Appunti in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA

PROGRAMMA

I PARTE

  • Introduzione: i concetti base, le applicazioni dell’informatica
  • Rappresentazione delle informazioni: numeri, testo, immagini, suoni
  • Architettura dell’elaboratore (hardware, parti concrete): la CPU, la memoria, le unità periferiche, la memoria secondaria
  • Software: caratteristiche, programmi applicativi, il sistema operativo (software di base), uso di Windows, programmi di videoscrittura e uso di Word, fogli elettronici
  • Comunicazione tra elaboratori: le reti di calcolatori, il World Wide Web, uso di Internet Explorer
  • Multimedialità: gli strumenti e i dispositivi
  • Cenni di basi di dati

II PARTE

  • Basi di dati
  • Modello Entità-Associazione
  • Approfondimenti sul modello relazionale
  • Traduzione dal modello Entità-Associazione al modello relazionale
  • SQL
  • HTML (NON è un linguaggio di programmazione!)

INTRODUZIONE E CONCETTI DI BASE

IL CALCOLO AUTOMATICO

Effettuare calcoli a mente o a mano è un’attività noiosa e incline all’errore. L'uomo ha sempre cercato di automatizzare dei processi di calcolo. Il primo antenato del computer è l’ abaco , la prima “macchina da calcolo” nota. I primi abachi risalgono al V millennio a.C. È un esempio rozzo di macchina calcolatrice con dei grossi limiti. I numeri che si vogliono sommare sono dati da input. La logica e la correttezza dell’operazione dipendono unicamente dall’utente. Per arrivare al primo vero step innovativo si deve risalire fino al XVII secolo d.C. e all’invenzione della Pascalina. Non è più l’utente ad avere la logica dell’operazione ma la macchina, una sorta di calcolatrice che permetteva di eseguire solo somme e differenze. La logica quindi è dentro la macchina. Moltiplicazioni e divisioni potevano essere calcolate mediante ripetizioni di addizioni e sottrazioni ma in questo caso era di nuovo l’utente ad avere il controllo. Si può provare ad affrontare il problema modificando la macchina per fare moltiplicazioni e divisioni, ma così se ne creano altri: radice quadrata, logaritmo… Il vero problema è che la logica che governa le operazioni è “cablata” nella macchina calcolatrice. La soluzione è di trattare tale logica come parte dell’input della macchina. Qual'è la differenza tra computer e calcolatrice? Qualunque cosa sappia fare la calcolatrice, ce l’ha cablata nei suoi circuiti, esce così, sa fare solo quello, non si possono aggiungere funzioni. Il computer invece esce che sa fare un tot di cose come la calcolatrice, ma poi dando il giusto algoritmo, si possono effettuare altri calcoli o altre cose in generale: il computer è programmabile. 4 - 10 - 19 Charles Babbage introdusse nel 1840 il primo esempio di macchina di calcolo “programmabile”: la macchina analitica. Babbage era molto avanti rispetto ai suoi tempi. La tecnologia non era ancora sviluppata a sufficienza (la macchina analitica avrebbe dovuto funzionare a vapore). Inoltre l’esigenza di automatizzare il calcolo non era forte all’epoca. Per questi motivi le sue idee non ebbero il successo che avrebbero meritato e furono dimenticare per quasi un secolo. Le idee di Babbage vennero “riscoperte” nella prima metà del ‘900 da Alan Turing e da John von Neumann. Alan Turing fu uno dei padri dell’Informatica, le sue numerose idee/congetture sono attuali anche oggi e introdusse la “ macchina di Turing ”. Questa macchina è un modello astratto del calcolatore, Turing riprese l’idea di Babbage. Si tratta di un “esperimento mentale”, non una macchina effettivamente costruibile. Questa macchina venne pensata perché può calcolare tutto ciò che è calcolabile in modo automatico. Alla base del suo funzionamento c’è la stessa idea alla base della macchina analitica di Babbage. John von Neumann ha descritto un calcolatore effettivamente costruibile. È ancora oggi il modello su cui si basano i computer moderni.

INTRODUZIONE ALL’INFORMATICA

Informatica = informazione automatica Insieme di processi e tecnologie che permettono creazione, raccolta, elaborazione, immagazzinamento e diffusione dell’informazione. Al centro c’è l’informazione. Le tecnologie informatiche hanno 3 funzioni principali: 1 - elaborare dati per ottenere informazioni significative; 2 - mantenere le informazioni elaborate per utilizzarle in combinazione con altre come dati di un nuovo processo di elaborazione (ho delle buone informazioni, le salvo, magari mi servono per altri problemi); 3 - organizzare le informazioni in una nuova forma per renderle più comprensibili, più interessanti o più utili. Il calcolatore, il computer NON “inventa” nuove informazioni.

IL CICLO DI ELABORAZIONE

Input → la fase di input consiste nell'immissione di dati nel computer. I dispositivi di input più comuni sono la tastiera, lo scanner, il mouse, il microfono e la telecamera. I dati da inserire possono essere testi, numeri, immagini o suoni.  Elaborazione → una volta inseriti nel computer i dati possono essere elaborati; ad esempio, si può paragonare, classificare o sommare numeri, formattare un testo o creare immagini e suoni.  Output → per vedere (o ascoltare) il risultato dell'elaborazione sono necessari dei dispositivi di output come lo schermo, la stampante e gli altoparlanti. Le informazioni ottenute possono anche essere sottoposte ad un'ulteriore elaborazione, ad esempio per integrare i suoni e le immagini in una presentazione multimediale.  Memorizzazione → i dati e i programmi al momento non utilizzati vengono memorizzati su appositi nastri o dischi in modo da poter essere recuperati in qualsiasi momento.  Distribuzione → i dati possono essere stampati e distribuiti, oppure trasmessi direttamente da un computer all'altro; un esempio è l'invio di documenti come allegati della posta elettronica o attraverso un sito Web.

TERMINOLOGIA

COMPUTER

  • elaboratore: dispositivo in grado di eseguire automaticamente una serie di istruzioni
  • elettronico: usa componenti elettronici
  • digitale: elabora informazioni binarie (0 e 1) HARDWARE
  • componente fisica del sistema informatico
  • computer, stampanti, monitor, tastiere, mouse, moder, cavi telefonici SOFTWARE
  • Insieme di programmi che fanno funzionare l’hardware.
  • Due categorie principali di software:  sistemi operativi → permettono all'elaboratore di svolgere le proprie funzioni (software di base)  programmi applicativi → svolgono i compiti più vari, in funzione delle esigenze dell'utenza
  • Algoritmo (aritmetica elementare formulata dal matematico persiano medievale al-Khwarizmi)
  • Insieme delle operazioni necessarie a risolvere un problema (ricetta, istruzioni di montaggio lego)
  • Esistono vari algoritmi per risolvere lo stesso problema
  • Un programma in genere realizza numerosi algoritmi

TIPI DI DATO

  • Numeri
  • Testi, caratteri
  • Grafici
  • Fotografia
  • Suoni
  • Filmati RAPPRESENTAZIONE DELLE INFORMAZIONI ALL'INTERNO DEL COMPUTER

RAPPRESENTAZIONE DELLE INFORMAZIONI

I computer non elaborano solo i numeri, ma anche altri tipi di dati (testi, immagini, suoni, filmati…) È sufficiente che l’informazione sia rappresentabile in modo DIGITALE. All’interno della macchina abbiamo informazioni digitali.

TIPI DI SEGNALI

SEGNALI ANALOGICI

  • insieme continuo di valori, trasmettono molte informazioni
  • sensibili alle interferenze
  • es: variatore di luminosità SEGNALI DIGITALI (dentro al computer)
  • insieme discreto di valori, ad esempio due stati (0 e 1)
  • semplici da distinguere (non infiniti)
  • es: interruttore on/off Il computer è un sistema digitale, all’interno è come se ci fossero un sacco di interruttori.

DIGITALE E ANALOGICO

VANTAGGI DEL DIGITALE:

  • semplice
  • non ambiguo (non sensibile alle interferenze)
  • riproducibile senza errori

IL BIT

Il segnale BINARIO è un segnale discreto su due valori, un elemento di base per rappresentare le informazioni. BIT = Binary digIT (cifra binaria)

RAPPRESENTAZIONE DELLE INFORMAZIONI

Un bit può assumere due valori (0 e 1), quindi con un bit possiamo rappresentare due informazioni. Es: sì/no, on/off, su/giù, vero/falso, superato/non superato

Ci sono un sacco di fenomeni che servono a realizzare gli elementi del computer che hanno delle caratteristiche (es. videocassette: supporto magnetico su cui viene impressa una polarizzazione). Il computer ha interruttori e circuiti pilotati da questi interruttori che hanno varie funzioni. A seconda della sequenza degli interruttori (acceso-spento) accedo a varie funzioni. Il computer ha un sacco di risorse ma sono FINITE (non posso rappresentare segnali analogici che sono infiniti, o il numero 2,3 periodico). Il computer deve approssimare, non può fare altrimenti. I segnali analogici sono un insieme continuo di valori e sono sensibili alle interferenze: quando ci sono più segnali tutti questi valori tendono a fare pasticci. Digitale = la luce la accendo o la spengo → ci sono due valori, 0 e 1, quindi si parla di un insieme discreto di valori che rende tutto più semplice. Posso facilmente riprodurlo senza errori.


Abbiamo discusso di rappresentazione binaria di informazioni "generali". Ora vedremo come rappresentare tramite bit numeri, testi, immagini, filmati, suoni.

RAPPRESENTAZIONE DEI NUMERI

NUMERO: concetto che rappresenta una quantità NUMERALE: simbolo che rappresenta una quantità (es: 6, sei, VI, six sono numerali che rappresentano tutti lo stesso numero) I numerali differiscono dai numeri come le parole differiscono dai concetti che rappresentano.

IL SISTEMA DI NUMERAZIONE DECIMALE

  • decimale: "alfabeto" di 10 cifre di base: 0, 1, 2, …, 9 con cui posso comporre i numerali.
  • numerale 245: 2 centinaia, 4 decine, 5 unità, cioè: 2 volte 10 alla seconda, 4 volte 10 alla prima, 5 volte 10 alla zero → il sistema decimale è un sistema posizionale La posizione che pesa di più è quella a sinistra. Il numerale 3704 in notazione decimale (o in base 10) rappresenta la quantità 3704 (numerale).

IL SISTEMA DI NUMERAZIONE BINARIO

  • binario: alfabeto di 2 cifre di base: 0 e 1
  • il numero di cifre coincide con il numero di bit
  • numerale 101 con base 2 1 volta 2 alla seconda, 0 volte 2 alla prima, 1 volta 2 alla zero (corrispondono a centinaia, decine e unità) 6245: 6 x 10³ + 2 x 10² + 4 x 10¹ + 5 x 10⁰ quindi 6 x 1000, 2 x 100, 4 x 10, 5 x 1 Al posto di 10 dobbiamo mettere 2 perché il nostro alfabeto è 0 e 1. Il 2 non è un simbolo binario 1001 ha lo stesso significato di 6245; è un numerale ma ha base 2 Il primo 1 sta nella quarta posizione, l'esponente è 3 ma non è potenza di 10 ma di 2, quindi: 2³ Primo zero: 2² Secondo zero: 2¹ Ultimo 1: 2⁰ 1x2³ + 0x2² + 0x2¹ + 1x2⁰= 8 + 0 + 0 +1 = 9 Così conosciamo un altro numerale per rappresentare 9 (9 ha base 10).

Notazione posizionale : la posizione di una cifra in un numerale indica il suo peso in potenze di 2. I pesi sono: 2⁰ = 1 (posizione 0) 2¹ = 2 (posizione 1) 2² = 4 (posizione 2) 8 lampadine. la 2 e la 4 sono accese = 6 Rappresentazione binaria: Il numerale 10010011 con base 2 in notazione binaria (o in base 2) rappresenta la quantità: 10010011 con base 2 (numerale) = 1 x 2⁷ + 0 x 2⁶ …. + 1 x 2⁰ = 128 + 0 + 0 + 16 + 0 + 0 + 2 + 1 = 147 (numero) Numeri decimali e binari 0 ----- 0 1 ----- 1 2 ----- 1 0 3 ----- 1 1 4 ----- 1 0 0 5 ----- 1 0 1 6 ----- 1 1 0 7 ----- 1 1 1 8 ----- 1 0 0 0 9 ----- 1 0 0 1 10 ---- 1 0 1 0 → 1=8, 0=4, 1=2, 0=1 → ho acceso due interruttori (quelli con 1), quindi ho 8+2= 2, 4 e 8 hanno la stessa struttura (1 seguito da 0) perché sono multipli di 2. È come un sistema con dei contagiri, c'è una rotellina che va più veloce (va da 0 a 9) e quando finisce il suo giro, fa scattare l'altro contagiri. 01 02 03 04 05 06 07 08 09 Ora il 9 fa scattare l'altro contagiri per andare avanti con l'elenco numerico 10 11 12 etc fino a quando arriva a 19 e fa scattare l'altro contagiri su 20, 21, 22… Con il sistema binario il contagiri cambia più rapidamente: 00 01 poi scatta: 10 11

MASSIMO NUMERO RAPPRESENTABILE

Il numero più grande esprimibile con un dato numero di cifre (decimali, binarie…) NON coincide con il numero di informazioni rappresentabili. Max numero rappresentabile col sistema decimale: 999 (sarebbe 1000 - 1)

Se tutti gli altri quadratini fossero 0 il risultato sarebbe 256. Il numero 341 è dispari, e i numeri dispari finiscono con 1 , e inserendo questo valore arriviamo a 257 (metto l'uno nell'ultima casella a dx). Nella seconda casella metto 0 perché sennò 256 + 128 sarebbe più grande di 341. Nella terza casella che vale 64 metto 1, così prendo il valore. Nella quarta casella metto 0 Nella quinta casella con valore 16 mettiamo 1, in corrispondenza di 4 mettiamo 1 La stringa binaria finale sarà: 1 0 1 0 1 0 1 0 1

RAPPRESENTAZIONE DEI CARATTERI

CODICE ASCII → convenzione, a una determinata sequenza di bit corrisponde un carattere. Per rappresentare i caratteri, occorre stabilire una convenzione per la corrispondenza tra configurazione di bit e carattere. Usa i 7 bit meno significativi di un byte (2⁷ = 128 diversi caratteri rappresentabili) Rappresenta, oltre ad altri caratteri, le lettere maiuscole e minuscole, i segni di punteggiatura, i numeri, i caratteri speciali, lo spazio. 11 - 10 - 19 I caratteri sono disposti in ordine di numero , ma è solo una convenzione. L'ordine alfabetico fa riferimento a questa tabella (ecco perché troviamo prima le parole che iniziano con una lettera maiuscola e poi quelle che iniziano con una lettera minuscola). Inoltre i numeri vengono prima rispetto alle lettere (si può osservare questo fenomeno nella playlist dell'mp3). Nella tabella non sono presenti le vocali accentate o le lettere delle altre lingue (es. la n con la tilde). Con 7 bit posso rappresentare solo 128 informazioni. Come risolvere questo problema? Uso il CODICE ASCII ESTESO. In questo caso abbiamo 8 bit e quindi 256 caratteri, 128 dei quali sono quelli di prima. Gli altri 128 sono dati dall'aggiunta di uno 0 finale.

DECODIFICA ASCII

A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte).

CODIFICA ASCII DEI NUMERI

Se chiediamo al computer di ordinare alfabeticamente (lessicograficamente) le stringhe (sequenze di caratteri) "3" e "20431", le metterà in quest'ordine:

  1. 20431
  2. 3

Perché 2 viene prima di 3, anche se è seguito da altri numeri → si tratta di codici non di numeri 256 caratteri dell'ASCII esteso sono insufficienti per alcuni sistemi di scrittura (per esempio quello cinese o giapponese). Quindi non esiste un unico ASCII esteso, ma uno o più diverso per ogni lingua. Soluzione: definire uno standard (cioè una convenzione) che utilizzi più bit comprenda tutti i sistemi di scrittura

UNICODE E ISO/IEC 10646

Due standard (per i nostri fini) equivalenti Coprono (quasi) tutti i sistemi di scrittura (e le lingue) del mondo. Vengono utilizzati fino a 4 byte per ogni carattere (glifo). 8x4 bit = 32 bit per ogni carattere 2³² (oltre 4 miliardi) possibili caratteri rappresentabili Attualmente rappresentati oltre 98000 caratteri. UTF (Unicode Transformation Format) definisce come codificare il numero di un carattere Unicode come sequenza di bit. UTF- 8 : più efficiente, occupa poco spazio ma ci sono più scaglioni

  • alcuni caratteri codificati con 8 bit, altri con 16, pochi con 32
  • compatibile con ASCII: i caratteri codificati con 8 bit coincidono con i caratteri ASCII
  • è la più usata per e-mail e pagine web UTF- 16 :
  • alcuni caratteri codificati con 16 bit, pochi con 32
  • usata internamente da Windows

CODIFICA DELLE IMMAGINI

Vi sono varie tecniche utilizzate per memorizzare in modo digitale un'immagine, e poi elaborarla. Processo di digitalizzazione: sequenza di 0 e 1 tramite una convenzione Per semplificare, immaginiamo di dover codificare un'immagine in bianco e nero (dual tone, con soli due colori). Si pone una griglia sopra la immagini, righe e colonne poste a una distanza costante tra loro Es. 4 righe e 7 colonne Come viene codificata? Dobbiamo arrivare a una serie di bit. Ogni sezione di griglia è un pixel (picture element) = c'è una prevalenza di immagine (1) o l'immagine non c'è (0)? Più sono i pixel e più e migliore la qualità dell'immagine. I pixel li leggo da sinistra a destra, dal basso verso l'alto (per convenzione)→ così ottengo la sequenza di bit che rappresenta la figura. Non sempre il contorno della figura coincide con le linee della griglia: digitalizzando un'immagine si ha sempre un' approssimazione dell'immagine stessa.

  • Uso una scrittura differente per occupare meno spazio.
  • Formati compressi lossless: gif, tiff, png
  • Es. dal cd audio all'mp 2)Tecnica lossy → causa invece perdita di informazione
  • Il processo di comprensione "scarta" alcuni dati.
  • Quando si decomprime l'immagine, questa è diversa dall'originale: è degradata in qualità.
  • A quale scopo? La compressione lossy permette di risparmiare molto più spazio della lossless.
  • Formati compressi lossy: jpeg, png

CODIFICA DELLE IMMAGINI IN MOVIMENTO

  • Codifica di sequenze di immagini, dette fotogrammi o frame.
  • Visto lo spazio elevato richiesto, occorrono tecniche di memorizzazione efficienti: per esempio, sono memorizzate solo le differenze tra un fotogramma e l'altro
  • Esistono vari formati, soprattutto lossy: mpeg, divx, avi (microsoft), quicktime (apple) → memorizzano anche i suoni

CODIFICA DEI SUONI

  • Il suono è uno dei mezzi principali di comunicazione
  • Anche i suoni possono essere codificati in digitale
  • Un suono è un'onda di pressione che si ha in presenza di un mezzo (l'aria, l'acqua)
  • Quando un suono viene rilevato dall'orecchio o da un microfono, viene trasformato in uno stimolo
  • o segnale - elettrico
  • Durata, intensità e variazione nel tempo della pressione dell'aria sono le quantità fisiche che rendono un suono diverso da ogni altro.
  • Sull'asse delle ascisse (x) viene rappresentato il tempo Sull'asse delle ordinate (y) viene rappresentata la variazione di compressione corrispondente al suono stesso
  • Si rappresenta quindi l'intensità del suono in funzione del tempo-
  • Tempo e intensità
  • Problema: passare da rappresentazione analogica a rappresentazione digitale L'onda può assumere infiniti valori. In un arco di tempo limitato posso avere infiniti valori.
  • Idea: si effettuano dei campionamenti sull'onda (cioè si misura il valore dell'onda a intervalli costanti nel tempo) e si codificano in forma digitale le informazioni (numeriche) estratte da tali campionamenti. Si effettua un'approssimazione dell'onda.
  • Il telefono usa 8000 campionamenti al secondo (8 kHz)
  • I CD audio usano 44100 campionamenti al secondo (44,1 kHz) → in un secondo di suono ci sono 44100 campioni → si ha l'impressione che l'audio sia continuo Hz: inverso del secondo (1/secondo) La frequenza del campionamento incide sulla qualità della riproduzione dell'audio.
  • Analogamente alle immagini, maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà dell'immagine.
  • Discretizzando esclusivamente sul tempo, abbiamo ancora campioni analogici (l'ampiezza è un valore analogico).
  • Occorre discretizzare anche l'ampiezza di ogni campione, per poterla esprimere con un numero binario
  • A ogni livello viene assegnata una sequenza binaria (diversa per ognuno) Nell'esempio (slide), non tutte le combinazioni di 4 bit sono visualizzate (e usate).
  • Ogni campione viene approssimato al livello più vicino, al valore indicato con il cerchio.
  • Ogni campione sarà quindi espresso dal numero binario corrispondente al livello più prossimo. 17 - 10 - 19
  • La sequenza dei valori numerici ottenuta dai campioni è quindi digitalizzata. Si ha una discretizzazione in tempo e una sul valore.
  • Cd musicali: 44100 campionamenti al secondo, 16 bit per campione
  • Diversi formati: mov,wav, mpeg (mp3), avi, midi
  • Formato midi codifica le note e gli strumenti che devono eseguirle: solo musica, non voce
  • Formato mp3: lossy, molto diffuso e molto efficiente

RAPPRESENTAZIONE DELLE INFORMAZIONI

La sequenza di bit 01101001 rappresenta un numero, un testo, un'immagine o un suono? Impossibile dirlo! Una sequenza di bit non ha significato di per sé. Un metadato (ad es. il formato del file) deve indicare cosa si sta rappresentando. La sequenza di prima potrebbe essere:

  • il numero: 105
  • carattere ASCII: i
  • immagine in b / n 4x2 pixel Se cambio l'estensione a un file cosa succede? Prendo la mia immagine fatta con la fotocamera e la metto sul pc. Posso cambiare il nome del file e cambiare l'estensione e far sì che il computer interpreti l'immagine come un testo (da jpeg a dxd) ma non cambia nulla, la sequenza di bit dentro al file rimane la stessa (il pc fa solo un lavoro diverso).

ANALIZZIAMO LE COMPONENTI

LA MEMORIA PRINCIPALE

RAM

La ram al suo interno ha programmi e dati per l'esecuzione dei programmi stessi. RAM sta per Random Access Memory o memoria principale (principale perché è posta sulla scheda madre insieme al processore).

  • Insieme alla CPU è una componente fondamentale del calcolatore.
  • Permette di memorizzare sia il programma che i dati.
  • Fisicamente è formata da componenti elettronici (transistor, resistenze, condensatori) miniaturizzati.
  • Ogni unità elementare può trovarsi a due diversi livelli di tensione elettrica (o carica del condensatore): ecco il corrispettivo fisico del bit.
  • È strutturata in una sequenza di celle (o locazioni) di memoria. Ogni cella memorizza un byte. Le celle sono numerate in sequenza: indirizzo.
  • Quali operazioni possiamo compiere sulla memoria?
    1. lettura del contenuto di una cella
    2. scrittura in una cella
  • Per leggere e scrivere in una cella è necessario conoscerne l'indirizzo.
  • Es. una RAM di 65536 (2 alla 16) celle di un byte ciascuna. Quanti bit per esprimere un indirizzo compreso tra 0 e 65536? 16

DIMENSIONI DELLA MEMORIA

  • Lo spazio di indirizzamento è l’insieme o il numero delle celle indirizzabili direttamente
  • Il numero di celle indirizzabili è una potenza di 2; con:
  • 16 bit si indirizzano 216 = 65.536 celle
  • 32 bit si indirizzano 232 = 4.294.967.296 celle …
  • numero di celle indirizzabili = numero di informazioni rappresentabile con un certo numero di bit
  • L'unità di misura della memoria è il byte. Si usano dei multipli:
    1. Kilobyte (KB) = 1024 byte (2 alla 10 byte)
    2. Megabyte (MB) = 1024 KB (2 alla 20 byte)
    3. Gigabyte (GB) = 1024 MB (2 alla 30 byte)
  • Quindi: con 16 bit si indirizzano 64 KB di memoria con 32 bit si indirizzano 4 GB di memoria Un sistema operativo (con relativa CPU) a: •32 bit (es. Windows XP, Vista, 7 a 32 bit, Mac OS X Leopard, …) indirizza 2 alla 32 byte, quindi al massimo 4 GB di memoria •16 bit (es. MSDOS) indirizza 2 alla 16 byte, quindi al massimo 64 KB di memoria •64 bit (es. Windows XP, Vista, 7 a 64 bit, Mac OS X Snow Leopard, Lion …) indirizza 2 alla 64 byte, quindi al massimo 16 exabyte, cioè circa 16 miliardi di miliardi di byt

LA RAM

Random Access Memory (RAM), memoria ad accesso casuale. Perché si chiama "ad accesso casuale"?  Si può accedere direttamente alle varie celle una volta noto il loro indirizzo.  Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza  Il termine "random" (casuale) indica proprio il fatto che non vi sono differenze nell'accesso alle varie celle della memoria

  • La RAM è veloce. Il tempo di lettura/scrittura di una cella è compreso - in media- tra 5 e 30 nanosecondi (miliardesimi di secondo = 10 alla - 9 secondi)
  • La RAM è volatile. Formata da componenti elettronici, se viene tolta l'alimentazione anche per un breve periodo di tempo (frazioni di secondo) tutto ciò che contiene viene perso (e la macchina deve ripartire).
  • La RAM è relativamente costosa.

LA ROM

  • Read-Only Memory, memoria in sola lettura.
  • Non può essere modificata (a meno che non sia di un tipo particolare, EPROM)
  • Non è volatile
  • Veloce quasi quanto la RAM
  • Solitamente utilizzata per memorizzare programmi e dati necessari all'avvio dell'elaboratore (istruzioni di base)
    1. programmi di bootstrap (avvio dell'elaboratore)
    2. configurazione del sistema

MEMORIA CACHE

Stesse proprietà della RAM, ma:

  • più veloce (ma più piccola e costosa) della RAM
  • localizzata tra la CPU e la RAM
  • memorizza i dati di uso più frequente, evitando alla CPU di doverli recuperare tutte le volte dalla RAM.
  • influisce pesantemente sulle prestazioni e sul costo della CPU
  • dimensioni tipiche sono 512 KB, 1 MB, 2 MB

CPU: LA CONTROL UNIT (CU)

L'esecuzione (passo execute) comporta l'invio di comando opportuni all'unità relativa:

  • calcoli --- arithmetic logic unit
  • lettura/scrittura dati --- memoria
  • acquisizione/stampa La frequenza con cui è eseguito il ciclo di fetch-decode-execute è scandita dal clock (orologio interno): ad ogni impulso di clock la CU esegue un ciclo La velocità di elaborazione di una CPU dipende dalla frequenza del suo clock Es: 2.8 GHz, cioè 2 miliardi e 800 milioni di cicli al clock 2) CPU: LA ARITHMETIC LOGIC UNIT (ALU)
  • Esegue le operazioni di tipo aritmetico (ad es. somme) e logico (ad es. confronti)
  • Preleva gli operandi dei registri e deposita il risultato delle operazioni in uno o più registri 3) CPU: I REGISTRI
  • Piccole celle di memoria con tempi di accesso molto più bassi rispetto alla memoria primaria
  • mantengono le informazioni necessarie per eseguire l'istruzione corrente
  • hanno dimensione di 16,32 o 64 bit (da cui CPU A 16,32 o 64 bit)
  • sono in numero molto limitato (10, 20, 64 o 128) visto che sono all'interno della CPU
  • si dividono in registri I REGISTRI GENERALI sono in numeri ridotto: 8,16,32,64,128… in funzione dell'architettura
  • sono usati come celle di memoria temporanea; contengono gli operandi e i risultati delle istruzioni in esecuzione
  • in alcune architetture alcuni registri hanno funzioni privilegiate, ad es. l'accumulatore in genere contiene il risultato delle operazioni CPU: IL PROGRAM COUNTER (PC)
  • È un registro speciale
  • Contiene l'indirizzo in memoria principale della prossima istruzione da eseguire
  • quando un programma viene avviato, l'indirizzo della prima istruzione viene caricato nel Program Counter
  • All'esecuzione di un'istruzione il PC viene modificato per contenere l'indirizzo della prossima istruzione da eseguire (non necessariamente quella immediatamente successiva) CPU: L'INSTRUCTION REGISTER (IR)
  • E' un registro speciale
  • contiene l'istruzione attualmente in esecuzione
  • La CU legge l'istruzione contenuta in IR e la esegue CPU: ESEMPIO DI CICLO FETCH-DECODE-EXECUTE
  • Vediamo come le componenti della CPU interagiscono nell'esecuzione di un programma composto da 2 istruzioni esemplificative ADD 48, 4, che somma i numeri e mette il risultato nell'accumulatore JUMP 1, che salta all'indirizzo 1, incondizionatamente

OUT 3, Acc, che effettua l'output del valore contenuto nel registro accumulatore verso il dispositivo 3 (per es. la stampante), cioè stampa il carattere 4 Ogni istruzione viene eseguita in un ciclo di fetch-decode-execute 1)il registro PC contiene l'indirizzo 5, quindi viene letta da RAM l'istruzione all'indirizzo 5 2)e memorizzata nel registro IR 3)La Control Unit incrementa l'indirizzo contenuto nel registro PC in modo da eseguire in seguito l'istruzione eccessiva 4)La Control Unit decodifica l'istruzione ADD 48, 5)... e, dato che si tratta di un'operazione aritmetica, dà comando alla Arithmetic Logic Unit di eseguire l'istruzione ADD 48, 6)La ALU memorizza il risultato nel registro generico Accumulatore 7)Il registro PC contiene l'indirizzo 6, quindi viene letta da RAM L'istruzione all'indirizzo 6 8)e memorizzata nel registro IR

  1. la CU incrementa l'indirizzo contenuto nel registro pc, in modo da eseguire in seguito l'istruzione successiva 10)la CU decodifica l'istruzione JUMP! 11)e dato che si tratta di un'istruzione di salto, la esegue memorizzando nel registro pc l'indirizzo della prossima istruzione da eseguire
  2. il registro pc contiene l'indirizzo 1, quindi viene letta da RAM l'istruzione all'indirizzo 1
  3. e memorizzata nel registro IR 14)la Control Unit incrementa l’indirizzo contenuto nel registro PC, apprestando la CPU all’esecuzione dell’istruzione seguente 15)la Control Unit decodifica l’istruzione OUT 3,Acc … 16)e dato che si tratta di un'istruzione di output, la esegue dando comando all'unità di output

MEMORIA SECONDARIA

  • Limitazioni della RAM: poco capiente, costosa, volatile --- è necessario usare la memoria secondaria Caratteristiche della memoria secondaria:  capiente  (relativamente) poco costosa  non volatile  lenta!
  • La CPU può eseguire (ed elaborare) esclusivamente programmi (e dati) che risiedono in memoria principale.
  • I programmi e i dati risiedono in memoria secondaria
  • Perciò devono essere copiato in memoria principale
  • Quando si esegue un programma, il sistema operativo lo copia da memoria secondaria (es. hard disk) in RAM: l'operazione si chiama loading o caricamento. È composta da:  supporti di memorizzazione --- componente fisico in cui vengono immagazzinati i dati (es DVD)  dispositivi di memorizzazione --- leggono/scrivono dati dal/sul supporto di memorizzazione (es. lettore DVD)