Hardware e Sw (Sistema Operativo)
Ing. Alessandra Musolino Abilità Informatiche
A.A. 2020/21
Funzioni di un computer
All’interno di un calcolatore si svolgono varie funzioni, classificabili nelle categorie seguenti:
• 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, memoria, dispositivi di I/O).
2. Sistema Operativo – software di base che controlla e coordina l’uso dell’hardware tra le varie applicazioni dei 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 game, programmi di gestione)
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
Linee di tendenza
• Miniaturizzazione
• Aumento della potenza di calcolo
• Aumento della capacità di memoria
• Aumento della connettività di rete
• Miglioramento dell’usabilità dell’interfaccia d’utente
• Riduzione del consumo di energia
Macchina di von Neumann
John von Neumann, è 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à
• Estendibilità (struttura modulare)
• Standardizzabilità
• Lentezza (bus unico = collo di bottiglia)
• Sovraccarico della CPU
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.000000001sec.
➢
In generale, più alta è la frequenza maggiore è la potenza di elaborazione
❑
Una singola istruzione può richiedere più cicli
❑
Le moderne CPU hanno più core (unità di calcolo)
➢
Possibile eseguire miliardi (10
9) di operazioni aritmetiche al secondo
➢
L ’unità di misura delle prestazioni sono i
Giga FLOPS (10
9istruzioni tra numeri reali, FLoating point OPerations per Second)
❑
I supercomputer hanno ormai prestazioni
nell’ordine dei Peta FLOPS: 10
15FLOPS.
L’evoluzione dei processori
Legge di Joy MIPS =2 (anno-1984)
2 (2019-1984)= 34.360 milioni
La legge di Moore
Processori iPhone
• 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)
• Produzione: Samsung (in calo) + TMSC (in ascesa)
Memorie
• Memoria Principale
• richiamata direttamente dalla CPU
• non permanente
• Memoria Secondaria
• 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 (1 transistor per ogni bit): veloce, volatile (conserva i dati solo se alimentata) e costosa
• Influisce sulla velocità complessiva (riduce l’accesso alla memoria di massa)
• Memoria di sola lettura (ROM)
• elettronica, permanente ma solo lettura
– Usata tipicamente per i programmi da caricare all’accensione
(come il
BIOS - Basic Input/Output System)
Parametri di valutazione delle memorie
• Velocità di accesso
• Volatilità/Permanenza
• Capacità
• Costo (per bit)
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
• Nelle memorie è aumentata la capacità più che la velocità (da 1 MB di RAM nei PC degli anni ’80 a qualche GB dei
laptop di oggi)
• I tempi di accesso però
sono calati molto meno: da circa 100 nanosecondi a circa 10
• Inserire memorie molto più
veloci nello stesso chip 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 (RAM)
– 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
– non è un disco, capacità fino a qualche centinaio di GigaByte.
– Fondamentalmente una memoria Flash (di tipo Nand) – 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 del 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% (segue una curva a vasca da bagno)
• 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).
Costi iPhone
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
È 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
Cos’è un Sistema Operativo
Il mercato dei sistemi operativi
• È un mercato con forti concentrazioni (ma praticamente non regolamentato)
• Si tratta di sistemi “embedded” (legati alla scelta del computer)
Sistemi operativi mobili (Android oltre l’80%) Quote di mercato desktop/laptop
(Windows oltre l’80%)
Ruolo di intermediazione del S.O.
• Una singola applicazione perde 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
.
SO vs. programmi applicativi
• Programmi applicativi
– hanno accesso a un insieme ridotto di risorse;
– possono utilizzare solo un sottoinsieme non
privilegiato delle istruzioni del processore (esecuzione in modalità utente);
– non possono decidere
autonomamente quando e come avere accesso alle risorse del sistema
(richiedono al sistema operativo l’esecuzione di alcuni servizi);
– …
• Sistema operativo
– ha accesso a tutte le risorse;
– può utilizzare tutte le istruzioni del processore (esecuzione in modalità supervisore);
– stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte;
– …
Sistema Operativo Utente
Nucleo (o kernel) [gestione processore]
Hardware
Software applicativo
Gestione periferiche
File
system Interfaccia
con la rete Gestione
memoria Interprete
comandi
Componenti di un S.O.
Componenti di un S.O. (1/2)
• Gestione del processore:
– gestisce i programmi che sono contemporaneamente attivi
– mette a disposizione la CPU di un programma alla volta con un meccanismo di alternanza (scheduling)
– controlla l’esecuzione dei processi in modo da impedire che un programma possa danneggiarne un altro
• 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.
• 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. (2/2)
• 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