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


Informatica per la comunicazione, Appunti di Elementi di Informatica

Appunti completi di informatica per la comunicazione con esercizi Algoritmi.

Tipologia: Appunti

2024/2025

In vendita dal 04/04/2025

giulia-andreoli-12
giulia-andreoli-12 🇮🇹

4.9

(18)

34 documenti

1 / 27

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA PER LA COMUNICAZIONE
Introduzione all’informatica
Informatica deriva dal francese informatique, in quanto essa si occupa degli aspetti che riguardano gli
aspetti di elaborazione di informazioni. L'informazione è codificata attraverso simboli. I vantaggi
dell'elaborazione automatica sono:
- tempi di elaborazione, ovvero operazioni più veloci
- Affidabilità nell'effettuare l'elaborazione, meno errori
- Elaborare operazioni meccaniche
ICT: Information & Communication Technology. Collegare gli elaboratori tra di loro, quindi c'è stata una
convergenza fra tecnologie dell'informazione e telecomunicazioni, dando vita all'ICT.
Breve storia degli elaboratori automatici
L'automatizzazione delle funzioni aritmetiche si sono formati già nell'antichità, come con l’uso dell’abaco.
I primi modelli di calcolo automatici avvengono nel XVII secolo come il regolo calcolatore, Pascalina →
essi svolgono solo un compito quelli matematici.
Nell'800 si pensano ad elaboratori universali, ovvero che non svolgono più un unico compito. Babbage
progettò il primo elaboratore con un'unità di memoria per memorizzare i dati e un'unità di calcolo. Ada
Lovelace scrisse i primi programmi che potevano risolvere dei problemi ed essere utilizzati per la
probabile macchina.
Boole inventò l'algebra booleana, l'espressione può avere solo due valori vero o falso.
Nel 900 arrivano i primi risultati concreti. Il matematico Alan Turing ideò un modello teorico, detto
macchina di Turing. Il primo prototipo di macchina venne ideato in Germania nel '41, detta Z1. A partire
dal 1943 vengono progettati modelli di calcolatore elettronico. EDVAC: Electronic Discrete Variable
Computer, primo elaboratore funzionante; Von Neumann lavorò a questo progetto, oltre a costruire la
macchina costruiscono anche lo schema delle componenti principianti della macchina e come devono
comunicare fra loro.
Anni '50: introduzione di transistor.
Anni ’60: produzione dei primi microprocessori (che occupano meno spazio), basati su circuiti integrati.
Negli anni ‘70 diffusione dei PC: iniziano ad essere utilizzati da tutti i cittadini.
Negli anni ‘80 ci fu un cambio interazione tra macchina e utente → nascita interfaccia grafica.
Macchina di Turing
Alan Turing è considerato il padre dell'informatica. La Macchina di Turing è un modello teorico di
elaborazione automatica; Turing voleva rendere automatico il processo di una persona quando svolge i
calcoli. Elementi che costituiscono la macchina di Turing:
- La macchina comprendere un alfabeto di simboli; Alfabeto A = { 0,1, þ} blank: simboli finti
- La macchina ha un nastro che è suddiviso in celle, ognuna di essa contiene un simbolo. Il
nastro è costituito da un insieme infinito (binifiito) di celle, questo per vedere i limiti della
macchina e per non avere limiti di calcolo
- Unità di controllo ha una testina che accede al nastro e può
leggere e scrivere sul nastro e si può spostarsi nel nastro. La
testina si può trovare in uno stato.
- Tabella delle azioni, specifica quello che la macchina deve
fare
Il funzionamento della macchina di Turing è un funzionamento meccanico guidato da un insieme di
regole in base allo stato della testina e il simbolo letto. La regola indica: il simbolo da scrivere nella cella,
il cambio di stato dell'unità di controllo e il movimento della testina (stare ferma, a sinistra o a destra).
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Anteprima parziale del testo

Scarica Informatica per la comunicazione e più Appunti in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA PER LA COMUNICAZIONE

Introduzione all’informatica

Informatica deriva dal francese informatique , in quanto essa si occupa degli aspetti che riguardano gli aspetti di elaborazione di informazioni. L'informazione è codificata attraverso simboli. I vantaggi dell'elaborazione automatica sono:

  • tempi di elaborazione, ovvero operazioni più veloci
  • Affidabilità nell'effettuare l'elaborazione, meno errori
  • Elaborare operazioni meccaniche

ICT : Information & Communication Technology. Collegare gli elaboratori tra di loro, quindi c'è stata una convergenza fra tecnologie dell'informazione e telecomunicazioni, dando vita all'ICT.

Breve storia degli elaboratori automatici L'automatizzazione delle funzioni aritmetiche si sono formati già nell'antichità, come con l’uso dell’abaco. I primi modelli di calcolo automatici avvengono nel XVII secolo come il regolo calcolatore, Pascalina → essi svolgono solo un compito quelli matematici. Nell'800 si pensano ad elaboratori universali, ovvero che non svolgono più un unico compito. Babbage progettò il primo elaboratore con un'unità di memoria per memorizzare i dati e un'unità di calcolo. Ada Lovelace scrisse i primi programmi che potevano risolvere dei problemi ed essere utilizzati per la probabile macchina. Boole inventò l' algebra booleana , l'espressione può avere solo due valori vero o falso. Nel 900 arrivano i primi risultati concreti. Il matematico Alan Turing ideò un modello teorico, detto macchina di Turing. Il primo prototipo di macchina venne ideato in Germania nel '41, detta Z1. A partire dal 1943 vengono progettati modelli di calcolatore elettronico. EDVAC: Electronic Discrete Variable Computer, primo elaboratore funzionante; Von Neumann lavorò a questo progetto, oltre a costruire la macchina costruiscono anche lo schema delle componenti principianti della macchina e come devono comunicare fra loro. Anni '50: introduzione di transistor. Anni ’60: produzione dei primi microprocessori (che occupano meno spazio), basati su circuiti integrati. Negli anni ‘70 diffusione dei PC: iniziano ad essere utilizzati da tutti i cittadini. Negli anni ‘80 ci fu un cambio interazione tra macchina e utente → nascita interfaccia grafica.

Macchina di Turing Alan Turing è considerato il padre dell'informatica. La Macchina di Turing è un modello teorico di elaborazione automatica; Turing voleva rendere automatico il processo di una persona quando svolge i calcoli. Elementi che costituiscono la macchina di Turing:

  • La macchina comprendere un alfabeto di simboli ; Alfabeto A = { 0,1, þ} blank: simboli finti
  • La macchina ha un nastro che è suddiviso in celle , ognuna di essa contiene un simbolo. Il nastro è costituito da un insieme infinito (binifiito) di celle, questo per vedere i limiti della macchina e per non avere limiti di calcolo - Unità di controllo ha una testina che accede al nastro e può leggere e scrivere sul nastro e si può spostarsi nel nastro. La testina si può trovare in uno stato. - Tabella delle azioni, specifica quello che la macchina deve fare

Il funzionamento della macchina di Turing è un funzionamento meccanico guidato da un insieme di regole in base allo stato della testina e il simbolo letto. La regola indica: il simbolo da scrivere nella cella, il cambio di stato dell'unità di controllo e il movimento della testina (stare ferma, a sinistra o a destra).

Secondo Turing è possibile costruire una macchina universale , una macchina che imita il comportamento di qualunque macchina di Turing. Essa ha due tipi di input: da una parte i dati e dall'altra le istruzioni. Ci sono dei problemi che non sono risolvibili. Ci sono modelli alternativi che possono risolvere i problemi che la macchina di Turing non è in grado di fare? I modelli sono equivalenti che risolvono gli stessi problemi, Turing equivalenti. Tesi Church-Turing: l’insieme dei problemi risolvibili tramite metodi meccanici equivale all’insieme dei problemi risolvibili dalla macchina di Turing.

Algoritmi

Elaborazione è divisa in tre parti:

  1. Fasi di input o lettura: come leggere i dati in ingresso
  2. Vera e propria fase di elaborazione
  3. Fase di output o scrittura: come mostrala all'esterno Questo processo di elaborazione ha una funzione/obiettivo di risolvere un problema. Il problema è la trasformazione dei dati in input e il calcolo della soluzione. L'algoritmo descrive le modalità in cui si trasforma e calcola il problema. L'algoritmo è un metodo per calcolare la soluzione di un problema, questo avviene tramite una sequenza di istruzioni per elaborare i dati di input e produrre la soluzione. L'algoritmo deve avere le seguenti proprietà:
  • Finitezza : l'algoritmo ad un certo punto termina
  • Eseguibilità : descrizione delle istruzioni di base che un elaboratore automatico è in grado di eseguire
  • Correttezza : algoritmo deve trovare un soluzione corretta per ogni input
  • Determinismo : algoritmo deve avere lo stesso comportamento per lo stesso input Per far sì che l'algoritmo funzioni si deve scrivere un programma, ovvero un algoritmo scritto in linguaggio comprensibile a un computer. Il processo è un programma in esecuzione. Dato un algoritmo si possono avere tanti programmi e per ogni programma si possono avere tanti processi.

Diagrammi di flusso I Diagrammi sono forme grafiche per definire le fasi dell'elaborazione. Di flusso: descrivere i flussi dell'elaborazione. I blocchi rappresentano le fasi di un algoritmo, che sono collegati fra di loro con linee di flusso, che servono per descrivere il flusso dell'elaborazione. C'è un solo blocco di inizio (ovali), questo perché serve per garantire il determinismo. Possono esserci più blocchi di fine (ovali)

Blocco operazione (rettangoli): operazione svolta, descritta all’interno del blocco. Blocchi di input (parallelogramma) rappresentano la lettura. Blocchi di output (foglio) rappresentano la scrittura.

Un algoritmo deve prevedere la memorizzazione di dati (in input, in output, dati intermedi). Il dato è una quantità di informazione memorizzabile e si può elaborare con una singola operazione. Per memorizzare

Verificare l'uguaglianza tra due valori (==) confrontare il contenuto di una variabile con qualcosa d'altro, es. x == y → Se x e y valgono 5 → vero; Se x vale 3 e y vale 5 → falso Operatore di disuguaglianza tra due valori (!) , es. x!=y → Se x vale 3 e y vale 5 → vero; Se x vale 3 e y vale 3 → falso Per i numeri ci sono i numeri di ordinamento < oppure > verifica se il primo valore è minore oppure maggiore del secondo valore, es. x<y Se x = 3, y = 5 → vero; Se x = 5, y = 5 → falso; si può usare anche <= e >= Operazioni logiche che cambiano i valori logici e altre che servono per combinare dei valori. Operazioni logiche minimali:

  • negazione! → operatore che cambia il valore, x è una condizione; nega il valore booleano a cui è applicato. La seconda colonna (x!)

cambia il valore di x. si applica a una singola condizione ↪

  • Congiunzione & → vera se entrambi i valori a cui è applicata sono veri; viene applicata a più condizioni; x e y sono delle condizioni. X & Y è vero se X è vera e y è vera, negli altri casi è falsa
  • Disgiunzione | → vera se almeno uno dei valori a cui è applicata è vero. x e y sono delle condizioni, basta che una delle due sia vera x|y risulta vera

Esempio 1: !(x==y) : vera quando x e y hanno valori differenti → x = 5 e y = 10: !(x==y) ha valore vero si nega quello all'interno delle parentesi (da falso a vero) → se x = 10 e y = 10: !(x==y) ha valore falso

Esempio 2: (x>=100) & (x <y): vera quando x ha un valore:

  • =

  • x<y → se x = 99 è falsa, in quanto la prima parte e falsa e quindi è tutto falso → se x=100 e y=100 è falsa in quanto y è falso e quindi tutto è falso → se x=120 e y=200: (x>=100) & (x<y) valore vero

Esempio 3: (x>100) | (x <y) vera quando

  • x> 100
  • x < y
  • x > di 100 e < y → Se x vale 101 e y vale 70? vera → Se x vale 90 e y vale 80? falsa → Se x vale 70 e y vale 101? vera

Tipologie di strutture di controllo:

  • Diramazione si hanno due alternative e a seconda di cosa c'è scritto seguo una delle alternative
  • Iterazione o ciclo, si crea una struttura ciclica

Diramazioni : Quando si arriva al blocco di controllo, se la condizione è vera si segue una strada se è falsa un'altra. Nei linguaggi di programmazione diramazione → costrutto IF-THEN-ELSE

→ ci può essere un'altra diramazione, una operazione, ecc…

Esempio 1 Un algoritmo che: Legge due numeri e Restituisce il numero massimo

Esempio 2 Se bilancio >= 0 attivo Se bilancio < 0 passivo

Esempio 3 Scriviamo un algoritmo che legge tre numeri e restituisce il numero massimo → 3 numeri coinvolti quindi tre diramazioni

Esempio 4 Legge un numero in ingresso Se n< 100, stampa in output n<100 Se n≥100, stampa in output “n ≥ 100”

Esempio 2: Scrivere un algoritmo che usando solo le operazioni aritmetiche di base ● Legge un dato x ● Calcola 2 𝑥

2*x volte Potenza >=1 per contenere un valore "corretto" e non crea problemi

X ← x-1 ogni volta che faccio una moltiplicazione 2 tolgo un valore x>=1 oppure x> x=1 vero p= Alla variabile p assegna 2 ← 1 Variabile x -1 → 1 -1 = 0 X = 0 falso

Esempio 3: Scrivere un algoritmo che ● Legge la base x e l’esponente y ● calcola il valore 𝑥𝑦

x * y volte La variabile y ci dice quante volte fare l'iterazione

Esempio 4: Scrivere un algoritmo usando l'iterazione per ● la lettura di dieci numeri ● la copiatura nel vettore v dei numeri, nelle celle 𝑣𝑜,v1 ,…, v

Variabile i ← 0 (primo indice dove si memorizza il dato V0)

Quando si arriva a 9 finiscono le celle

Esempio 6: Scrivere un algoritmo per calcolare il valore massimo in un vettore v di 10 celle Max ← 𝑣 0 perché bisogna trovare il massimo tra i vettori Secondo blocco di controllo 𝑣𝑖> max per vedere se il vettore è maggiore o minore del max precedente. Max ← 𝑣𝑖 se condizione vera in quanto più alta Prima iterazione sempre falsa

Esempio 5: Scrivere un algoritmo per determinare la somma dei numeri contenuti in un vettore di 5 elementi (v0 , v1 ,…, v4)

h ← 0 perché non altera il risultato essendo una somma I ← 0 perché si inizia dalla cella 0 I ← i + 1 perché passo alla cella successiva Es. 0 <= 4 vero 8 + 0 = 8 (h) 0 +1 --> 1(i) → vettori 1<= 4 vero 8 + 2 =10 (h) 2 ← 1 + 1 (i) 2 <= 4 vero 10 + 12 = 22 (h) 3 ← 2 +1 (i) 3<= 4 vero 22 + 3 =25 (h) 4 ← 4 +1 (i) 4<=4 vero 25 + 5 = 30 (h) 5 ← 4 +1 (i) 5 <= 4 falso Output 5

Per calcolare la media aritmetica? H ← h/i i sarà 5 (numero di valori che si sono sommati) →

Esempio 7: Scrivere un algoritmo per determinare la somma dei primi 5 numeri > 10 di un vettore T ← 0 variabile che indica quanti valori > di 10

T <=4 perché al quinto numero "finiscono i posti" H ← h + 𝑣𝑖 T ← t +1 poiché aggiungo il numero tra quelli maggiori di 10

Esempio 8: Scrivere un algoritmo che: dati due vettori x, y di 5 celle, scrivere in un vettore v di 10 celle: ● Il contenuto di x nelle prime 5 celle di v ● Il contenuto di y nelle ultime 5 celle di v

X0 X1 X2 X3 X

Y0 Y1 Y2 Y3 Y

V0 V1 V2 V3 V4 V5 V6 V7 V8 V Vi ← Xi Vi+5 ← Yi perché passa alla seconda parte del vettore V

Memoria primaria , quella utilizzata dalla CPU ● Memoria secondaria , affiancata a quella primaria ● Periferiche di input e output ● Bus di comunicazione ● Orologio di sistemaCase : involucri che ricoprono le componenti interne alla macchina ● AlimentatoreScheda madre : circuito stampato che ha diversi alloggiamenti al suo interno in cui si inseriscono i vari componenti. Permette la comunicazione tra le componenti: bus.

Il processore La CPU (Central Processing Unit) è l’unica componente di elaborazione ed esegue istruzioni in linguaggio macchina. Il ciclo macchina avviene in modo sequenziale (a ogni impulso inizia un ciclo macchina e viene fatta solo un'operazione) e ciclico. Quando inizia il ciclo la CPU non conosce subito l'istruzione, ma deve leggerla nella memoria centrale. La CPU è costituita da circuiti integrati in cui ci sono degli transistor. I transistor quando riceve energia possono trasmettere in uscita due segnali: tensione alta o tensione bassa (no corrente) → due perché il linguaggio è binario. I numeri di transistor sulla cpu continuano ad aumentare, migliorando la macchina. Legge di Moore : la quantità di transistor su una CPU raddoppia ogni due anni. Evoluzione di elaborazione e capacità di memorizzazione La CPU ha due parti fondamentali: ● ALU (Arithmetic Logic Unit): svolge operazioni aritmetiche e logiche (logiche → legate alle condizioni dei diagrammi o quelli booleani). Dotata di alcuni registri per la memorizzazione dei dati di input/output ● Unità di controllo : controlla la fase di elaborazione. Unità di controllo coordina il funzionamento della CPU e trasferimento dati dalla memoria. La macchina deve usare il registro PC e IR La CPU deve avere delle piccole memorie, dette registri, per lavorare: ● IR (Instruction Register): registro della CPU che immagazzina l'istruzione in fase di elaborazione, la memoria copia quello scritto dell’istruzione da eseguire ● PC (Program Counter): al proprio interno regista un indirizzo di memoria che contiene l'istruzione che si deve eseguire ● PSW (Process Status Word)

Fasi del ciclo macchina:

  1. Lettura (fetch) : fa capire il funzionamento della macchina e la comunicazione tra cpu e macchina centrale. La CPU legge l'indirizzo di memoria che c'è nel PC, poi comunica tramite il bus indirizzo alla memoria. Poi riceve la richiesta e poi invia la risposta, questa viene ricevuta dalla CPU e copiata nell'IR. Il contenuto del PC viene incrementato, per passare a un'istruzione diversa.
  2. Decodifica : le istruzioni hanno una prima parte (prefisso) che è il codice dell'istruzione e la seconda parte sono i dati che vanno elaborati (operandi)
  3. Esecuzione : esecuzione dell'istruzione di varie operazioni. In genere parte dalla ALU
  4. Scrittura : non sempre c'è, c'è il risultato scritto in un registro interno alla CPU e alla memoria centrale

La velocità dipende dalla frequenza degli impulsi → hertz unità di misura degli impulsi, i gigahertz vengono inviati miliardi di impulsi. P rocessori multi-core (chip con due o più CPU integrate) hanno più di una cpu e svolgono le operazioni in modo parallelo.

La memoria La CPU ha bisogno di una memoria per comunicare. Dispositivo di memorizzazione: immagazzinamento dati e istruzioni utili per l’elaboratore. Caratteristiche fondamentali di una memoria generica: ● velocità della memoria ● capacità di memorizzazione ● memorizzazione permanente o temporanea ● costo della memoria

Tipi di memoria: ● registri interni alla CPUmemoria centrale : memoria temporanea o di lavoro oppure memoria RAM (Random Access Memory, memoria ad accesso casuale oppure accesso dirett o). Per accedere alla cella bisogna specificare l'indirizzo. È volatile, deve essere alimentata da energia elettrica ● memoria di massa (o secondaria): area di memorizzazione permanente ● di sola lettura o ROM (Read Only Memory )

La memoria centrale o memoria RAM prevede l'accesso all'accesso casuale, che si accende in modo diretto ad una cella tramite l'indirizzo. Qualunque sia la cella il tempo di accesso è sempre lo stesso, quindi detto costante. Caratteristiche della memoria centrale:

  • contiene istruzioni e dati che la CPU elabora
  • costituita da celle
  • ogni cella identificata da un indirizzo univoco
  • viene detta RAM
  • è una memoria volatile

Le memorie hanno altri tipi di accesso: ● Accesso sequenziale : si fa una sequenza di operazioni predefinite che per arrivare in una zona di memoria si deve passare da altre zone. Per leggere un dato il tempo è variabile, dipenda dal punto dove è posizionata la testina e la zona che si deve raggiungere. Esso è tipico dei nastri. ● Accesso misto : serie di accessi seguiti da una ricerca sequenziale e il tempo varia a seconda di dove si trova il dato, dipende da dove si deve recuperare il dato e dove si trova la testina. Esso è tipico dei dischi. ● Accesso associativo : utilizzata dalla memoria Cash

Memoria ROM (Read Only Memory) : ha scopi limitati, è una memoria di sola lettura ed è permanente. Contiene delle informazioni che servono alla macchina quando è in fase di avvio (bootstrap).

La memoria secondaria o di massa è nata perché bisognava coprire i problemi della memoria centrale, in quanto essa volatile e con capacità limitata. Caratteristiche memoria secondaria: ● Permanente ● Grande capacità, si possono memorizzare moltissimi dati ● Modificabile Capacità di memorizzazione dei dispositivi di memoria: ● Memoria centrale → attualmente si arriva ad alcuni GB ● Memoria secondaria → centinaia di GB o TB

Ci sono diversi dispositivi di memorizzazione di massa e hanno diverse caratteristiche: ● Persistenza dei dati ● Tempo di accesso maggiore rispetto alla RAM ● Minor costo per bit

  1. Memoria centrale
  2. Memoria di massa

Cache → dati che il dispositivo raccoglie Memoria Cache: Consideriamo un dispositivo di memoria M: ● Una cache per M è un dispositivo → Con capacità inferiore rispetto a M e Maggiore velocità rispetto a M ● Nell’accesso ai dati in M → Copia di una parte dei dati nella cache, qui la CPU guarda per prima se c'è un dato, diminuendo il tempo Principi di località, organizzano la gerarchia e indicano quali dati devono stare nella memoria cache, ci sono due tipi: ● Località spaziale : se un programma accede ad una cella di memoria, nel prossimo accesso macchina avverrà anche un accesso alle celle vicine ● Località temporale : se un programma accede ad una cella, nel nuovo accesso avverrà nella medesima cella. L’aggiornamento della memoria cache di M segue una politica di aggiornamento: ● accesso a cella x non contenuta nella cache di M ● ricerca in M ● spostamento del dato nella cache, insieme ad altri dati nelle vicinanze (località spaziale) ● dati eliminati dalla cache → usati nel momento più lontano (località temporale)

Accesso associativo : esso è dipendente dal valore che si sta cercando, tempo di accesso costante per ogni cella, usato nelle memorie cache, questo equivale a un accesso diretto, ma più veloce. Esso è usato nelle memorie cache.

Le periferiche Componenti che permettono di comunicare con l'esterno; ci sono due tipologie: ● Periferiche di inputPeriferiche di output Le periferiche sono controllate da interfaccia: scheda collegata a bus di sistema. Esse internamente hanno delle schede che sono collegate alla scheda madre, esternamente queste schede hanno delle porte di comunicazione. Ci sono diversi connettori: USB, VGA, HDMI, … Le periferiche di input sono: ● tastierastrumenti di puntamento : servono per interazione con il computer, il primo di questi strumenti è il mouse, altre son trackball, touchscreen e touchpad ● scanner esse servono per ricevere informazioni in ingresso. Le periferiche di output sono: ● schermo : rappresentazione di informazione finita e i valori dell'informazione → discretizzazione. Elemento rappresentato come una serie di elementi minimali in una griglia. Le immagini discretizzate sono costituite da punti: pixel (picture element). I pixel sono costituiti da cristalli liquidi. Ogni pixel è suddiviso in tre piccoli parti (rosso, verde, blu, detti subpixel) e permette la formazione dei colori, ogni subpixel controlla un colore, ci sono 256 possibili gradazioni. Ogni pixel ha 256256256= 16.777.216 colori. Profondità di colore : numero colori utilizzati per ogni pixel. Risoluzione di uno schermo : numero massimo di pixel rappresentabili: n. pixel orizzontali * n. pixel verticali Dimensione dell’immagine visibile in pollici: diagonale del monitor Rapporto d’aspetto : rapporto tra base e altezza ● stampanti , uso della discretizzazione, immagine rappresentata da punti discreti ● casse.

La GPU supporta la CPU ed evita che essa sia sovraccarica di calcoli. Frequenza di aggiornamento : il contenuto dello schermo deve essere aggiornato. La frequenza cambia in base al contenuto. Angolo di visibilità : misura quanto la visione è buona quando l'utente si sposta

Tre tecnologie principali delle stampanti: ● Getto d'inchiostro : diffusa soprattutto in ambito domestico, il foglio scorre sotto una testina che applica l'inchiostro. ● Laser : usano tecnologia simile alle fotocopiatrici. I punti delle immagini sono definiti dal raggio laser che passa sul foglio, i punti del rullo caricati elettrostaticamente. L'inchiostro, detto toner, è fatto in polvere. Tramite il riscaldamento i punti vengono trasferiti sul foglio. ● A impatto Discretizzazione: valutare la qualità del processo, quanto è fedele all'immagine che deve essere stampata. La risoluzione (misura standard), ovvero la densità di punti stampati sul foglio, si misura con il dpi (dots per inch). La velocità di stampa, numero di pagine che si stampano in un certo tempo, si misura in ppm (pages per minute) , questa misura non è standardizzata, perché le pagine non sono tutte uguali e perché si può gestire la qualità di stampa.

Lo Scanner è una periferica di input, viene usata la discretizzazione. Lo scanner permette di acquisire testi e immagini di un documento cartaceo. Il foglio viene diviso in puntini e questi devono contenere un colore. Lo scanner utilizza un meccanismo ottico: una luce colpisce il foglio, bisogna vedere se il puntino riflette la luce o meno. La qualità del monitor riguarda la risoluzione, con l'unità di misura ppi (points per inch). Qualunque testo acquisito per l'elaboratore è sempre un'immagine. Dopo la scansione vengono applicate le tecnologie OCR ( Optical Character Recognition ), ovvero un software che riconosce i punti come i caratteri corrispondenti.

Il Software

Esistono varie tipologie di software e ci sono due famiglie principali: ● Software applicativo : costituito da tutti i programmi e applicazioni per risolvere problemi specifici ● Software di base o sistema operativo : software che ha come scopo quello di gestire l'elaboratore Le funzioni che ha il sistema operativo sono due: ● Gestisce tutte le componenti della macchina, come CPU, periferiche…, per far si che il computer funzioni nel miglior modo possibile ● Semplificare l'uso della macchina e di tutte le sue componenti, per ognuna delle risorse viene applicata la virtualizzazione o astrazione. Questo viene fatto a beneficio per l'interfaccia per l'utente e per i programmi applicativi Elementi del sistema operativo: ● Gestore della CPU: Nucleo (kernel) ● Gestore della memoria centrale ● File system, memorizzazione di massa ● Gestore della rete ● Interprete dei comandi, interfaccia con cui si interagisce con la macchina ● Gestione delle periferiche Sistemi operativi: Microsoft Windows; Unix; Linux; Mac OS

Gestione della CPU I primi elaboratori avevano un interazione diretta e il lavoro della Memoria RAM era tutta dedicata a un solo programma in esecuzione ( sistemi monoprogrammati). Erano privi di sistemi operativi. Uso di

dei meccanismi di memorizzazione. Tipologie di elementi usa il file system: cartelle (contenitori di altri elementi) e file (contengono dati). Il file system utilizza cartelle e file per costituire una struttura ad albero è una struttura logica gerarchica: la radice dell'albero è una cartella che contiene tutti i dati che stanno sul computer; i file sono le foglie è il punto finale della gerarchia. I file possono essere identificati con il nome, il percorso assoluto specifica il percorso che si fa dalla radice dell'albero fino a un determinato file (Pathname). Ci può essere anche il percorso relativo ovvero il percorso che parte dalla cartella corrente. Il file system memorizza alcune caratteristiche fondamentali di un file:

  • Formato del file si capisce dall'estensione del file, es. .pdf, .docx …
  • Occupazione di memoria
  • Informazioni temporali, quando è stato creato, quando sono state fatte le modifiche…
  • Diritti di accesso, chi può utilizzare il file

Gestione delle periferiche L'obiettivo del gestore è quello di offrire agli utenti finali delle periferiche virtuali. I gestori offrono dei comandi di alto livello, virtualizzano la comunicazione con le periferiche, anche le applicazioni si affidano al sistema operativo. I conflitti di utilizzo si hanno quando le risorse sono condivise (es. stampanti di rete condivise con più utenti). Il driver è una componente software (già compresa nel sistema oppure viene aggiunto) e gestisce la comunicazione di una periferica. Esso nasconde i dettagli del controller, fornisce comandi di alto livello e traduce dei comandi astratti in comandi specifici.

Interfaccia utente Interazione tra utente e macchina. Anni '70-'80 passaggio da un interazione all'altra: interazione avveniva con la linea di comando , per vedere qualcosa si deve digitare un comando, se il comando è corretto la macchina restituisce la soluzione in un elenco testuale. Questo modello è troppo complesso per gli utenti quindi si progettano delle interfacce GUI; l'interazione cambia e avviene tramite oggetti, ovvero finestre (circoscrizione dell'interazione), icone WIMP (windows icon mouse pointing). Metodi di autenticazione degli utenti:

  • Dimostrazione di conoscenza: utente e password
  • Dimostrazione di possesso: possesso di una smart card o telefono (doppia autenticazione)
  • Dimostrazione di caratteristiche fisiche dell'utente: impronte digitali, volto, retina

Software maligni Applicazioni o programmi il cui obiettivo è infiltrarsi in un dispositivo sfruttando le debolezze di un sistema. La famiglia dei software maligni è detta Malware , esistono vari tipi:

  • Virus : istruzione nascoste che infettano il programma quando si avvia ed estenderlo ad altri programmi, inoltre danneggia l'elaboratore e cancellare i file.
  • Worm : programmi hanno lo scopo di diffondersi attraverso la rete
  • Cavallo di Troia : quando si vuole prendere controllo di una macchina, un programma che è nascosto all'interno di un altro programma, il secondo programma prende il controllo della macchina
  • Spyware: tracciare il tipo di attività dell'utente
  • Adware : software maligni utilizzati a scopo pubblicitario

Rappresentazione dei dati

Modalità in cui i dati vengono rappresentati sui dispositivi. Ci sono diverse tipologie di dati:

  • Numerica
    • Testi
      • Immagini
      • Audio
      • Video

Il codice binario rappresenta tutte queste tipologie di dati. La codifica rappresenta una determinata informazione, bisogna rappresentare un legame (corrispondenza biunivoca) tra i possibili valori che si vogliono rappresentare e un insieme/sottoinsieme di numeri naturali. Non ci devono essere possibili ambiguità. La codifica viene definita per facilitare la comunicazione tra dispositivi e quindi vanno definite degli standard basati sulle convenzioni di comunicazioni. Se non ci sono delle regole condivise ci sono dei problemi e delle ambiguità e delle incongruenze. I dispositivi fanno una doppia operazione: codifica e decodifica. Gli elaboratori usano il codice binario e quindi devono associare i dati a una successione delle sequenze di 0 1. Tutte le codifiche devono avere la stessa lunghezza, es. K=1 (2^1) → 1, 0 ; K=2 (2^2) → 00, 01,

10, 11; … Se ho k bit posso costruire una codifica univoca per al più 2 𝑘 entità.

Teoria dell'informazione è l'ambito che studia la codifica e la decodifica. Ingegnere Claude Shannon studia questi aspetti nel 1948. Misura della quantità di informazione contenuta in un supporto.

Informazione analogica e digitale L'informazione viene codificata (anche codificare le relazioni tra dati) in due modi diversi:

  • Codifica analogica : viene rappresentata una certa informazione utilizzando un'informazione simile, es. termometro a mercurio
  • Codifica digitale : codifica che rappresenta l'informazione in forma numerica, associando dei simboli a l'informazione che si sta rappresentando (alfabeto di simboli). Bisogna definire una regola di codifica: legame tra un valore e una sequenza di simboli. L'informazione che si utilizza può essere:
  • Discreta : quando si può definire un insieme di valori e tra un valore e un altro non c'è niente, arriva ad un certo livello di precisione finito; può essere ricondotta ai numeri naturali
  • Continua : quando si prendono due valori ci sono altri valori, arriva ad un certo livello di precisione infinito; Insieme di valori riconducibile ai numeri reali

Rappresentazione binaria di informazione non numerica L'elemento che viene rappresentato è fatto dai simboli dell'alfabeto (codifica univoca). Individuare la codifica del testo:

  • Lettere maiuscolo minuscolo
  • Simboli di interpunzione
  • cifre numeriche e simboli matematici
  • Altri simboli La prima codifica proposta è stata la codifica ASCII , codice standard americano. Obiettivo codifiche: individuare simboli in modo univoco, capire la lunghezza della codifica. La codifica ASCII usava una codifica con 7 bit, successivamente Extended ASCII è stata estesa a 8 bit (1byte). La codifica Unicode usa 16 bit per rappresentare un carattere (+ 65mila simboli distinti), definire uno standard comune per tutto il globo. Obiettivo: favorire interoperabilità. Una variante di questa codifica è la UTF-8 ed è usata per i documenti web: è la codifica più utilizzata sul web, è particolare perché non ha una lunghezza costante, poiché non tutti i caratteri vengono utilizzati con la stessa frequenza.

Codifica degli immagini Rappresentazione digitale delle immagini.Vanno considerati i colori e la forma dell'immagine. La rappresentazione del colore utilizza la codifica RGB , questa codifica additiva , con combinazione colori con varia intensità da 0 a 255; poiché al massimo dei colori ho il bianco per crearlo 255, 255, 255. Codifica CMYK (Ciano, magenta, giallo, nero) ed è un modello sottrattivo , quando hanno intensità nulla hanno si ottiene il bianco. I primi tre colori al massimo non

basati sull'informazione ridondante. Meccanismi di protezione:

  • Schema di protezione : invio messaggio più volte. Se le copie di messaggio sono identiche il messaggio è corretto, se c'è stata un'interferenza i due messaggi non sono uguali. Con questo schema ci si mette il doppio a mandare il messaggio Messaggio: 0110 0111 Messaggio trasmesso: 0110 0110 0111 0111 Messaggio con errore: 0110 1 110 0 0 11 0111
  • Controllo di parità : prevede l'aggiunta di un solo simbolo, detto bit di parità. Si contano quante volte compare 1 nel messaggio → se pari aggiungo 0 se dispari aggiungo 1.

Compressione L'informazione approssimata ma che richiede minor spazio di memoria. Si parte da una certa codifica e si ricodifica quell'informazione occupando meno spazio oppure un'approssimazione dell'informazione. L'efficienza della compressione si misura un rapporto tra file compresso e File non compresso → rapporto di compressione. Esempio Testo da codificare su alfabeto A,C,G,T A: 50 occorrenze C: 20 occorrenze G, T :10 occorrenze

Codifica 1 A: 00 C: 01 G: 10 T: 11

Codifica 2 – più efficiente A: 0 C: 10 G: 110 T: 111

Tecniche di compressione senza perdita di informazione, detta lossless ; codificare stesso messaggio: ● Processo reversibile, non si perde qualità e si può tornare sempre indietro ● Tecniche statistiche → frequenza di simboli ● Sostituzione → ripetizione di simboli ● Compressione non elevata ● WinZip

Tecniche di compressione con perdita di informazione, detta lossy : ● Processo irreversibile ● Eliminazione informazione non rilevante ● Non si rappresenta realmente la stessa immagine, si usano per video, audio e immagini ● Elevati rapporti di compressione ● JPEG, MP3, MP

Rappresentazione dei numeri La rappresentazione dei numeri è anche detta codifica posizionale. Serie di cifre che assumono valori in funzione alla loro posizione. Le cifre sono elevate a potenze della base:

(248) 10 = 2 * 10^2 + 4 * 10^1 + 8 * 10^0

(10010) 2 = 1 * 2^4 + 0 * 2^3 + 1 * 22 + 1 * 2^1 + 0 * 2^0 = (18) 10

Codifiche posizionali rilevanti: ● Codifica binaria (base 2); simboli →{0,1} ● Codifica decimale (base 10); simboli usati →{0,1,2,3,4,5,6,7,8, 9} ● Codifica ottale (base 8); simboli usati →{0,1,2,3,4,5,6,7} → Compattamento maggiore (2^3) ● Codifica esadecimale (base 16); simboli usati → {0,1,2,3,4,5,6,7,8, 9,A,B,C,D,E,F} → compattamento maggiore (2^4)

Se la cifra più a destra è 1 avrò un numero dispari, se è 0 pari in base decimale.

Codifica binaria: rappresentazione dell’informazione nell’elaborazione Il bit è l'unità minima di informazione, permette di distinguere tra due informazioni-possibilità → incertezza tra due configurazioni. Ci sono informazioni più grandi e quindi sono nati multipli del bit: Il Byte è una sequenza di 8 bit → 0 a 2^8 - Kilobyte (KB) 2^10=1.024 byte, si usa l'approssimazione (circa mille byte), quindi si dice circa mille byte, metodo usato anche per le altre misure Megabyte (MB) 2^20=1.048.576 byte (circa un milione di byte) Gigabyte (GB) 2^30=1.073.741.824 byte (circa un miliardo di byte) Terabyte (TB) 2^40=1.099.511.627.776 byte(circa mille miliardi di byte)

Qual è la rappresentazione decimale del numero binario "111"? 12^0 + 12^1 + 1*2^2 = 7 Qual è la rappresentazione in binario del numero decimale "11"? 11/2=5 resto 1 ; 5/2=2 resto 1 2/2= resto 0 1/2= 0 resto 1 → 1011

Reti e web

La telematica è la fusione dell'informatica e le telecomunicazioni; si capisce che i dispositivi potevano trasmettere a distanza informazioni e nasce la rete di calcolatori, ovvero insieme di dispositivi interconnessi. La rete dipende dall'estensione e ce ne sono diverse: ● Reti PAN sono reti personali, numero di utenti molto limitato ● Reti LAN sono reti locali, usati da istituzioni o aziende ● Reti MAN sono reti metropolitane, estensione di una grande città ● Reti WAN sono reti geografiche, estensione regionale o nazionale Distinzione del mezzo in cui la rete viaggia: ● Mezzi guidati , dati viaggiano via cavi. Uso di cavi telefonici (Velocità: 200 Mbps) oppure fibre ottiche (Velocità: 10 Gbps) ● Mezzi non guidati , segnale irradiato nell'etere come Wi-Fi o rete telefoni mobili

Tecnologia DSL (Digital Subscriber Line): la linea telefonica trasmette dei segnali, la prima parte delle frequenze erano usate sia per la voce sia per i dati. Poi si è scoperto che ci sono altre frequenze: si potevano trasmettere altro su altre frequenze più potenti e quindi usato solo trasmissione di dati → due vantaggi: usare più dispositivi e aumento velocità di comunicazione. Si è notato che gli utenti domestiche