01 - Information Technology Software e Hardware

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 Technology (pp. 3 a pp 45)

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