Scarica Fondamenti di Informatica e più Appunti in PDF di Fondamenti di informatica solo su Docsity! INFORMATICA MODULO 1 24/09 CALCOLATORE: L’informatica è la scienza che studia l’elaborazione delle informazioni e le sue applicazioni; più precisamente l’informatica si occupa della rappresentazione, dell’organizzazione e del trattamento automatico dell’informazione. Dati e informazioni sono la stessa cosa? Informazione: risultato dell’elaborazione dei dati in ingresso che sono associati a un determinato contenuto e hanno significato. Dato: è l’elemento di partenza, è la rappresentazione numerica/simbolica di una misura o di una caratteristica di un fenomeno, evento, oggetto, ecc. Esso viene codificato. A livello informatico codificare significa parlare di bit. I dati che devono essere codificati vengono inseriti all’interno di un sistema informativo a microprocessore che trasforma i dati ad esso forniti in informazioni. Quando codifico trasformo una grandezza reale in una grandezza digitale attraverso una stringa di simboli. La codifica è alla base del funzionamento del nostro sistema. L’informatica è un insieme di processi e tecnologie che consentono di: • Creare informazione; • Raccogliere informazione; • Elaborare informazione; • Immagazzinare informazione; • Distribuire informazione. Le tecnologie informatiche hanno tre principali funzioni: 1. elaborare dati per ottenere informazioni significative; 2. mantenere le informazioni elaborate per utilizzarle in combinazione con altre così da ottenere dati frutto di un nuovo processo di elaborazione; 3. organizzare i dati in una nuova forma per renderli più utili. Tutto si basa sull’interazione dell’utente con la macchina, questa interazione si classifica in fasi cicliche: 1. Input: immissione di dati nel computer. 2. Elaborazione dati. 3. Output: vedere (o ascoltare) il risultato con dispositivi di output. 4. 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. 5. Distibuzione: i dati possono essere stampati e distribuiti, oppure trasmessi direttamente da un computer all’altro. Un sistema informativo elabora i dati. Gli utenti hanno bisogno di informazioni. L’informatica si è sviluppata come disciplina autonoma solo a partire dagli anni 1960, sulla spinta del progresso dei sistemi di elaborazione e della formalizzazione del concetto di procedura di calcolo, che possiamo datare al 1963, allorchè Alan M. Turing presentò un modello di calcolo, oggi noto come macchina di Turing. PAROLE CHIAVE: • Modello: rappresentazione schematica di una situazione/sistema complessa; • Sistema: oggetto di studio che, pur essendo costituito da diversi elementi reciprocamente interconnessi e interagenti tra loro o con l’ambiente esterno, reagisce o evolve come tutto, con proprie leggi generali. • Protocollo: insieme di regole che devono essere seguite in modo specifico e che rappresentano spesso anche degli standard di gestione dell’informazione o di distribuzione della stessa. • Algoritmo: sequenza finita di operazioni elementari, è un percorso logico, espresso in linguaggio simbolico. • Interfaccia: ente che agisce da elemento comune, in parte di separazione e in parte di collegamento, tra due o più parti. • Dissipatore: serve a raffreddare le parti dell’hardware. Hardware: tutto ciò che vi è di fisico in un computer. Ogni periferica (dispositivo di Input/Output) è costituita da tre componenti: • Una componente visibile, il dispositivo. • Una componente elettronica, il controller. • Una componente software driver. Motherboard: piastra base su cui sono inserite tutte le interfacce in cui vengono inserite le componenti e che rendono tipico quel modello. Software: ciò che dà vita all’hardware. Sistema operativo: gestisce le risorse della macchina fisica sottostante e fornisce all’utente l’astrazione di macchina virtuale. Traduce le richieste dell’utente in valori e impulsi elettrici per la macchina fisica. Il suo nucleo si chiama “Kernel”, esso fa da ponte tra HW e SW ed è essenziale per il OS. È formato da un insieme di programmi organizzati tra di loro in modo tale da occuparsi ognuno di un compito specifico, secondo uno schema a strati. I programmi che occupano la posizione più interna interagiscono maggiormente con l’hardware vero e proprio, mentre quelli collocati più esternamente (applicativi) interagiscono più con l’utente. Bus parallelo: trasmissione di dati parallelamente (in contemporanea) per blocchi (multipli di 8). Bus seriale: trasmissione dati uno alla volta consecutivamente. *8 bit = 1 byte Memoria: In informatica, la memoria di un computer non è altro che un elemento/una parte di sistema deputato all’archiviazione dei dati, la cui forma fisica si concretizza nei cosiddetti supporti di archiviazione/salvataggio. ➢ RAM (memoria principale): è veloce, volatile, di capacità ridotta e spesso molto costosa. ➢ Memoria secondaria: si configura all’interno di un device sotto forma di un hard disk. È più lenta di una memoria volatile ma ha grandi capacità di memorizzazione con modalità permanente. Caratteristiche: • Velocità di accesso: rapidità della memoria nelle operazioni di lettura e di scrittura. • Capacità: numero di bit che possono essere memorizzati: • Volatilità/permanenza: memorie volatili mantengono l’informazione solo finché vengono alimentate. • Costo per bit: rapporto tra il costo complessivo dell’unità di memoria e la sua capacità. Oggi l’accesso alla memoria avviene per minimo 32 bit in contemporanea, quindi 4 byte. Funzionalità: ❖ Memoria di sola lettura (ROM): per contenere i programmi che inizializzano la macchina all’accensione e il kernel del OS. ❖ Memoria di lettura/scrittura (RAM): genericamente tutta la memoria (cache, memoria principale, memoria ausiliaria) Tecnologia: ❖ Memoria elettronica: componente coinvolto direttamente nei processi di elaborazione (RAM e ROM). ❖ Memoria ottica: dischi ottici per trasporto dati e backup. I ragnetti sulla RAM si chiamano banche dati. Gerarchia delle memorie: Il sistema di memoria è composto da moduli di memoria aventi caratteristiche diverse e organizzati su livelli diversi. I dati sono distribuiti su diversi moduli e possono essere trasferiti tra moduli adiacenti. La distribuzione dei dati è realizzata in base al principio di località (temporale e spaziale). Memoria cache: È un’area di memoria ad alta velocità localizzata tra la CPU e la memoria centrale. Serve a velocizzare le operazioni di trasferimento dei dati tra CPU, il disco fisso e la memoria centrale. Utilizza chip di memoria particolarmente veloci e costosi (SRAM). Esistono tre livelli: I. L1 (cache interna o primaria): fa fisicamente parte del microprocessore (si misura in kB). II. L2 (cache esterna o secondaria): è costituita da chip di memoria installati (in moduli) sulla mainboard (MB). III. L3: è collocata tra le altre due; è implementata in un apposito chip esterno alla CPU (MB). Registro: Unità più piccola di memoria, il minimo archiviabile in modo temporaneo (capacità di 16/32 bit). Memorie allo stato solido: Un SSD è sempre una memoria fissa come l’HDD ma ha una costruzione diversa: invece di avere un piatto magnetico che gira, è un chip di memoria flash (come la RAM), capace però di tenere i dati in memoria anche se non c’è corrente, ossia anche quando il computer è spento. Possono essere fissi o portabili. Capacità tipiche TB. Sistema decimale: Il sistema decimale viene chiamato così perché i simboli utilizzati sono dieci (da 0 a 9). (234)10 = 2*102 + 3*101 + 4*100 Sistema binario: Il sistema di codifica binario viene chiamato così perché i simboli utilizzati sono due (0 e 1). È un sistema posizionale perché a seconda della sua posizione ogni digit assume un valore diverso. Sistema esadecimale (HEX): Il sistema di codifica esadecimale viene chiamato così perché i simboli utilizzati sono sedici e sono: 0 1 2 3 4 5 6 7 8 9 A B C D E F. La corrispondenza decimale è: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15. Viene usato per rappresentare a livello del microprocessore la stringa di bit che rappresenta un determinato numero perché è un metodo di codifica più compatto rispetto a quella binario, inoltre il bus trasporta pacchetti multipli di 8 bit (ad oggi 64). CONVERSIONE: Da s. binario a s. decimale: (1011)2 = (1*23 + 0*22 + 1*21 + 1*20)10 = (8 + 0 + 2 + 1)10 = (11)10 Da s. decimale a s. binario: (15)10 = (?)2 15 2 1 7 2 1 3 2 1 1 (15)10 = (1111)2 Da s. decimale a s. ternario (tre simboli: da 0 a 2): (23)10 = (?)3 23 3 2 7 3 1 2 (23)10 = (212)3 Da s. decimale a s. esadecimale: (43)10 = (?)16 43 16 11 2 (43)10 = (2B)16 → B perché è la corrispondenza di 11 (base decimale) in base esadecimale. Da s. esadecimale a s. decimale e binario: 1. (A4B)16 = (A*162 + 4*161 + B*160)10 = (10*256 + 64 + 11)10 = (2635)10 = (?)2 2635 2 1 1317 2 1 658 2 0 329 2 1 364 2 0 82 2 0 41 2 1 20 2 0 10 2 0 5 2 1 2 2 0 1 (A4B)16 = (2635)10 = (1010 0100 1011)2 15/10/2020 Tecnica di conversione analogico-digitale: 1. Campionamento: estrarre dal segnale analogico degli elementi caratterizzanti, ossia dei punti ad intervalli di tempo regolari. Per ogni istante di tempo è definita un’ordinata. A seconda degli intervalli di tempo Δt prelevo un numero alto o basso di campioni ed ho una frequenza alta o bassa. Per ricostruire in modo esatto il mio segnale ho bisogno di un numero molto alto di campioni, se i campioni sono pochi unendo le ordinate ottengo una linea spezzata, non continua. Si tratta sempre di una approssimazione, ma con più campioni sarebbe migliore e più vicina al segnale reale. Qual è il limite da scegliere per avere una buona rappresentazione del segnale quando voglio ricostruirlo? Secondo il teorema di Nyquist la frequenza di campionamento dev’essere due volte la frequenza massima presente nel segnale: fcampionamento = 2 fmax segnale . Es. segnale audio con bassi, acuti e frequenze medie e che abbia una frequenza massima pari a 10kHz → il minimo che io devo adottare sarà una frequenza di 20kHz (Hz = unità di misura della frequenza; 1kHz = 1000Hz); sto indicativamente sui 30kHz. Il passo di campionamento dev’essere scelto in base a questo teorema. Non si lavora mai con il minimo della frequenza. 2. Dopo aver campionato valuto l’ordinata minima e quella massima del segnale e divido l’intervallo delimitato in parti nparti = ncombinazioni, poi assegno le combinazioni alle fasce ottenute. Questo è il processo logico usato dall’HW per passare dall’analogico al digitale. Le fasce in cui divido il segnale sono i livelli di quantizzazione. I campioni che rientrano nello stesso livello di quantizzazione vengono rappresentati allo stesso modo, quindi per discriminare i campioni possiamo aumentare i livelli di quantizzazione ed i bit per la codifica del segnale: in questo modo posso diminuire l’errore di quantizzazioni, ossia l’errore che si commette rappresentando allo stesso modo ordinate di valore diverso. Ad esempio se devo codificare con un sistema binario a 3 bit (8 combinazioni): Esercizi: • La voce occupa una banda di frequenze B pari a 4 kHz; volendo campionarla è necessario utilizzare minimo una frequenza pari a 8 kHz (circa 8000 campioni al secondo); ipotizzando di voler utilizzare un Byte per la codifica, allora per codificare ogni secondo quanti campioni sarebbero necessari: campioni = 8*1000 Hz * 8 bit ≈ 64 Kb s → k = 1024 legato ai bit. Oppure: campioni = 8*1000 Hz * 1B ≈ 8 KB s → in un minuto: campioni = 8KB*60 = 480 KB • Musica stereo (due miscrofoni/canali) con una banda di 20,050 KHz si campiona a 44.100 KHz. I microfoni lavorano ciascuno con 8 bit per un totale di 16 bit, ossia 2 Byte. Il numero di campioni sarà pari a: 8 bit per canale * 2 canali * 44100 = 705600 bit Campioni = 705600 bit = 88200 Byte ≈ 0,08 MB SUONO: Codifiche standard (formati): WAV (MS-Windows) MIDI MP3 → MP4: formati compressi. IMMAGINE Codifica dell’immagine: Per essere codificata, l’immagine dev’essere divisa in pixel, ossia l’unità minima rappresentabile. Ad esempio: immagine in bianco (0) e nero (1) divido l’immagine in pixel più fitti affinché la costruzione dell’immagine si avvicini di più a quella reale, dipende quindi dalla dimensione dei pixel. Per un’immagine a colori associo a ciascun pixel una stringa di bit, ovvero una codifica colore elevata e con tante combinazioni, io riesco a rappresentare le sfumature presenti in natura commettendo il minor errore possibile. 1 pixel a 2 colori : 1 bit 1 pixel a 256 colori : 1 Byte (8 bit) 1 pixel a 65535 colori : 2 Byte (2*8 = 16 bit) 1 pixel a 16 Mil. di colori : 3 Byte (3*8 = 24 bit) L’errore di quantizzazione è inevitabile. Formato dell’immagine: Tag/suffisso messo durante il salvataggio dell’immagine. Rappresenta l’estensione in cui viene salvata un’immagine. Alcuni formati permettono di comprimere i dati, ottenendo file di dimensioni ridotte, in tal caso però certi metodi di compressione (detti lossy) possono influire negativamente sulla qualità dell’immagine. Formati non compressi: BMP, WMF BMP (mappa di bit): è costituito da una griglia di pixel che mantengono intatte tutte le informazioni acquisite nella creazione o nell’acquisizione dell’immagine (digitalizzazione). Non essendo compresso le sue dimensioni sono molto grandi ma la qualità è alta (vi è poca perdita). WMF (Windows meta file): formato grafico di tipo vettoriale, quindi ridimensionabile senza perdita di qualità (come le clipart di Windows). Formati compressi: TIFF, GIF, JPEG, PNG. È presente un indice di compressione che a seconda del valore che assume ma perdere qualità all’immagine. Tutta l’informazione non viene portata via nella sua totalità, ma in parte. A seconda della quantità di informazione che porto via posso avere una migliore o una peggiore approssimazione. JPG (o JPEG, Joint Photographics Expert Group): ha la possibilità di variare il coefficiente di compressione proporzionalmente alla qualità dell’immagine. Può avere profondità di colore fino a 32 bit (430 milioni ca). GIF (Grafic Interchange Format): ha profondità 8 bit cioè un massimo di 256 colori di cui uno trasparente, grazie al quale si ottengono le gif trasparenti, ossia immagini con lo sfondo trasparente. Le gif possono essere composte da più fotogrammi ed essere quindi gif animate (molto usate nei siti web). Il coefficiente di compressione non può essere variato. Parametri di qualità: 1. Risoluzione: indica la precisione con cui viene effettuata la suddivisione di un’immagine in pixel. Quindi si fa riferimento ad essa attraverso il numero totale dei pixel presenti. Si misura in pixel. 2. Profondità di colore: è il numero di bit o byte utilizzati per rappresentare ciascun pixel. Indica il numero di colori diversi che possono essere rappresentati per quell’immagine. Si misura in bit o byte. Dimensione dell’immagine: È il numero di bit necessari per memorizzarla: RISOLUZIONE × PROFONDITÀ = DIMENSIONE Sottoquantizzazione: Significa usare un numero di livelli di quantizzazione insufficiente per poter codificare bene tutti i valori delle ordinate. Avvengono: • Perdita di informazioni, perciò una ricostruzione imprecisa del segnale; • Segnale sonoro: rumore di fondo; • Immagini: scarso rendering dei colori. Sottocampionamento: Significa campionare a frequenza minore del valore di Nyquist. Anche in questo caso abbiamo una perdita di informazioni e: • Segnale sonoro: distorsione; • Immagini: bordi confusi; • Video: movimenti a strappi. Comprimere un’informazione successivamente (quando noi comprimiamo dei file online, quindi file già digitali) significa compiere un processo di campionamento. Vengono applicati degli algoritmi tali per cui verrà estratta parte dell’informazione ed il file riduce le sue dimensioni. Non viene seguito il teorema di Nyquist. Esercizi: • Sia data un’immagine 640 (pixel) × 480 a 256 colori, quanti byte occupa in un salvataggio in memoria? Dimensione = 640 × 480 =307200 bit = 38400 Byte Si utilizza una codifica a 256 colori, quindi ciascun pixel viene codificato con 8 bit: 307200 × 8 = 2457600 bit = 307200 Byte = 300 Kb • Sia data un’immagine 1024 × 320 salvata a 512 colori su un supporto USB. o Qual è la dimensione del file che la rappresenta? Dimensione = 1024 × 320 = 327680 bit Si utilizza una codifica a 512 colori (= 29) quindi a 9 bit 327680 × 9 = 2949120 bit = 368640 Bytes ~ 3*10-4 GB