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


Fondamenti di informatica studio facile, Sbobinature di Fondamenti di informatica

Nel documento troverete i riassunti delle slide integrati agli appunti presi a lezione, con delle foto che possano aiutare la comprensione. Facile da capire e scritto in modo discorsivo, c'è tutto quello che serve sapere per sostenere l'esame!!

Tipologia: Sbobinature

2023/2024

In vendita dal 01/07/2024

_Anastasiaa_
_Anastasiaa_ 🇮🇹

4.5

(2)

75 documenti

1 / 35

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
FONDAMENTI DI INFORMATICA - M. ZAMA
- Definizioni, classificazioni e componentistica Hardware
L’informatica è una scienza e una tecnica che tratta l’elaborazione automatica dei dati e dei
procedimenti di calcolo.
Il calcolatore (o elaboratore elettronico o computer in inglese) è una macchina elettronica in
grado di eseguire operazioni matematiche e logiche. Può essere analogico se usa dei
segnali elettrici continui, o digitale se usa dei segnali elettrici discreti. Si compone di due
parti principali: l’unità di elaborazione (che esegue le operazioni) e l’unità di memoria (che
memorizza i dati). Funziona seguendo delle istruzioni chiamate “codice macchina”, scritte in
linguaggio binario, che vengono poi tradotte in segnali elettrici.
Un programma è l’insieme di istruzioni che possono essere eseguite da un elaboratore
elettronico, per risolvere un problema, svolgere una funzione o un compito.
Il programmatore si occupa di realizzare operativamente le applicazioni, scrivendo le
istruzioni sotto forma di linee di codice basate su specifici linguaggi di programmazione.
Il software è un programma (o un insieme di programmi) in grado di funzionare su un
computer o qualsiasi altro apparato con capacità di elaborazione. Esistono due tipi di
Software: di base, indispensabile per il funzionamento del computer, e applicativo, che è un
programma scritto in qualsiasi linguaggio di programmazione e che ha la funzione di
risolvere problemi specifici.
Il firmware è un’altro tipo di software, è registrato in una memoria particolare del computer o
di una periferica e comprende le istruzioni basilari per la “vita” della stessa. L’esempio più
noto è il BIOS, che il computer esegue al proprio avvio.
L’hardware è l’insieme delle parti fisiche riconoscibili di un computer, quindi parliamo di
periferiche e delle parti elettriche, meccaniche, elettroniche e ottiche. Si suddivide in due
parti: all’interno del computer, dove troviamo il processore (detto CPU), la memoria, il disco
fisso (detto HDD) e la scheda madre; e all’esterno del computer, dove invece troviamo
tastiera, mouse, monitor e stampante.
Il multitasking informatico è quel processo che permette al computer di eseguire due o più
programmi contemporaneamente. Al momento della sua creazione, il multitasking era
relegato in mainframe di fascia alta e non era disponibile per i PC, e si chiamava
Time-sharing, un termine che faceva riferimento al modo in cui più programmi o processi
condividevano la potenza della CPU, cioè con un rapido passaggio tra applicazioni che dava
l’impressione di usarle contemporaneamente. Ancora oggi i computer moderni con un solo
processore utilizzano la tecnica del Time-sharing. Per quanto riguarda invece i computer con
due o più processori vediamo che questi sono collegati tra loro e permettono una effettiva
esecuzione simultanea di più programmi, ma il numero di programmi che un determinato
processore può eseguire contemporaneamente è anche limitato dalla quantità di memoria di
sistema occupata da questi programmi.
Un thread è una parte di un processo che può essere eseguita in modo indipendente o
parallelo ad altre parti dello stesso processo. Un thread ha il suo flusso di controllo, il suo
stato e le sue risorse, ma condivide lo spazio di memoria e le informazioni con gli altri thread
dello stesso processo. Un thread permette di sfruttare meglio le capacità di memoria di un
sistema perché riduce i tempi di attesa e aumenta le prestazioni.
Il sistema operativo multithreading è un sistema operativo che permette di eseguire più
thread in modo parallelo.
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

Anteprima parziale del testo

Scarica Fondamenti di informatica studio facile e più Sbobinature in PDF di Fondamenti di informatica solo su Docsity!

FONDAMENTI DI INFORMATICA - M. ZAMA

- Definizioni, classificazioni e componentistica Hardware L’informatica è una scienza e una tecnica che tratta l’elaborazione automatica dei dati e dei procedimenti di calcolo. Il calcolatore (o elaboratore elettronico o computer in inglese) è una macchina elettronica in grado di eseguire operazioni matematiche e logiche. Può essere analogico se usa dei segnali elettrici continui, o digitale se usa dei segnali elettrici discreti. Si compone di due parti principali: l’unità di elaborazione (che esegue le operazioni) e l’unità di memoria (che memorizza i dati). Funziona seguendo delle istruzioni chiamate “codice macchina”, scritte in linguaggio binario, che vengono poi tradotte in segnali elettrici. Un programma è l’insieme di istruzioni che possono essere eseguite da un elaboratore elettronico, per risolvere un problema, svolgere una funzione o un compito. Il programmatore si occupa di realizzare operativamente le applicazioni, scrivendo le istruzioni sotto forma di linee di codice basate su specifici linguaggi di programmazione. Il software è un programma (o un insieme di programmi) in grado di funzionare su un computer o qualsiasi altro apparato con capacità di elaborazione. Esistono due tipi di Software: di base, indispensabile per il funzionamento del computer, e applicativo, che è un programma scritto in qualsiasi linguaggio di programmazione e che ha la funzione di risolvere problemi specifici. Il firmware è un’altro tipo di software, è registrato in una memoria particolare del computer o di una periferica e comprende le istruzioni basilari per la “vita” della stessa. L’esempio più noto è il BIOS, che il computer esegue al proprio avvio. L’hardware è l’insieme delle parti fisiche riconoscibili di un computer, quindi parliamo di periferiche e delle parti elettriche, meccaniche, elettroniche e ottiche. Si suddivide in due parti: all’interno del computer, dove troviamo il processore (detto CPU), la memoria, il disco fisso (detto HDD) e la scheda madre; e all’esterno del computer, dove invece troviamo tastiera, mouse, monitor e stampante. Il multitasking informatico è quel processo che permette al computer di eseguire due o più programmi contemporaneamente. Al momento della sua creazione, il multitasking era relegato in mainframe di fascia alta e non era disponibile per i PC, e si chiamava Time-sharing, un termine che faceva riferimento al modo in cui più programmi o processi condividevano la potenza della CPU, cioè con un rapido passaggio tra applicazioni che dava l’impressione di usarle contemporaneamente. Ancora oggi i computer moderni con un solo processore utilizzano la tecnica del Time-sharing. Per quanto riguarda invece i computer con due o più processori vediamo che questi sono collegati tra loro e permettono una effettiva esecuzione simultanea di più programmi, ma il numero di programmi che un determinato processore può eseguire contemporaneamente è anche limitato dalla quantità di memoria di sistema occupata da questi programmi. Un thread è una parte di un processo che può essere eseguita in modo indipendente o parallelo ad altre parti dello stesso processo. Un thread ha il suo flusso di controllo, il suo stato e le sue risorse, ma condivide lo spazio di memoria e le informazioni con gli altri thread dello stesso processo. Un thread permette di sfruttare meglio le capacità di memoria di un sistema perché riduce i tempi di attesa e aumenta le prestazioni. Il sistema operativo multithreading è un sistema operativo che permette di eseguire più thread in modo parallelo.

  • Ad esempio, quando utilizziamo un programma come Word usiamo un thread (t1) per visualizzare la grafica, un secondo thread (t2) per scrivere il documento e un terzo thread (t3) per eseguire il controllo ortografico e grammaticale in background. Tra i vantaggi del sistema operativo multithreading troviamo: - reattività. Consente a un programma di continuare la sua esecuzione anche se parte di esso è bloccata o sta eseguendo un'operazione prolungata, aumentando così la capacità di risposta dell'utente. - condivisione delle risorse. I thread condividono memoria e risorse del processo a cui appartengono. - utilizzo dell’architettura multiprocessore. Ogni thread può essere eseguito in parallelo su un diverso processore. Le differenze tra multitasking e multithreading nel sistema operativo sono di tre tipologie: - di base. Il multitasking consente alla CPU di eseguire più attività contemporaneamente. Il multithreading consente alla CPU di eseguire più thread di un processo contemporaneamente. - di commutazione. Nella CPU multitasking si passa frequentemente da un programma all'altro. Nella CPU multithreading passa frequentemente tra i thread. - di memoria e risorse. Nel sistema multitasking è necessario allocare memoria e risorse separate per ogni programma che la CPU sta eseguendo. Nel sistema di multithreading è necessario allocare memoria a un processo, più thread di quel processo condividono la stessa memoria e le risorse allocate al processo. La multiutenza è la modalità che permette a più utenti collegati contemporaneamente di utilizzare le risorse del sistema. - Struttura di un calcolatore (Computer) La struttura di un calcolatore è il modo in cui sono collegati tra loro i componenti hardware che lo compongono. Questo collegamento è dato dal Bus, che è il canale di comunicazione che collega CPU, memoria e periferiche trasportando i dati e i segnali di controllo. Questa organizzazione prende il nome di Bus oriented. Esistono diversi tipi di bus, classificati in funzione del tipo di dati che trasportano, come ad esempio il bus dati, il bus di indirizzi, o il bus di controllo, e altri classificati in base a come trasportano questi dati, ad esempio i bus paralleli (ISA - Industry Standard Architecture - PCI
  • Peripheral Component Interconnect - AGP - Accelerated Graphics Port), o i bus seriali (SATA - Serial ATA - PCI Express) La bus oriented è l’organizzazione più usata, ma non è l’unica. - Tipologie di elaboratori Gli elaboratori si differenziano in base alla velocità di elaborazione, alla capacità di memoria, alla tipologia dei processori, al costo e agli impieghi tipici. Classifichiamo:

- CISC - (Complex Instruction Set Computer). Un'architettura dotata di un set di istruzioni che consentono di eseguire operazioni complesse. - RISC - (Reduced Instruction Set Computer). Un’architettura dotata di un set di istruzioni che consentono di eseguire operazioni semplici. A volte può succedere che avvenga un Interrupt, cioè, un’interruzione del normale funzionamento della CPU; quando accade ciò, la CPU sospende l’esecuzione del programma corrente ed esegue il programma di gestione dell’interrupt, interrupt handler. Al termine dell’interrupt handler, la CPU riprende l’esecuzione del programma interrotto. Per migliorare le prestazioni di un computer possiamo:

  • adoperare il parallelismo , distinguibile in parallelismo a livello di istruzione, in cui più istruzioni vengono eseguite contemporaneamente all’interno della stessa CPU, tramite tecniche di pipelining (che divide in più fasi l’esecuzione di ogni istruzione, ognuna di queste fasi viene gestita da un hardware dedicato) e processori superscalari, e parallelismo a livello di core/processore, in cui più core/CPU cooperano per la soluzione dello stesso problema.
  • aumentare la frequenza di clock , che però di base presenta dei limiti invalicabili e difetti (le alte frequenze creano disturbi e aumentano il calore da dissipare, ritardi nella propagazione del segnale, problemi di sincronizzazione). Dal 2005 le CPU si evolvono grazie alla miniaturizzazione dei transistor, lasciando lo spazio necessario all’aggiunta di un’altra CPU: nascono le CPU multi-core. Ne esistono di diversi tipi (i3, i5, i7, ecc.) ma l’appartenenza a una famiglia anziché all’altra è data dall’insieme di fattori quali il numero di core (più core sono disponibili, maggiori sono le prestazioni), la loro velocità massima, la presenza o meno dell’hyper threading (tecnologia in grado di raddoppiare il numero dei core disponibili, in maniera virtuale - non è indispensabile e non regala mai più del 10% di potenza ma può essere utile in alcuni scenari in cui è richiesto un uso elevato di thread), la presenza e velocità del Turbo Boost (è quella funzione che permette, in condizioni di operazioni poco complicate, di aumentare la velocità della CPU per un determinato periodo di tempo), e la dimensione della cache. Le unità di misura per valutare le prestazioni di un microprocessore sono: - MHz (megahertz). Non rappresentano un parametro molto significativo in quanto indicano solamente il ritmo interno di lavoro del microprocessore e non specificano quanti cicli occorrono per eseguire le varie istruzioni. - MIPS (Million Instructions Per Second). Indicano il numero di istruzioni al secondo che il microprocessore è in grado di eseguire, ma non sono un parametro molto attendibile in quanto non specificano il tipo di istruzioni che vengono eseguite. - Benchmark (banco di lavoro). È un insieme di “test” del software che serve a determinare la sua capacità di svolgere più o meno velocemente, precisamente o accuratamente, un particolare compito per cui è stato progettato. Meno tempo un sistema impiega a eseguire il benchmark, migliore è la prestazione. Quindi con il benchmark si misurano le prestazioni di un sistema, mentre gli altri parametri misurano le prestazioni del solo microprocessore.

La Motherboard (o Scheda Madre) è la scheda elettronica principale che raccoglie in sé tutta la circuiteria elettronica e i collegamenti di interfaccia tra i vari componenti interni principali del PC (CPU, memoria e le altre schede elettroniche montate o alloggiate sopra) comprendendo quindi anche i bus di espansione e le interfacce verso le periferiche esterne. È responsabile dunque, della trasmissione e temporizzazione corretta di molte centinaia di segnali diversi tra processore e periferiche interne, e viceversa, tutti ad alta frequenza e sensibili ai disturbi. L’ interfaccia è un elemento che permette la comunicazione e l’interazione tra due o più sistemi diversi, sia dal punto di vista fisico che logico; ne esistono di tre tipi:

- Interfaccia seriale. Consente il trasferimento dei dati tra il dispositivo di ingresso/ uscita al computer un bit alla volta. - Interfaccia parallela. Funziona allo stesso modo dell’interfaccia seriale ma il trasferimento dei dati avviene un byte alla volta (vengono trasmessi contemporaneamente in parallelo, su otto fili diversi, otto bit). - Interfaccia USB (Universal Serial Bus). Consente di collegare più dispositivi a cascata, e consente la connessione e configurazione di nuove periferiche anche a computer funzionante. La memoria di un computer è un elemento che ha il compito di garantire la persistenza dei dati e/o delle istruzioni dei programmi. La memoria centrale è quella che si trova direttamente collegata alla CPU e viene utilizzata per l’esecuzione dei programmi e il salvataggio dei dati temporanei. Una cella di memoria è l’unità di base della memoria di un calcolatore, essa contiene un valore, che può essere un dato o un’istruzione. Un byte è invece un’unità di misura della quantità di dati che può essere memorizzata in una cella di memoria. Ogni cella di memoria può contenere un certo numero di bit, che varia a seconda del tipo di memoria.

  • Ad esempio, una cella di memoria di tipo DRAM può contenere un solo bit, mentre una cella di memoria di tipo SRAM può contenere da 4 a 6 bit. Un byte, invece, è composto da 8 bit, pertanto, per memorizzare un byte, sono necessarie almeno 8 celle di memoria. Multipli del Byte: 8 cifre binarie sono pari ad un BYTE (B)
  • 1024 BYTE sono pari ad 1 KiloByte (KB).
  • 1024 KB sono pari ad 1 MegaByte (MB).
  • 1024 MB sono pari ad 1 GigaByte (GB).
  • 1024 GB sono pari ad 1 TeraByte (TB). Tipologie di memorie:

I dispositivi di INPUT sono tutti quei dispositivi che l’utente usa per immettere dati nel computer (testi, immagini, ecc.), ad esempio la tastiera, il mouse, lo scanner, la tavoletta grafica, ecc. I dispositivi di OUTPUT sono tutte quelle periferiche mediante le quali il pc comunica all’esterno i risultati delle proprie elaborazioni, quindi ad esempio il monitor, la stampante, il plotter, ecc. Il monitor è per definizione il numero di pixel che lo schermo può visualizzare. La dimensione di un monitor si calcola misurando la diagonale dello schermo e si esprime in pollici (un pollice equivale a 2,54 cm). Il “passo della griglia” (in inglese dot pitch) è la distanza che separa due pixel, più questa è piccola più l'immagine sarà precisa. La risoluzione determina il numero di pixel per unità di superficie e si chiama DPI (Dots Per Inch

  • punti per pollice). Abbiamo poi il refresh, che indica il numero di volte che l’immagine sullo schermo viene ridisegnata in un secondo (si misura in Hz), il tempo di risposta, che indica il tempo impiegato da un pixel per passare da nero a bianco e ritornare nero, e l’angolo di visuale, che in base alla sua variazione modifica la luminosità, i colori ed il contrasto facendo risultare l'immagine più scura e sbiadita. Il componente principale di un monitor è il display, cioè il dispositivo elettronico per la visualizzazione. In base alla tecnologia usata si distinguono due tipologie di display:
    • Display CRT (a raggi catodici)
    • Display LCD (a cristalli liquidi) Uno schermo LCD è un tipo di schermo piatto che utilizza la luce modulante delle proprietà dei cristalli liquidi combinati con polarizzatori, per produrre immagini a colori o in bianco e nero. In pratica, un LCD è composto da due lastre di vetro sottili, tra le quali si trova uno strato di cristalli liquidi. Questi cristalli liquidi sono allineati tra le due lastre di vetro e, quando viene applicata una corrente elettrica, cambiano la loro posizione e orientamento, modificando la quantità di luce che passa attraverso lo schermo. Per illuminare lo schermo, un LCD richiede una fonte di luce esterna, chiamata retroilluminazione. Controllando la rotazione dei cristalli liquidi in ogni pixel, si può dunque regolare la quantità di luce che passa. Uno schermo LCD a colori utilizza un sistema di filtri di colore per produrre immagini a colori. In pratica, ogni pixel sullo schermo è composto da tre subpixel, ognuno dei quali può essere illuminato in rosso, verde o blu per creare una vasta gamma di colori. I monitor IPS , acronimo di “In-Plane Switching”, hanno come peculiarità quella di fornire ampi angoli di visuale e di riprodurre i colori di elevata qualità. Questi due fattori dipendono dal fatto che essendo i cristalli liquidi paralleli ai pannelli, invece che perpendicolari, lo saranno anche i pixel dell’immagine, che risulterà di maggiore qualità. I tablet e gli smartphone prediligono la tecnologia IPS perché è la migliore per la riproduzione di foto e video. I monitor TN usano una tecnologia più obsoleta, infatti questi modelli sono più limitati dal punto di vista dell’angolo di visione ed i colori risultano di una qualità molto più inferiore. Ciò dipende dal fatto che i cristalli liquidi sono perpendicolari al pannello, determinando così la creazione di immagini di qualità più scarsa. Possiedono però una frequenza di aggiornamento alta e un tempo di risposta minore che li rende perfetti per il gaming.

I monitor VA, ovvero “Vertical Alignment”, rappresentano la via di mezzo tra i modelli IPS e TN. Infatti presentano sia un discreto angolo di visione che un buon contrasto visivo, ma i colori sono riprodotti in modo meno perfetto rispetto agli IPS. I monitor VA sono divisi in MVA (multidomain vertical alignment), PVA (patterned vertical alignment), e ASV (advanced super view). La differenza principale rispetto alle altre tecnologie è che un pannello VA ha la capacità di spegnere completamente la luce proveniente dalla retroilluminazione quando questa non è voluta, permettendo così di ottenere dei rapporti di contrasto più elevati assieme a dei neri più profondi.

- Le modalità grafiche dei monitor Sono tre le modalità grafiche più diffuse per i monitor: - Monitor Full HD. Possiedono una risoluzione di 1920 x 1080 pixel, caratteristica ideale per le attività di gioco. Per questa tipologia di risoluzione si consiglia uno schermo di dimensioni comprese tra 21 e i 27 pollici, così da non creare problemi agli occhi. - Monitor 2K. Hanno solitamente una risoluzione di 2560 x 1440 pixel e vengono consigliati per lavori di grafica su immagini e video. Anche in questo caso vi è una dimensione standard che andrebbe rispettata, cioè dai 27 pollici in poi. - Monitor 4k (o “ultra HD”). La loro risoluzione è di 3840 × 2160 pixel e si rivelano un prodotto ideale sia per attività lavorative di grafica che per giocare. Uno schermo 4K deve essere sempre associato ad un computer dotato di un processore e di una scheda video di un certo livello, altrimenti non sarà possibile sfruttarne appieno le caratteristiche. Le dimensioni consigliate per questo tipo di prodotto devono partire da almeno 28 pollici. - Gli ingressi dei monitor Gli ingressi più diffusi sono principalmente tre:

  • VGA (Video Graphics Array). Questo tipo di connessione veicola un segnale di tipo analogico, soggetto in maniera piuttosto marcata a disturbi e interferenze e con una pulizia dell'immagine non ottimale. Altra limitazione di questa connessione è data dal fatto che veicola solo e unicamente segnali video, in nessun modo audio. Ha basse frequenze di aggiornamento, il che lo rende del tutto inadatto a chi usa il computer per gaming. - DVI (Digital Visual Interface). Ad oggi è presente praticamente su qualunque nuovo computer. Ne esistono diversi tipi, ognuno con caratteristiche specifiche: DVI-A trasporta esclusivamente segnali analogici compatibili con lo standard VGA con cui condivide caratteristiche e limitazioni; DVI-D veicola unicamente segnali di tipo digitale, di conseguenza più puliti e stabili, meno soggetti a interferenze, inoltre, può essere Single o Dual Link; infine abbiamo il DVI-I che unisce nello stesso connettore la possibilità di veicolare il segnale analogico tipico del DVI-A e quello digitale del connettore DVI-D. - HDMI (High Definition Multimedia Interface). La connessione HDMI può trasportare solo ed esclusivamente un segnale digitale, sia video che audio. A differenza delle interfacce precedenti, questa è ancora oggi in costante evoluzione.

Il valore relativo dipende dalla posizione che la singola cifra occupa in un numero.

  • Consideriamo il numero 3279: il valore assoluto delle unità è 9, delle decine è 7, delle centinaia è 2, delle migliaia è 3; il valore relativo è 9 unità, 7 decine, 2 centinaia, 3 migliaia. (Valore assoluto = 3 vale 3; Valore relativo = 3 vale 3.000). Nella scrittura polinomiale scriviamo il numero come somma delle sue cifre moltiplicate per il valore della posizione di ogni sua cifra.
  • ad esempio: consideriamo il numero 3547, esso è formato da: 3 migliaia = 3 X 1000 5 centinaia =5 X 100 4 decine = 4 X 10 7 unità = 7 X Il numero allora si potrà scrivere come 3x10^3 + 5x10^2 + 4x10^1 + 7x10^0 Il sistema binario è il sistema di numerazione dei computer, costituito da sole due cifre (0 e 1). L’adozione di questo sistema avviene perché nei computer si ricorre a componenti elettronici che funzionano in on/off, cioè con le condizioni di acceso/spento, oppure di si/no, 0 e 1. La cifra binaria si chiama bit (binary digit). Nella memoria di un calcolatore si fa riferimento non ad un bit ma ad un ottetto di bit, chiamato byte. La numerazione esadecimale è un sistema numerico posizionale in base 16, cioè che utilizza 16 simboli invece dei 10 del sistema numerico decimale tradizionale. Per l'esadecimale si usano in genere simboli da 0 a 9 per le prime dieci cifre, e poi le lettere da A a F per le successive sei cifre, per un totale di 16 simboli. - codifica delle informazioni Le informazioni gestite dai sistemi di elaborazione devono essere codificate per essere memorizzate, elaborate, scambiate, ecc. Esistono standard internazionali per risolvere problemi di compatibilità tra differenti sistemi software e tra calcolatori di tipo e marca diversi. Nella codifica binaria si possono combinare più bit, ottenendo sequenze sempre diverse di 0 e 1. Nella codifica dei numeri naturali 13 può essere espresso in funzione delle potenze di 2:
  • 13 = 1 x 8 + 1 x 4+ 0 x 2 + 1 x 1 23 22 21 20 Cioè può essere rappresentato dalla sequenza di bit: 1 1 0 1 La codifica di caratteri è una codifica binaria adatta a documenti in linguaggio naturale (italiano o inglese), e la sua caratteristica è l’assegnazione di un codice a ogni lettera. Esiste anche la Tabella ASCII (American Standard Code for Information Interchange - Codice Standard Americano per lo Scambio di Informazioni) che è un sistema di codifica dei caratteri a 7 bit comunemente utilizzato nei calcolatori. L’idea è quella di avere una corrispondenza uno a uno tra l’insieme dei 128 caratteri e quello dei possibili numeri binari a 7 bit.

Lettere e numeri non costituiscono le uniche informazioni utilizzate dagli elaboratori ma si diffondono sempre di più applicazioni che usano ed elaborano anche altri tipi di informazione (immagini, filmati, suoni, ecc.). In questi casi si parla di applicazioni di tipo multimediale.

- Codifica delle immagini La grafica bitmap o “raster” (a mappa di punti) crea le immagini usando punti colorati chiamati pixel, indipendenti gli uni dagli altri, per cui la composizione avviene come in un mosaico, e la memorizzazione attraverso una sorta di database dei pixel e dei colori. Per ogni pixel vengono memorizzate diverse informazioni: bianco e nero, tipo di colore o profondità di colore (cioé il numero di tonalità che possono essere visualizzate).

  • Ad esempio se si fanno corrispondere ad ogni pixel 8 bit ciò permetterà di riprodurre in quel punto 256 colori o tonalità di colore (in quanto ci sono 256 possibilità di combinazione dei bit a gruppi di 8). Consideriamo un'immagine in bianco e nero, senza ombreggiature o livelli di chiaroscuro: Suddividiamo l'immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante: Ogni quadratino derivante da tale suddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione:
  • Il simbolo “0” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino bianco (in cui il bianco è predominante).
  • Il simbolo “1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino nero (in cui il nero è predominante). Poiché una sequenza di bit è lineare, si deve definire una convenzione per ordinare la griglia dei pixel in una sequenza:
  • assumiamo che i pixel siano ordinati dal basso verso l'alto e da sinistra verso destra

sfumatura mediante un'opportuna sequenza di bit. La rappresentazione di un'immagine mediante la codifica dei pixel, viene chiamata codifica bitmap. Il numero di byte richiesti dipende dalla risoluzione e dal numero di colori che ogni pixel può assumere. La risoluzione dell’immagine è il numero di pixel che la costituiscono, espressi in termini di larghezza x altezza. Ovviamente, aumentando il numero di pixel a disposizione, migliora la qualità dell’immagine. La profondità dell’immagine è invece il numero di bit che servono per rappresentare un singolo pixel dell’immagine. I monitor utilizzano risoluzioni di 800X600, 1024X768, 1280X1024, o superiori, ed un numero di colori per pixel che va da 256 fino a 16 milioni. Per distinguere 256 colori sono necessari 8 bit per la codifica di ciascun pixel. La codifica di un'immagine formata da 640X480 pixel richiede 2.417.600 bit (307.200 byte).

- Rappresentazione dei colori Il metodo RGB è detto anche metodo additivo, in quanto combina i colori primari (che riguardano tutte le sorgenti che producono immagini come monitor, tv, proiettori, pellicole ecc.) per ottenere tutte le rimanenti sfumature. Quando questi colori vengono sovrapposti si ottiene il ciano, il magenta e il giallo (colori complementari). Il modello RGB rappresenta i vari colori utilizzando tre valori numerici che indicano quanto le tre componenti (rosso, verde, blu) concorrono alla formazione del colore analizzato. Il valore massimo che una componente può assumere è 255.

  • per esempio il rosso puro è espresso dalla somma dei valori 255,0,0. In altre parole la componente rossa è al massimo, 255, mentre le altre due sono a zero. Quando tutte le componenti sono pari a 255, viene visualizzato il colore bianco, mentre quando sono tutte pari a 0, viene visualizzato il colore nero. Sulla diagonale che congiunge il nero e il bianco abbiamo i livelli di grigio. Il metodo RGB viene raffigurato sotto forma di cubo, ai cui angoli troviamo i colori primari (RGB), i colori complementari (ciano, magenta, giallo) il bianco e il nero. A questo punto resta da chiedersi quanti colori ci sono nel cubo. Per calcolarli si dovrebbe fare il valore massimo elevato al cubo, quindi: 256x256x256 =16.777. 216 colori, circa 16,8 milioni. I colori esadecimali rappresentano una codifica per la gestione dei colori nelle pagine Web. Il nome esadecimali sta appunto ad indicare che si tratta di una codifica composta da 6 caratteri alfanumerici in base 16, offrendo la possibilità di usare numeri da 0 a 9 e lettere dalla A alla F. La codifica esadecimale si basa sulla codifica RGB: in esadecimale il bianco è FFFFFF, in RGB è 255, 255, 255; il nero in esadecimale è 000000, in RGB è 000, 000, 000. Giocando con tutte le lettere e i numeri a disposizione, si possono ottenere fino a 16 milioni di colori. L’unico vantaggio è che nella codifica esadecimale tutti i numeri da 0 a 255 sono espressi con solo due cifre, inclusi i primi 16 ai quali viene apposto uno 0 davanti. - Memorizzazione delle immagini

Come ogni altra informazione, anche un’immagine (detta raster) può essere memorizzata su un file. Esistono diversi modi di memorizzare un’immagine raster, corrispondenti a diversi formati di file di tipo Immagine:

  • BMP (Windows BitMaP). È il formato standard per le immagini raster di Microsoft Windows. Il suo vantaggio principale è che memorizza l'immagine con estrema fedeltà, conservandone tutti i dettagli ed i colori. Lo svantaggio è che le immagini salvate in questo formato occupano molto spazio in termini di byte e, pertanto, non sono adatte alla pubblicazione su Internet, inoltre potrebbero non essere utilizzabili con altri sistemi operativi diversi da Windows.
  • GIF (Graphics Interchange Format). Non è un formato adatto per le fotografie, ma è molto adatto alle immagini dotate di un massimo di 256 colori, perché è in grado di memorizzarle con minore occupazione di byte rispetto al formato BMP. Per questo motivo il GIF si è rapidamente diffuso in Internet. Supporta anche animazioni e trasparenze. I file a cui viene applicato questo tipo di codifica di compressione riportano l’estensione “.gif”.
  • JPEG/JPG/JPE (Joint Photographic Expert Group). È il formato più diffuso in assoluto per le fotografie e, più in generale, per le immagini raster ricche di colori. Le immagini sono memorizzate sempre con 32 bit di profondità di colore. Con un complicato metodo l'immagine viene “compressa” e poi salvata, ottenendo un notevole risparmio di spazio rispetto al formato BMP. Questo è possibile perché il trucco sta in una piccola perdita di dettagli: un'immagine salvata in JPG contiene meno dettagli rispetto alla medesima immagine salvata in formato BMP, però quasi sempre la perdita di definizione è così piccola che bisogna osservare con molta attenzione per riscontrare differenze fra i due formati. I file a cui viene applicato questo tipo di codifica di compressione riportano l’estensione “.jpg”.
  • PNG (Portable Network Graphics). Il vantaggio principale del formato PNG è che supporta la compressione senza perdita di dettagli, supporta anche le trasparenze, ma non le animazioni.
  • TIFF/TIF (Tagged Image File Format). È uno dei formati più flessibili per le immagini raster, tanto che viene adottato pure da apparecchiature come scanner e fax, anche perché possiede la capacità di salvare più immagini in un unico file. Da sottolineare, tuttavia, che un'immagine TIFF occupa solitamente più spazio della medesima immagine in formato JPG, e questo spiega la sua minor diffusione come formato di memorizzazione per le immagini raster. Per quanto riguarda i formati GIF e JPEG (detti anche codec - COmpression / DECompression) bisogna sottolineare che usano un sistema per comprimere l’informazione prima di memorizzarla e per decomprimerla prima di visualizzarla. Entrambi i formati tendono ad eliminare i pixel ripetitivi, ed entrambe le soluzioni sono compressioni con perdita di informazione. Tale perdita NON può essere recuperata in alcun modo. Anche i suoni possono essere rappresentati in formato digitale. Da un punto di vista fisico un suono è un’alterazione della pressione dell’aria (rispetto alla pressione atmosferica). È possibile rappresentare in molti modi un’onda sonora, ma la rappresentazione più comoda è attraverso una funzione che ne descrive la variazione di pressione dell’aria nel tempo:

Per quanto riguarda la rappresentazione video possiamo dire che il movimento viene rappresentato con un alto numero di fotogrammi fissi (25/30 al secondo) che l’occhio umano, vedendoli in sequenza a una certa velocità, percepisce come movimento continuo. Per questioni di spazio, sono stati sviluppati metodi di codifica che codificano solo le differenze tra un fotogramma e l’altro (MPEG). Il processo di digitalizzazione avviene in tre fasi:

- Cattura delle immagini video. Si ottiene collegando fisicamente le sorgenti analogiche (videocamera, videoregistratore) alla scheda di acquisizione. _- Conversione dell’immagine in digitale.

  • Compressione dell’immagine._ Il numero di bit impiegati nell’operazione aumenta in funzione di cinque fattori: _- La lunghezza del filmato.
  • La risoluzione grafica.
  • L’ampiezza delle palette di colori utilizzata.
  • Il numero di fotogrammi_ (o frame) per secondo (FRAME RATE/FPS). - La qualità del sonoro (frequenza di campionatura). Poco prima abbiamo accennato ai Codec, dei software che comprimono e decomprimono digitalmente i dati di una immagine, rendendo più agevole la loro conservazione e la loro riproduzione. Un lavoro simile lo fanno i contenitori (contengono i vari componenti di un video, quindi il flusso delle immagini, il suono e qualsiasi altra cosa che si trova all’interno del file) che hanno il compito di “impacchettare” il flusso audio e video processato dai codec e renderlo così fruibile per i software media player. Per la rappresentazione video abbiamo tre tipologie di compressione :
  • Compressione Lossless (senza perdite). Questa tipologia è reversibile, la qualità del filmato rispecchia l’originale, ma la sua compressione è limitata al 35% delle dimensioni originali (troppo poco). - Compressione con perdita. Con l’utilizzo di questa tipologia alcuni dati di rilievo secondario vengono persi in fase di compressione, ci permette di ottenere livelli elevati di compressione, viene usata per immagini televisive satellitari e videoconferenze. - Compressione MPEG. Un filmato compresso con formato MPEG presenta una serie di fotogrammi che contengono solo le immagini diverse rispetto ai fotogrammi precedenti, a differenza degli altri metodi che invece comprimono un fotogramma ogni mezzo secondo (il fotogramma chiave detto I-Frame). - Flow Chart Secondo la ACM (Association for Computing Machinery) l’Informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione.

Come funziona la risoluzione di un problema :

  • l’uomo descrive l’algoritmo che la macchina deve seguire per risolvere il problema (ad esempio con i diagrammi di flusso).
  • la descrizione viene tradotta in linguaggio di alto livello.
  • Il linguaggio di alto livello viene tradotto in Linguaggio Macchina (codice binario). Con il termine algoritmo si intende, in genere, un metodo per la risoluzione di problemi utilizzando un numero finito di passi. Da questa definizione si evincono le quattro proprietà fondamentali dell'algoritmo : - Finitezza. La sequenza di istruzioni deve essere finita. - Effettività. Deve portare a un risultato. Fatto un passo, il successivo è uno ed uno solo, ben determinato. Alternative sono possibili, ma la scelta deve essere unica. - Realizzabilità. Le istruzioni devono essere eseguibili materialmente. - Non ambiguità. Le istruzioni devono essere espresse in modo non ambiguo. Non sono ammessi termini come “un po’” e “a piacere”, perchè non sono termini adatti ad una macchina. I problemi risolvibili con un algoritmo si dicono computabili. Non tutti i problemi sono risolvibili. Per rappresentare gli algoritmi possiamo usare:
  • Rappresentazione grafica. Diagrammi di flusso e Flow Chart.
  • Rappresentazione testuale. Notazione Lineare Strutturata e PseudoCodice. Ogni algoritmo presenta delle operazioni primarie necessarie affinché possa funzionare:
  • Trasferimento di informazioni (istruzioni di I/O).
  • Lettura dati, scrittura risultati, visualizzazione dati intermedi.
  • Esecuzione di calcoli (valutazione espressioni). - Istruzioni di assegnamento. L’istruzione di assegnamento permette di assegnare un valore ad una variabile (sempre identificata da un’etichetta o un identificatore simbolico).
  • Strutture di controllo (che modificano il flusso sequenziale di esecuzione delle operazioni). - Diagrammi di flusso I diagrammi di flusso (detti anche diagrammi a blocchi) sono un linguaggio di modellazione grafico per rappresentare algoritmi. Consentono di descrivere le differenti operazioni sotto forma di uno schema in cui, le diverse fasi del processo e le differenti condizioni che devono essere rispettate, vengono rappresentate da simboli grafici detti blocchi elementari. I blocchi sono collegati tra loro tramite frecce, dette connettori , che indicano la cronologia. L’esecuzione delle istruzioni deve essere fatta sequenzialmente, ovvero seguendo i

frecce. Queste indicano le possibili azioni da compiersi a seconda del valore della variabile. Si può anche voler compiere una certa azione se il test o la condizione hanno un valore vero, e nessuna azione nel caso contrario. L’istruzione condizionale IF-ELSE è costruita per scegliere l’esecuzione di un’istruzione in alternativa a un’altra, a seconda del valore assunto da una data condizione. Con solo la condizione IF possiamo eseguire istruzioni con una sola alternativa. Introducendo anche ELSE invece, abbiamo la possibilità di eseguire un'istruzione alternativa nel caso la condizione non sia vera.

- Strutture di controllo Le strutture di controllo "iterative" consentono di specificare che una data istruzione o un dato blocco di istruzioni devono essere eseguiti ripetutamente. Esse vengono anche dette cicli. Ogni struttura di controllo di questo tipo deve consentire di specificare sotto quali condizioni l'iterazione (ripetizione) di tali istruzioni debba terminare, ovvero la condizione di terminazione del ciclo oppure, equivalentemente, la condizione di permanenza del ciclo. - Ciclo While. Ha la funzionalità di ripetere delle istruzioni finché una condizione è vera. - Ciclo Do-While. L'unica differenza è che il valore della condizione viene controllato alla fine del ciclo e non all'inizio. In pratica la prima operazione viene sempre eseguita, sia che la condizione sia vera o falsa. - Strutture di dati Una struttura dati è un'entità usata per organizzare un insieme di dati all'interno della memoria del computer, ed eventualmente per memorizzarli in una memoria di massa. La scelta delle strutture dati da utilizzare è strettamente legata a quella degli algoritmi. È un metodo di organizzazione dei dati, quindi prescinde dai dati effettivamente contenuti. Un array è una struttura dati che contiene più elementi dello stesso tipo, disposti in modo ordinato e accessibili tramite un indice numerico. Un array può avere una o più dimensioni, a seconda del numero di indici necessari per individuare un elemento. Un array monodimensionale ha un solo indice. Per accedere a un suo elemento bisogna specificare la sua posizione nella lista, partendo da 0 o da 1 a seconda del linguaggio di programmazione. Un array bidimensionale ha due indici (righe e colonne, come una tabella). Per accedere a un suo elemento bisogna specificare la sua posizione nella tabella indicando la riga e la colonna a cui appartiene. - Reti di calcolatori Una rete di calcolatori è un insieme di calcolatori, collegati tra loro da una rete di comunicazione, nella quale possono condividere informazioni e risorse. Una rete di comunicazione è un’infrastruttura che permette la comunicazione tra un insieme di dispositivi. Le reti, in linea generale, vengono utilizzate per avere accesso alle informazioni, condividere risorse e facilitare la comunicazione.

Quando si parla di reti di calcolatori si usano principalmente per due motivazioni:

  • per le organizzazioni.
    • Condivisione delle risorse. Si possono rendere disponibili a chiunque programmi e informazioni anche distanti migliaia di km.
    • Affidabilità. Si ottiene mettendo in rete sorgenti alternative delle risorse (es duplicando le applicazioni e i dati su più computer).
    • Diminuzione dei costi. Una rete di personal computer costa meno di un mainframe.
    • Scalabilità. si possono aumentare le prestazioni del sistema aumentando il numero degli elaboratori (entro certi limiti).
    • Comunicazione tra persone. È possibile scambiarsi messaggi, file, ecc.
  • per i singoli individui.
  • Accesso alle informazioni remote. Accesso a servizi bancari, acquisti da casa, navigazione sul web, ecc.
  • Comunicazione tra persone. Posta elettronica, videoconferenza, gruppi di discussione.
  • Divertimento. Video on demand, giochi interattivi. Due parametri sono utili per definire le caratteristiche di una rete : la tecnologia trasmissiva e la scala dimensionale. La tecnologia trasmissiva può essere di tipo Rete Broadcast, oppure, di tipo Rete Punto a punto. Le reti broadcast sono dotate di un unico canale di comunicazione condiviso da tutti gli elaboratori. Consistono in brevi messaggi, chiamati pacchetti, inviati da un elaboratore e ricevuti da tutti gli elaboratori. Un indirizzo all’interno del pacchetto specifica il destinatario. La topologia a bus è una topologia di rete passiva: i computer ascoltano i dati trasmessi sulla rete, ma non intervengono nello spostamento di dati da un computer a quello successivo. I dati trasmessi da un computer, se non interrotti, viaggiano da un capo all’altro del cavo, rimbalzano e tornano indietro impedendo ad altri computer di inviare segnali. A ciascuna estremità del cavo viene applicato un componente chiamato terminatore che assorbe i dati liberi rendendo disponibile il cavo per l’invio di altri dati. Se un cavo viene tagliato o se uno dei capi viene scollegato, e quindi uno o più capi sono privi di terminatore, i dati rimbalzano interrompendo l’attività su tutta la rete. Quando un elaboratore riceve un pacchetto esamina l’indirizzo di destinazione, se coincide con il proprio indirizzo il pacchetto viene elaborato altrimenti viene ignorato. Le reti broadcast consentono anche di inviare un pacchetto a tutti gli elaboratori, usando un opportuno indirizzo (broadcasting), in tal caso tutti prendono in considerazione il pacchetto. Un’altra possibilità è inviare il pacchetto ad un sottoinsieme di elaboratori (multicasting). In una topologia a stella (star topology), i computer della rete sono collegati ad un sistema hardware centrale detto Hub. Si tratta di un dispositivo che comprende un certo numero di terminazioni nelle quali è possibile collegare gli apparati. L’Hub ha il ruolo di assicurare la comunicazione tra i diversi collegamenti. Le reti con una topologia a stella sono molto meno vulnerabili dato che una delle connessioni può essere scollegata senza paralizzare il resto della rete.