Sei sulla pagina 1di 40

Hardware e Software

Funzioni di un computer
Funzioni svolte in un calcolatore:

• Elaborazione dati
• Memorizzazione dati (temporanea
e/o permanente)
• Trasferimento dati da/verso esterno
(Input/Output - I/O - mediante
periferiche e trasmissione dati)
• Controllo
Componenti di un computer
1. Hardware – indica l’insieme dei componenti materiali
(CPU, memorie, dispositivi di I/O).

2. Sistema Operativo – software di base che controlla e


coordina l’uso dell’hardware tra le varie applicazioni e
tra i vari utenti (e.g., Windows, Mac OS, iOS, Android)

3. Programmi applicativi – software che utilizza le


risorse del sistema per specifiche applicazioni
(compilatori, database, video giochi, programmi per la
scrittura, il calcolo, etc.)
Evoluzione dei computer (gen 1-3)
Generazione
Prima (anni ‘50)
• Tecnologia a valvole
• Bassa affidabilità
• Elevati consumi energetici
• Linguaggio macchina

Seconda (anni ‘60)


• Tecnologia a transistor
• Affidabilità più elevata
• Consumi minori

Terza (anni ‘70)


• Tecnologia a circuiti integrati
• Linguaggi di programmazione di alto
livello
Evoluzione dei computer (gen 4-5)
Generazione
Quarta (anni ‘80)
• Personal computer
• Compattezza
• Costi ridotti
• Calore ridotto
• Aumento applicazioni

Quinta (giorni nostri)


• Dimensioni ridotte
• Consumi molto bassi
• Connettività di rete elevata
• Interfacce user-friendly
• Apps
Linee di tendenza

• Miniaturizzazione
• Aumento della potenza di calcolo (+core)
• Aumento della capacità di memoria
• Aumento della connettività di rete
• Semplificazione dell’interfaccia utente
• Riduzione del consumo di energia
Macchina di von Neumann
John von Neumann
(1903-1957), è stato un
matematico e informatico
ungherese naturalizzato
statunitense.

Nel 1952 definì per la


prima volta in modo
rigoroso il concetto di
elaboratore elettronico a
programma memorizzato
(la cosiddetta macchina
di von Neumann)
Architettura della macchina di
von Neumann

Caratteristiche architettura a bus

• Semplicità • Lentezza (bus unico


• Estendibilità = collo di bottiglia)
(struttura modulare) • Sovraccarico della
• Definizione di CPU
periferiche standard
Componenti di un computer
L’unità centrale (CPU o processore)
Capacità di elaborazione

• L’esecuzione delle operazioni è regolata da un


orologio (clock) ad altissima frequenza:

• ~ 1 GigaHertz: ciclo = 0.000000001 sec.


• In generale, più alta è la frequenza maggiore è la
potenza di elaborazione

• Una singola istruzione può richiedere più cicli


Capacità di elaborazione
• Le moderne CPU hanno più core (unità di calcolo)

• Possibile eseguire miliardi (109) di operazioni


aritmetiche al secondo
• Una delle unità di misura delle prestazioni sono i
Giga FLOPS (109 istruzioni tra numeri reali,
FLoating point OPerations per Second)

• I supercomputer hanno ormai prestazioni nell’ordine


dei Peta FLOPS: 1015 FLOPS.
L’evoluzione dei processori 1
L’evoluzione dei processori 2
La legge di Moore
Processori iPhone

• A11 Bionic a 2.4 GHz (iPhone X)


• A10 Fusion a 2.3 GHz (iPhone 7/7 plus)
• A9 a 1.8 GHz (iPhone 6s/6s plus e SE)
• A8 a 1.4 GHz (iPhone 6/6 plus)
• A7 a 1.3 GHz (iPhone 5s)
• A6 a 1.3 GHz (iPhone 5/5c)
• A5 a 800 MHz (iPhone 4s)
Memorie
• Memoria Principale (o interna: RAM/ROM)
• utilizzata direttamente dalla CPU
• non permanente
• Memoria Secondaria (o esterna)
• richiamata tramite il sottosistema di input/output
• permanente
Interazione fra CPU e
Memoria principale (centrale)

• Una volta caricata nella memoria centrale


un’intera sequenza di istruzioni (il programma),
l’unità di controllo interna alla CPU esamina la
prima istruzione, la interpreta e ordina all’unità
aritmetico-logica di eseguirla
• Il processore registra quindi il risultato della
prima istruzione nella memoria centrale e
prende in esame l’istruzione successiva
• Il ciclo si ripete fino a quando tutte le istruzioni
sono state eseguite
Memoria principale e secondaria
• Diversi obiettivi:
– (P) Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più
rapidamente possibile
– (S) Archivio: deve consentire di archiviare dati e programmi
garantendone la conservazione e la reperibilità anche dopo elevati
periodi di tempo
• Diverse esigenze:
– (P) velocità per il supporto alla CPU
– (S) non volatilità ed elevata capacità
• Diverse tecnologie:
– (P) elettronica: veloce, ma costosa e dinamica (volatile)
– (S) stato solido (veloce e costosa); magnetica e ottica (economica,
ma lenta)
I tipi di memoria principale
• Memoria ad accesso casuale (RAM)
• Casuale va inteso nel senso che il tempo di accesso non
dipende dalla locazione
• Mantiene al proprio interno i dati e le istruzioni dei
programmi in esecuzione
• Tecnologia elettronica (transistor): veloce, volatile
(conserva i dati solo se alimentata) e costosa
• Influisce sulla velocità complessiva (riduce la necessità
di accedere alla memoria di massa)
• Memoria di sola lettura (ROM)
• elettronica, permanente ma solo lettura
• Usata tipicamente per i programmi da caricare
all’accensione
Parametri di valutazione delle memorie
• Velocità di accesso
• Volatilità/Permanenza
• Capacità
• Costo (per bit)
Memoria vs. CPU
Memoria vs. CPU
• Le CPU sono sempre state
più veloci delle memorie
• La miniaturizzazione ha
consentito alle CPU di
raggiungere velocità di
esecuzione sempre più
elevate • I tempi di accesso però
• Nelle memorie è sono calati molto meno:
aumentata la capacità più da circa 100 nanosecondi
che la velocità (da 1 MB di a qualche decina
RAM nei PC degli anni ’80 • Inserire memorie molto più
a qualche GB dei laptop di veloci nello stesso chip
oggi) della CPU è molto costoso
Gerarchia di Memoria
Gerarchia di Memoria
Tipicamente costituita da:
1. Registri contenuti nella CPU (al più qualche KiloByte)
2. Cache (qualche MegaByte)
3. Memoria principale (alcuni-decine di GigaByte)
4. Dischi (da centinaia di GigaByte a qualche TeraByte)
5. Nastri magnetici e dischi ottici (da GB a TB)
Quando ci si sposta verso il basso nella gerarchia:
• aumenta il tempo di accesso;
• aumenta la capacità di memorizzazione;
• diminuisce costo per byte.
Le memorie di massa
• Dischi magnetici
– disco fisso (Hard-disk, capacità da poche decine a migliaia
di GigaByte)
– dischi rimovibili (capacità come gli HD)
– Combinazione di parti meccaniche ed elettroniche
• Dischi ottici
– CD-ROM (Compact Disk a sola lettura, capacità tipica 650
Mbytes), CD-R (WORM), CD-RW
– DVD (Digital Versatile Disk, capacità min 4.7 Gbyte,
(1lato/1 strato) film full motion a schermo largo, 3 canali
audio)
– Unità a stato solido (SSD)
– non è un disco, capacità fino a qualche centinaio di
GigaByte.
– Fondamentalmente una memoria Flash
– Tipiche di smartphone, tablet, laptop di fascia alta
Funzionamento di un hard disk
• Per effettuare un’operazione di lettura o
scrittura è necessario che la testina si
posizioni in corrispondenza del blocco
desiderato
• La velocità di rotazione del disco può
arrivare a 15000 giri al minuto!
• La meccanica dell'hard disk è molto
sofisticata ma delicata
• La capacità di scrittura è dell’ordine di
qualche MegaByte al secondo
• La capacità di lettura è più elevata grazie
a meccanismi di pre-caricamento ed alla
presenza di memorie più veloci di
appoggio.
Memorie a Stato Solido (SSD)
• L’unità a stato solido o drive a stato solido (SSD) utilizza memoria
Flash per l'archiviazione di massa dei dati.

• Memorizza in modo non volatile grandi quantità di dati, senza


utilizzare parti meccaniche

• Il tasso di rottura di un SSD oscilla tra lo 0.5% e il 3% annuo, mentre


negli hard disk può raggiungere il 10%
Memorie a Stato Solido (SSD)
• Un SSD ha minori consumi e minore produzione di calore

• Un SSD ha tempi di accesso e archiviazione ridotti (decimi di


millisecondo contro i 5 e i 10 millisecondi dei dischi magnetici)

• Il costo per byte del SSD è sensibilmente più elevato (per ora).
Il software

• Il software è l’insieme dei programmi che


gestiscono e realizzano le funzioni
specifiche svolte dal computer

• Può essere classificato in


• Software di base (sistema operativo)
• Software applicativo
Classificazione software dal punto di vista
dei diritti
• Software proprietario: solo diritto di utilizzo, senza possibilità di
modifiche e con rilascio del solo codice eseguibile
• Software open source: rilascio del codice sorgente con permesso di
modifiche ed estensioni (esempi: Firefox, VLC, Gimp, 7-
Zip, OpenOffice, LibreOffice)
• Freeware: software proprietario ma concesso in uso gratuito.
• Software di pubblico dominio: software privo di copyright (il codice
sorgente può non essere disponibile).
• Software con copyleft: è software che può essere usato, modificato e
redistribuito, per il quale si impone che tutte le copie di tutte le versioni
siano distribuiti sotto condizioni simili (es: licenza GPL).
• Shareware: può essere utilizzato e ridistribuito per un periodo di tempo
limitato, ma richiede successivamente un pagamento (in genere
modesto).
Cos’è un Sistema Operativo

È un insieme di componenti software


che gestisce hardware e fornisce
servizi (comuni) alle applicazioni

Principali Obiettivi
• Efficienza: cercare di utilizzare al
meglio le risorse del calcolatore
• Semplicità: cercare di rendere più
semplice l’utilizzo dell'hardware
sottostante nascondendo i dettagli
Il mercato dei sistemi operativi
• È un mercato con forti
concentrazioni (ma praticamente
non regolamentato)
• Si tratta di sistemi “embedded”
(legati alla scelta del computer)
(HHI = Herfindahl-Hirschman
Quote di mercato desktop/laptop Index)
(Windows oltre l’80%) Sistemi operativi mobili (Android
oltre l’80%)
Ruolo di intermediazione del S.O.
• Una singola applicazione non ha la possibilità di
controllare direttamente tutte le risorse (ma non
deve neanche preoccuparsi di farlo)

• Vengono definite modalità standard di interfaccia


con i dispositivi fisici, in modo da:
– sviluppare applicazioni in modo semplice, modulare ed
indipendente dallo specifico hardware su cui viene fatto
funzionare il sistema operativo;
– aggiornare il software di base e l'hardware in modo
trasparente ai programmi applicativi e all'utente, ossia
senza che vengano influenzati dall'operazione.
– sicurezza
SO vs. programmi applicativi
• Programmi applicativi • Sistema operativo
– hanno accesso a un – ha accesso a tutte le
insieme ridotto di risorse; risorse;
– possono utilizzare solo – può utilizzare tutte le
un sottoinsieme non
privilegiato delle istruzioni istruzioni del processore
del processore (esecuzione in modalità
(esecuzione in modalità supervisore);
utente); – stabilisce in che ordine e
– non possono decidere come le richieste che
autonomamente quando riceve devono essere
e come avere accesso soddisfatte;
alle risorse del sistema
– …
(richiedono al sistema
operativo l’esecuzione di
alcuni servizi);
– …
Componenti di un S.O.
Utente

Interprete
comandi

Sistema
Operativo
Gestione Gestione
memoria periferiche

Software
applicativo

File Nucleo (o kernel)


[gestione processore] Interfaccia
system
con la rete
Hardware
Componenti di un S.O.

• Gestione del processore:

– gestisce i programmi che sono contemporaneamente attivi

– mette a disposizione di un programma alla volta la CPU con un


meccanismo di alternanza (scheduling)

– controlla l’esecuzione dei processi in modo da impedire che un


programma possa danneggiarne un altro
Componenti di un S.O.

• Gestione della memoria:

– Assegna parti della memoria centrale ai vari programmi in modo


da soddisfare le relative esigenze in modo trasparente ed
efficiente.

– Permette la parziale condivisione degli spazi di memoria associati


ai vari programmi in modo che possano scambiarsi dati durante
l’esecuzione.
Componenti di un S.O.

• Gestione delle periferiche:

– Maschera le caratteristiche fisiche delle periferiche e le specifiche


operazioni di ingresso/uscita

– Permette di effettuare operazioni contemporaneamente su diversi


dispositivi (tastiera, dischi, schede di rete).
Componenti di un S.O.
• Gestione dei file (file system):
– Organizza i contenuti dei dispositivi di memoria di massa (dischi,
CD, DVD, etc.)

– Gestisce i file offrendo una visione logica indipendente dalla reale


rappresentazione fisica sui dispositivi di memoria di massa

– Gestisce i privilegi relativi all’accesso ed alla modifica dei file

• Gestione degli utenti e dei relativi comandi (interprete


comandi)

• Gestione della rete.

Potrebbero piacerti anche