Testo di riferimento per i vari corsi
Clicca per acquistare su Amazon il libro Programmazione Python per le scienze della vita
Le slide fanno riferimento al Capitolo 1 – Information Tecnology (pp. 3 a pp 43)
Information Technology (IT)
Hardware e Software
Prof. Salvatore Mancarella
salvatore.mancarella@unisalento.it
© Salvatore Mancarella
Informatica
´ Si è soliti dire che la parola “informatica” derivi
dall’unione di due termini francesi,
´ information e automatique,
´ e si aggiunge che essa fu coniata nel 1962 da Philippe
Dreyfus, ma nella scienza nulla nasce all’improvviso
´ e già qualche anno prima (nel 1957) un matematico,
tedesco Karl Steinbuch, aveva escogitato la parola
Informatik per designare una procedura di calcolo
assistita da una procedura previamente definita
© Salvatore Mancarella
Informatica
´ Questo è l’aspetto chiave: riuscire ad ottenere
informazioni a partire da un insieme di dati elaborati
da una procedura stabilita in precedenza.
´ Un po’ alla volta alla procedura predefinita si dette il
nome di programma e la elaborazione assistita da un
programma fu detta automatica.
´ Un programma è scritto attraverso un Linguaggio di
programmazione
© Salvatore Mancarella
Informatica
´ Per informatica intendiamo perciò una scienza che
studia come elaborare e memorizzare le informazioni
con l’ausilio di procedure automatiche.
´ Questo è l’aspetto chiave: riuscire ad ottenere
informazioni a partire da un insieme di dati elaborati da
una procedura stabilita in precedenza.
© Salvatore Mancarella
Information technology
´ Negli ultimi anni, grazie alle recenti evoluzioni
tecnologiche nel campo dei computer, al termine
informatica è stato affiancato il termine tecnologia, in
inglese “information technology” (tecnologia
dell’informazione – IT).
´ Information Technology (IT) è l’espressione che indica la
tecnologia usata dai computer per creare, memorizzare
e utilizzare l’informazione nelle sue molteplici forme (dati,
immagini, video, rappresentazioni multimediali ecc.).
© Salvatore Mancarella
Computer
´ Il computer è – semplicemente – un sistema di
elaborazione dati
´ possiamo dire che persino quando lo si usa per scrivere
un documento, sviluppa operazioni comportano sempre
e comunque una qualche elaborazione di dati.
© Salvatore Mancarella
Computer
© Salvatore Mancarella
Modello di Von Neumann
´ Negli anni 50 del secolo scorso, Von Neumann,
matematico, fisico e informatico ungherese,
naturalizzato statunitense, ha utilizzato il suo modello
per la creazione del primo computer digitale (IAS
machine) antagonista al modello Harward che
prevedeva due distinte memorie centrali, una per i
dati e una per i programmi Il modello di Von
Neumann prevedeva invece una sola memoria per i
dati e programmi
´ Il modello di Von Neumann rappresenta ancora oggi
uno dei modelli principali dei calcolatori moderni,
naturalmente negli anni si sono evolute le tecnologie
ma il modello base è rimasto sempre lo stesso.
© Salvatore Mancarella
Modello di Harvard
© Salvatore Mancarella
Modello di Von Neumann
© Salvatore Mancarella
Modello di Von Neumann
1
4
© Salvatore Mancarella
CPU
ꢀ La CPU (o processore, microprocessore) ha come compito
fondamentale l’esecuzione delle istruzioni dei programmi
che il computer esegue.
ꢀ Si avvale di una serie di componenti, al suo interno, che
svolgono dei compiti specifici:
○ ALU: Unità Aritmetico Logica
○ CU: Unità di Controllo, coordina l’acquisizione e
l’esecuzione delle istruzioni
○ Clock: un orologio di sistema che sincronizza
componenti e istruzioni.
○ Registri interni: memorizzano temporaneamente
istruzioni e risultati parziali delle operazioni.
© Salvatore Mancarella
CPU Intel: in pratica
Fascia alta:
´ i3: utilizzo basilare (navigazione web, documenti, multimedia)
´ i5: utilizzo medio, sistema più veloce e prestante
´ i7: prestazioni elevate (video-editing, modellazione 3D)
´ i9: prestazioni molto elevate
© Salvatore Mancarella
CPU AMD: in pratica
Fascia alta:
ꢀ Ryzen 3: utilizzo basilare (navigazione web, documenti,
multimedia)
ꢀ Ryzen 5: utilizzo medio, sistema più veloce e prestante
ꢀ Ryzen 7: prestazioni elevate (video-editing, modellazione 3D)
ꢀ Ryzen 9: prestazioni molto elevate (12, 16 core, 24, 32 thread)
© Salvatore Mancarella
Le memoria
ꢀ Le memorie sono destinate al salvataggio di dati e
alla lettura di essi.
ꢀ Sono caratterizzate dai seguenti parametri:
○ Capacità: quantità di spazio disponibile
○ Volatilità: indica se la memoria può o meno mantenere il dato
in assenza di corrente
○ Tempo di accesso: intervallo di tempo necessario per
completare una lettura o una scrittura
○ Velocità di trasferimento: quantità di dati trasferiti nell’unità
di tempo
○ Costo per bit: prezzo
© Salvatore Mancarella
Memorie: capacità
ꢀ La quantità di spazio di memoria è misurata in
byte e multipli.
ꢀ Un Byte è una sequenza di 8 Bit (Binary DigIT).
ꢀ Un Bit è l’unità di informazione più elementare
che si può rappresentare e può valere 0 oppure 1.
ꢀ Il byte ha i suoi multipli (principali):
○ 1 kilobyte (1 KB) = 1024 byte
○ 1 megabyte (1 MB) = 1024 kilobyte
○ 1 gigabyte (1 GB) = 1024 megabyte
○ 1 terabyte (1 TB) = 1024 gigabyte
© Salvatore Mancarella
Tipologie di memorie: Memoria Centrale (RAM)
ꢀ La RAM (Random Access Memory) contiene, durante l’esecuzione dei
programmi, le istruzioni dei programmi che, via via, la CPU deve eseguire.
ꢀ Memoria volatile: i dati vengono persi allo spegnimento o al riavvio del
sistema.
ꢀ Accesso casuale: il tempo di accesso è indipendente dalla posizione del
dato.
ꢀ Organizzata in celle, caratterizzate da un indirizzo (accessibile tramite il
bus indirizzi) e da un valore (accessibile tramite il bus dati).
ꢀ Il numero di celle indirizzabili (spazio di indirizzamento) dipende dal
numero di bit con cui opera l’architettura (e il sistema operativo):
○ 32 bit → 232 indirizzi → 22 ∙ 230 = 4GB
○ 64 bit → 264 indirizzi → 24 ∙ 260 = 16GB ( 16 mln GB)
© Salvatore Mancarella
RAM e processo d’indirizzamento
2Byte
Memoria
Centrale
© Salvatore Mancarella
Tipologie di memorie: memoria di massa
ꢀ La memoria di massa ha come scopo primario la
memorizzazione permanente delle informazioni al
suo interno.
ꢀ Ha capacità più elevate della RAM
ꢀ Tempi di accesso più bassi della RAM
ꢀ Basso costo per bit
ꢀ Esempi: dischi fissi (hard disk o HDD), DVD, Blue-
ray, chiavette USB, memory card, ecc.
HDD: caratteristiche e differenze
ꢀ Velocità: dei “piatti” dell’hard disk, 5400, 7200, 10000,
15000 rpm (revolutions per minute, giri al minuto)
ꢀ Dimensione: 2,5″ (portatili) o 3,5″ (desktop)
ꢀ Capacità: 500GB, 1TB, 2TB, ecc
Connettore
ꢀ Interfaccia di collegamento: SATA 3.0 se interno, USB (3.0 o
Thunderbolt
3.1) o Thunderbolt se esterno
ꢀ Varie ed eventuali:
○ Eventuale cache presente
○ Tempo di accesso: tempo medio necessario per reperire un dato (es:
USB di tipo C e
USB standard
con HDD a 7200 rpm, circa 9 ms)
○ Velocità di trasferimento: espressa in MB/s, indica la quantità di dati
fornita dall’HDD in un secondo
○ Rumorosità emessa, espressa in dB
© Salvatore Mancarella
Memoria di massa: SSD
Negli ultimi anni si è diffusa una memoria di massa “particolare”: l’ SSD
(Solid State Drive). Svolge la medesima funzione del tradizionale disco
fisso, con alcuni vantaggi:
○ ha solamente componenti a stato solido (flash), come le RAM
○ non ha componenti meccanici, al contrario degli HDD tradizionali
○ Tempi di accesso e archiviazione ridotti (SSD: 0.1 ms, HDD: 5-10
ms)
○ Maggior velocità di
trasferimento dati
○ Non necessitano di
deframmentazione.
Le applicazioni (Programmi)
Un programma è una sequenza finita di istruzioni che, eseguite da un
calcolatore elettronico (secondo la logica definita dal programma stesso),
produce un’elaborazione su dei dati in ingresso per arrivare a produrre dei dati
in uscita, che sono appunto il risultato di questa elaborazione.
OUTPUT
INPUT
DATI IN
INGRESSO
DATI IN
USCITA
PROGRAMMA
Visione lato utente
© Salvatore Mancarella
Programma
´ Siamo nel 1974; Bill Gates e Paul Allen
´ la copertina di “Popular Electronics”
´ Ed Roberts ed era il proprietario di MITS
´ Altair 8800
© Salvatore Mancarella
Le applicazioni (Programmi)
Anche i programmi sono interpretati attraverso un’architettura a strati,
composta da tre moduli funzionali (sottosistemi) concettualmente
indipendenti tra loro:
• Interfaccia Utente (IU) – Acquisisce i dati e i
comandi immessi in input dall’utente, e
restituisce in output i risultati
dell’elaborazione.
© Salvatore Mancarella
Le applicazioni (Programmi)
Anche i programmi sono interpretati attraverso un’architettura a strati,
composta da tre moduli funzionali (sottosistemi) concettualmente indipendenti
tra loro:
• Logica Applicativa (LA) – Implementa gli
algoritmi specifici per l’elaborazione dei dati e
delle informazioni alla base dell’applicazione.
• Gestione Dati (GD)– Si occupa della
memorizzazione dei dati e ottimizza i metodi
per recuperarli, in modo da rendere il più
efficiente possibile il loro reperimento e
utilizzo.
© Salvatore Mancarella
Programma
© Salvatore Mancarella
Le applicazioni (Programmi)
´ Un programma viene scritto dagli sviluppatori attraverso vari
linguaggi di programmazione (Java, Python, C++ ecc.), mediante i
quali si produce un programma o codice sorgente. Il programma
sorgente può essere eseguito direttamente dal calcolatore
(interpretati), ma più spesso devono essere tradotti da un apposito
compilatore (compilati) in linguaggio macchina per poter essere
eseguito, ovvero per poter essere trasformato in un programma
eseguibile.
Compilatore
Programma
Sorgente
Programma
Eseg
Visione latosviluppatore
© Salvatore Mancarella
Personal Computer
© Salvatore Mancarella
Sistema operativo
© Salvatore Mancarella
Software proprietario
´ ha il codice sorgente chiuso, quindi non può essere
modificato, non viene diffuso (Closed Source) e viene
ritenuto un segreto commerciale,
´ ha delle restrizioni imposte dal proprietario, tramite
mezzi tecnici e legali (licenze),
´ è sottoposto a licenze, con le quali si impediscono la
copia, la modifica e l’utilizzo in certe circostanze e in
certi luoghi,
´ ha dei costi imposti dal proprietario per le varie licenze
di utilizzo,
´ esempi: Safari, Adobe Premier, Office, IOS, Windows,
Adobe Photoshop, Microsoft Edge, ecc.
© Salvatore Mancarella
Il software libero (Open Source)
´ ha il codice sorgente aperto (Open source) e viene
reso pubblico, favorendone il libero studio e
permettendo a programmatori indipendenti di
apportarvi modifiche ed estensioni, creando una
comunità che partecipa allo sviluppo del programma,
´ viene garantita la sua diffusione dalle “donazioni”,
dagli sponsor e dalla didattica,
´ Esempi: Firefox, VLC, Gimp, 7-Zip, OpenOffice,
LibreOffice, KeePass, Linux, kdenline, ecc.
© Salvatore Mancarella
I sistemi di numerazione
´ A questo punto esaminiamo come i dati
numerici/testuali, le immagini e i suoni sono
rappresentati in formato digitale nel computer, per far
questo diamo prima uno sguardo ai sistemi di
numerazione.
© Salvatore Mancarella
Rappresentazione dei dati
´ Il metodo più diffuso di
rappresentazione dei dati
alfanumerici è il codice
ACHII (American Standard
Code for Information
Interchange),
´ Una codifica basata (nella
versione estesa) su 8 bit dove
per ciascun simbolo
rappresentato esiste una
corrispondenza con il codice
binario o esadecimale.
© Salvatore Mancarella
Rappresentazione dei dati
´ Per esempi la “@” vale 64 in decimale, 1000000 in
binario e 40 in esadecimale. Poiché si utilizzano 8 bit,
al massimo possono essere rappresentati 256 simboli,
perché 28 = 256.
´ Nella tabella sono riportati i caratteri stampabili,
invece i primi 31 sono codici “non stampabili”, utilizzati
per azioni come il controllo delle periferiche.
© Salvatore Mancarella
Rappresentazione delle immagini
´ La codifica delle immagini, o digitalizzazione, indica la
rappresentazione mediante una sequenza di numeri
binari utilizzando la tipologia vettoriale o bitmap.
´ Le immagini di tipo bitmap sono formate da una griglia di
piccoli quadratini chiamati pixel, a ciascuno è corrisposto
uno o più bit, un bit per le immagini in bianco e nero, più
bit per le immagini a colori (es: RGB).
´ Il formato vettoriale mostra l’immagine attraverso una
funzione matematica che genera un insieme di punti,
linee, curve e poligoni ai quali possono essere attribuiti
colori, spessore del tratto e sfumature, possiamo dire che
le immagini vettoriali sono composte da tracciati che si
snodano attraverso dei punti
© Salvatore Mancarella
Rappresentazione delle
immagini
´ Immagine bitmap
© Salvatore Mancarella
Rappresentazione delle immagini
© Salvatore Mancarella
Risoluzione
´ La risoluzione della qualità dell’immagine è
rappresentata da:
´ Pixel per inch: risoluzione dello schermo (72 ppi, alta
qualità)
´ Dots per inch: risoluzione di foglio stampato (300 dpi, alta
qualità)
´ Le estensioni utilizzate per il bitmap sono jpg, tiff, phg,
bmp, gif, invece per quelle per il formato vettoriale sono
eps, pdf, ai, svg.
© Salvatore Mancarella
Rappresentazione del suono
´ Il suono in natura è una grandezza fisica che può
essere rappresentata da un numero infinito di valori, la
digitalizzazione può avvenire attraverso il
campionamento e la quantizzazione.
´ Il campionamento significa che i valori del segnale
sono campionati ad intervalli regolari, cioè sono
conservati solo nell’istante in cui viene preso il
campione, offrendo un numero finito di valori sull’asse
temporale.
´ La quantizzazione approssima i segnali dei campioni
ad un certo numero prefissato di valori sull’asse
temporale.
© Salvatore Mancarella