Sei sulla pagina 1di 34

ARCHITETTURA DEI CALCOLATORI

Che cos’è un computer (o calcolatore)? Come funziona un computer?


¡ sono possibili diverse risposte a questa domanda – relative a punti di vista differenti

¡ punto di vista degli utenti finali


¡ “il computer è un esecutore di programmi”
¡ uso dei computer

¡ punto di vista architetturale


¡ “il computer è un sistema”
¡ architettura e funzionamento dei calcolatori

¡ punto di vista della programmazione


¡ “il computer è una macchina programmabile”
¡ introduzione alla realizzazione di programmi

ARCHITETTURA DEI CALCOLATORI (BASATO SULLE SLIDE DI LUCA CABIBBO PER IL TESTO FONDAM ENTI DI INFORM ATICA
- OGGETTI E JAVA)

COMPUTER E APPLICAZIONI

Dal punto di vista di un utente, un computer (o calcolatore) è una macchina


programmabile
¡ ovvero, in grado di eseguire programmi
¡ infatti, l’utente di un computer interagisce con il computer attraverso l’esecuzione di una o più
applicazioni

2
APPLICAZIONI

Alcuni aspetti rilevanti di un’applicazione (o programma applicativo o


programma)
¡ consente di perseguire un qualche scopo
¡ gestisce informazioni
¡ offre operazioni per la manipolazione di queste informazioni

IL GIOCO SOLITARIO

¡ qual è lo scopo? quali le informazioni? quali le operazioni?


ULTERIORI COMMENTI

In un’applicazione
¡ le operazioni possono essere eseguite in modo interattivo – ma non è sempre così
¡ l’utente può perseguirne lo scopo utilizzando solo le operazioni fornite dall’applicazione
¡ l’esecuzione delle operazioni può essere vincolata

APPLICAZIONI INFORMATICHE

Esistono moltissime tipologie di applicazioni

Le applicazioni dei computer hanno in genere caratteristiche simili a quelle del gioco
Solitario
¡ un’applicazione permette ai suoi utenti di perseguire un particolare scopo

¡ un’applicazione gestisce un insieme di dati e informazioni


¡ un’applicazione consente l’elaborazione delle informazioni che gestisce mediante delle operazioni
¡ ciascuna operazione può essere eseguita solo se sono soddisfatte le condizioni che ne abilitano
l’esecuzione

¡ ciascuna operazione va richiesta con la sua modalità


¡ l’utente interagisce con l’applicazione eseguita dal computer richiedendo l’esecuzione di una sequenza
di operazioni, un’operazione alla volta

6
ALCUNI ESEMPI DI APPLICAZIONI

La possibilità di poter eseguire su un medesimo computer una varietà di applicazioni


diverse rende il computer una macchina che può essere utilizzata da un utente, in
modo versatile, per la risoluzione di problemi

WORD PROCESSOR

Un word processor
è un’applicazione per
l’elaborazione di testi
che consente la
scrittura e stampa di
documenti

8
FOGLIO ELETTRONICO

La gestione e l’analisi di
dati (in particolare, di
dati numerici) può
essere fatta mediante
un foglio elettronico
(spreadsheet)

BROWSER WEB

Un browser web
consente l’accesso a
documenti (chiamati
pagine) sul World Wide
Web e la loro
visualizzazione

10
APPLICAZIONE WEB

Un’applicazione
web è
un’applicazione sul
World Wide Web che
viene eseguita
tramite un browser
web

11

APPLICAZIONI E INTERFACCE

Un’applicazione viene utilizzata tramite la sua interfaccia utente


¡ l’interfaccia di un’applicazione è il mezzo di interazione tra l’utente (utente dell’applicazione)
e il computer (esecutore dell’applicazione)
¡ due tipi principali di interfacce utente
¡ interfacce grafiche (GUI) e interfacce a caratteri

12
INTERFACCE GRAFICHE

Le interfacce grafiche hanno di solito le seguenti caratteristiche


¡ visualizzano sullo schermo del calcolatore delle finestre
¡ operazioni e informazioni sono rappresentate da opportuni elementi
¡ desktop (scrivania), finestre, menu, pulsanti e icone, barra degli strumenti, finestre di dialogo, …

¡ tecnologia WYSIWYG (what you see is what you get)


¡ permettono l’esecuzione di operazioni mediante l’interazione con la tastiera e il mouse
¡ sono basate su modalità di interazione simili

13

INTERAZIONE CON UN’APPLICAZIONE

L’uso delle applicazioni è di solito basato su un insieme prefissato di modalità di


interazione
¡ interazioni con la tastiera
¡ interazioni con il mouse

L’uso di un’applicazione richiede la comprensione


¡ delle operazioni che l’applicazione permette di eseguire
¡ della corrispondenza tra gli elementi dell’interfaccia dell’applicazione e i dati e le operazioni
¡ della modalità di richiesta dell’esecuzione di ciascuna operazione

¡ ma non del funzionamento del computer

14
ARCHITETTURA DEI CALCOLATORI

Un computer è un sistema programmabile


¡ un computer è un sistema
¡ un sistema è un oggetto costituito da diverse parti (componenti) che interagiscono, cooperando, al fine di
ottenere un certo comportamento

¡ un computer è programmabile
¡ è in grado di eseguire programmi

Studiare l’architettura di un sistema


¡ individuare i componenti del sistema

¡ comprendere i principi di funzionamento di ciascun componente


¡ comprendere come i vari componenti interagiscono tra di loro

15

HARDWARE E SOFTWARE

La prima decomposizione di un computer


¡ hardware
¡ la struttura fisica del computer, costituita da componenti elettronici ed elettromeccanici

¡ software
¡ l’insieme dei programmi che consentono all’hardware di svolgere dei compiti utili
¡ software di base e software applicativo

software applicativo

software di base
hardware 16
SOFTWARE E MACCHINE VIRTUALI

Il software virtualizza il computer


¡ il software mostra ai suoi utenti il computer come una macchina virtuale più semplice da usare
rispetto all’hardware

¡ macchina virtuale – una macchina che fisicamente non esiste nella realtà, ma di cui si può
avere la sensazione dell’esistenza

Ad esempio
¡ usando il Solitario, abbiamo l’impressione di avere davanti a noi delle carte, e di poterle
muovere
¡ in realtà, davanti a noi c’è solo una rappresentazione virtuale delle carte

17

CATEGORIE DI SOFTWARE

Due categorie principali di software


¡ software applicativo – il computer è una macchina virtuale che può essere utilizzata per la
risoluzione di problemi
¡ software di base – il computer è una macchina virtuale più semplice da gestire e
programmare – rispetto all’hardware utilizzato

18
ORGANIZZAZIONE A LIVELLI E LINGUAGGIO
MACCHINA

Nell’organizzazione a livelli, l’hardware è l’unica macchina reale, mentre gli strati


software corrispondono a macchine virtuali
¡ le operazioni (o meglio, istruzioni) che l’hardware sa eseguire direttamente formano il
linguaggio macchina del computer
¡ istruzioni elementari – ma che il computer sa eseguire in modo efficiente

¡ le diverse macchine virtuali e i relativi insiemi di operazioni sono via via più astratti
¡ il significato di ciascuna operazione è sempre più vicino alla logica dell’utente e più lontano dalla logica del
computer come dispositivo elettronico
¡ le “macchine virtuali” sono via via più semplici da usare

19

MACCHINA DI VON NEUMANN

L’architettura dell’hardware di un computer reale è molto complessa


¡ la macchina di Von Neumann è un modello semplificato ma effettivo dei calcolatori moderni
¡ John Von Neumann ha progettato (1945) il primo computer in cui i programmi venivano
memorizzati nel computer – e non codificati mediante cavi e interruttori

20
ARCHITETTURA DELLA MACCHINA DI VON
NEUMANN

7 8 ¿ <
tastiera mouse schermo memoria
secondaria

interfaccia interfaccia interfaccia interfaccia


i/o i/o i/o i/o

bus

memoria CPU
unità centrale
centrale di elaborazione
macchina di Von Neumann 21

FUNZIONALITÀ NELLA MACCHINA DI VON


NEUMANN

Il funzionamento del calcolatore viene descritto in termini di


poche funzionalità e di poche componenti (macro-unità) funzionali

trasferimento scambio di dati con l’utente

elaborazione controllo memorizzazione


22
RAPPRESENTAZIONE DELLE INFORMAZIONI E
DATI

Scopo fondamentale di un computer è consentire l’elaborazione di informazioni


¡ informazioni rappresentate sotto forma di dati
¡ un dato è un’informazione elementare

¡ i computer sanno rappresentare ed elaborare direttamente solo dati molto semplici


¡ numeri interi
¡ numeri reali (razionali)
¡ caratteri
¡ valori di verità (vero/falso)

23

ELABORAZIONE

Le istruzioni del linguaggio macchina di un computer per la manipolazione dei dati


corrispondono ad operazioni elementari
¡ operazioni aritmetiche
¡ operazioni relazionali (confronto tra dati)
¡ operazioni su caratteri e valori di verità
¡ altre operazioni numeriche

Un computer sa svolgere poche tipologie di operazioni elementari


¡ ma in modo molto efficiente
¡ un calcolatore può eseguire centinaia di milioni di istruzioni del linguaggio macchina al secondo

L’elaborazione dei dati viene svolta dall’unità aritmetico-logica (ALU)


¡ l’ALU è un componente dell’unità centrale di elaborazione

24
MEMORIZZAZIONE

Un computer ha la necessità di memorizzare, in modo temporaneo o permanente, dei dati, usati per la
rappresentazione
¡ delle informazioni di interesse
¡ dei programmi per l’elaborazione dei dati

La memoria è l’unità responsabile della memorizzazione dei dati


¡ organizzazione della memoria in celle
¡ indirizzo

¡ m em orizzazione di un valore

Una memoria fornisce due sole operazioni


¡ memorizzazione di un valore in una cella (scrittura)
¡ accesso al valore memorizzato in una cella (lettura)

Queste operazioni sono rappresentate da ulteriori istruzioni del linguaggio macchina

25

TRASFERIMENTO

Il bus è il componente del computer dedicato al trasferimento dei dati e delle


informazioni di controllo tra le varie parti del computer
¡ un insieme dei collegamenti
¡ favorisce la modularità e l’espandibilità del computer

26
CONTROLLO

Il coordinamento (controllo) tra le varie parti del computer è svolto dall’unità


di controllo
¡ l’unità di controllo è un altro componente dell’unità centrale di elaborazione
¡ ogni componente dal computer esegue solo le azioni che gli sono richieste dall’unità di
controllo

L’attività di controllo svolta dall’unità di controllo


¡ coordinamento dell’esecuzione temporale delle funzioni che devono essere svolte sia
internamente all’unità di elaborazione che negli altri elementi funzionali
¡ in modo sincrono rispetto alla scansione temporale imposta dal clock

27

UNITÀ CENTRALE DI ELABORAZIONE

L’unità centrale di elaborazione (o processore o CPU) è composta dall’unità


di controllo e dall’unità aritmetico-logica
¡ l’unità centrale di elaborazione controlla l’esecuzione di un programma (memorizzato in
memoria centrale sotto forma di una sequenza di istruzioni del linguaggio macchina) eseguendo
ordinatamente le istruzioni del programma

28
ESECUZIONE DI PROGRAMMI

L’esecuzione di un programma è basata sull’esecuzione ripetuta, controllata dal


processore, di tre passi

Ciclo fetch-decode-execute
¡ fetch – il processore legge dalla memoria la prossima istruzione da eseguire
¡ decode – il processore si prepara ad eseguire la prossima istruzione
¡ execute – il processore esegue l’istruzione, svolgendo un certo numero di micro-operazioni

29

PERIFERICHE E INTERFACCE DI INGRESSO-


USCITA

Lo scambio di dati con l’utente avviene mediante diversi dispositivi di ingresso


e/o uscita (chiamati periferiche) collegati al computer
¡ ad es., tastiera, mouse, schermo, stampante, modem
¡ anche le memorie di massa (ad esempio, le unità disco e il lettore di CD-ROM) sono
considerati periferiche

Nella macchina di Von Neumann, le periferiche non fanno parte del computer
¡ ogni periferica viene controllata mediante un’opportuna interfaccia
¡ un’interfaccia ha il compito di tradurre i segnali interni del computer in un formato
comprensibile alla periferica stessa, e viceversa

30
TECNOLOGIA DEI CALCOLATORI

La conoscenza dell’architettura della macchina di von Neumann ci consente di


studiare alcuni aspetti tecnologici relativi all’hardware dei computer
¡ vengono ora introdotti alcuni principi di funzionamento e alcune caratteristiche tecnologiche
dei componenti effettivamente utilizzati nei computer

31

CODIFICA DEI DATI

In un computer, i dati (e le istruzioni) sono codificati in forma binaria, ovvero


mediante delle sequenze finite di cifre 0 e 1
¡ il bit (cifra binaria) la più piccola unità di informazione in un calcolatore
¡ un bit può avere valore 0 oppure 1

¡ ciascun bit è memorizzato da una cella elementare di memoria


¡ un dispositivo (ad es., elettronico, magnetico o ottico) in cui sono chiaramente distinguibili due stati

Un bit è un’unità di informazione troppo piccola per essere usata individualmente


¡ dati codificati sotto forma di sequenze di bit
¡ problema dell’interpretazione delle sequenze di bit

32
SEQUENZE DI BIT E LORO INTERPRETAZIONE

Ad esempio, un byte è una sequenza di 8 bit

Le possibili combinazioni degli 8 bit in un byte sono 28 = 256


¡ un byte può essere utilizzato per rappresentare un valore tra 256 diversi possibili valori
¡ ad esempio, un piccolo numero intero, o un carattere in un alfabeto che contiene al più 256 caratteri, ...

¡ solitamente sono possibili diverse scelte sull’insieme dei valori possibili


¡ ad esempio, con un byte si può rappresentare un numero naturale compreso nell’intervallo da 0 a 255,
oppure un numero intero relativo nell’intervallo da -128 a 127
¡ necessario un meccanismo per poter interpretare correttamente ciascun byte
¡ nella programmazione, vengono usati dei meccanismi di tipizzazione, immersi nei programmi

33

TIPI DI DATO

Alcuni tipi di dato in un computer


¡ numeri naturali (ovvero, senza segno) a 8 bit
¡ per valori compresi tra 0 e +255
¡ interi relativi (ovvero, con segno) a 8 bit
¡ per valori compresi tra -128 e +127

¡ interi relativi (ovvero, con segno) a 32 bit


¡ per valori compresi tra -2147483648 e +2147483647

¡ caratteri dell’alfabeto ASCII (8 bit)


¡ caratteri dell’alfabeto Unicode (16 bit)
¡ numeri reali (razionali) in virgola mobile a 64 bit
¡ mantissa con 18 cifre significative ed esponente tra -324 e +308
¡ numeri reali (razionali) in virgola mobile a 32 bit
¡ 9 cifre significative ed esponente tra -45 e +38

¡ valori logici (vero o falso)

34
MICROPROCESSORE

L’unità centrale di elaborazione è solitamente realizzata fisicamente sotto forma di


microprocessore

35

MICROPROCESSORE

I microprocessori sono
dispositivi elettronici
estremamente complessi
¡ crescita del numero di
transistor nei
microprocessori

36
STRUTTURA DI UNA UNITÀ CENTRALE DI
ELABORAZIONE

leggi
scrivi unità di controllo
PC
bus
memoria controllo IR PSW
centrale
MAR
bus
o indirizzi registro
registro stato
periferiche ... ALU esegui

MDR registro operazione

bus
dati
unità centrale di elaborazione
37

FUNZIONAMENTO DELL’UNITÀ CENTRALE DI


ELABORAZIONE

L’unità centrale di elaborazione esegue un programma, istruzione per istruzione,


svolgendo ripetutamente le seguenti tre operazioni
¡ (lettura) fetch
¡ legge dalla memoria la prossima istruzione da eseguire

¡ (decodifica) decode
¡ determina il tipo di istruzione che deve essere eseguito
¡ (esecuzione) execute
¡ richiede lo svolgimento di tutte le azioni necessarie per l’esecuzione dell’istruzione – compreso
l’incremento automatico del registro contatore delle istruzioni

38
CARATTERISTICHE DEI MICROPROCESSORI

Principali caratteristiche tecnologiche di un microprocessore


¡ repertorio di istruzioni (linguaggio macchina)
¡ velocità (misurata come frequenza del clock)
¡ ampiezza del bus
¡ co-processore
¡ cache

¡ numero di core
¡ consumo energetico

39

MEMORIA CENTRALE

La memoria è il componente del calcolatore in cui vengono immagazzinati e da cui


vengono acceduti i dati e i programmi
¡ la memoria centrale (o principale) è la memoria che può essere acceduta direttamente dal
processore

40
MEMORIA CENTRALE

Una memoria
¡ si compone di celle (o locazioni) di memoria
¡ ogni cella di memoria è in grado di memorizzare una parola di memoria (ovvero, una sequenza
di bit di lunghezza fissata)
¡ ogni cella è caratterizzata da
¡ un indirizzo (univoco)
¡ un valore

¡ operazioni di lettura e scrittura

41

LEGGERE UN DATO DALLA MEMORIA RAM


Esemplificazione dei passi elementari per l’ottenimento di un dato da una cella
di memoria interna:
1. impostazione dell’indirizzo della cella obiettivo sulle linee di indirizzo, con
selezione della memoria come organo interessato
2. impostazione dell’operazione di lettura sulle linee di controllo
3. ottenimento del dato letto dalla memoria sulle linee dati.

I passi 1, 2 e 3 sono scanditi da un segnale di sincronismo (segnale di clock)


presente nella macchina.
impulso periodo di clock

frequenza=1/periodo
42
STRUTTURA DI UNA MEMORIA CENTRALE
128 celle di memoria indirizzo
di 16 bit ciascuna della cella
00000000
00000001
00000010
00000011
00000100
00000101
bus 00000110
00000111
indirizzi ........
........
........
0 1 1 1 1 0 1 0 ........
01111000
01111001
1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 01111010
01111011
cella selezionata 01111100
01111101
01111110
01111111

leggi/scrivi
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 parola letta
bus di
o da scrivere
controllo 43
bus dati

CARATTERISTICHE DELLE MEMORIE CENTRALI

Le caratteristiche principali di una memoria centrale


¡ capacità
¡ 1Kbyte indica 210 byte = 1024 byte ≈ 103 byte
¡ 1Mbyte indica 220 byte = 1024 Kbyte = 1 048 576 byte ≈ 106 byte
¡ 1Gbyte indica 230 byte = 1024 Mbyte ≈ 109 byte
¡ velocità di accesso
¡ volatilità
¡ memorie RAM (random access memory)
¡ memorie ROM (read only memory) e loro varianti

44
UNA PARENTESI: POTENZE DI 2 E POTENZE DI 10

¡ 1K (kilo) = 210 = 1024 ≈ 103


¡ 1M (mega) = 220 = 1 048 576 ≈ 106
¡ 1G (giga) = 230 ≈ 109
¡ 1T (tera) = 240 ≈ 1012
¡ 1P (peta) = 250 ≈ 1015

¡ 1m (milli) = 10-3
¡ 1μ (micro) = 10-6

¡ 1n (nano) = 10-9
45

MEMORIE SECONDARIE
Le memorie secondarie hanno le seguenti caratteristiche specifiche, che le
differenziano dalle memorie centrali
¡ non volatilità
¡ grande capacità
¡ bassi costi
¡ bassa velocità di accesso

Ne esistono di diversi tipi


¡ ad es., dischi magnetici – dischi ottici (richiedono un lettore) – memorie a stato solido

46
MEMORIE SECONDARIE

I dati di una memoria secondaria, per essere acceduti dal processore, devono
comunque transitare nella memoria centrale
¡ la memoria secondaria memorizza tutti i programmi e i dati del computer
¡ la memoria centrale memorizza i programmi in esecuzione e i dati necessari per la loro
esecuzione

47

DISCHI MAGNETICI
Un disco magnetico (fisso) è composto da un insieme di piatti di alluminio rotanti
ricoperti di materiale magnetico e da un gruppo di testine
¡ una testina permette la scrittura e lettura di bit su un disco, memorizzati sotto forma di stati di
polarizzazione
faccia
piatto traccia

cilindro
settore

48
¡ l’unità di memorizzazione è il settore (ad es., 4Kbyte)
I BLOCCHI DELL’HARD DISK

¡ Nell’hard disk la memoria e’ organizzata in blocchi di dimensione


fissa (512B, 1KB,2KB,..) indirizzabili direttamente
¡ La lettura/scrittura del disco avviene sempre in blocchi, per
risparmiare tempo (pensate al tempo perso se si dovesse leggere
un byte per volta!)
¡ Il disco è quindi formattato in blocchi

IL CONCETTO DI FILE

FILE: sequenza di byte conosciuta nel computer con un certo nome.


TIPI DI FILE:
¡ file di dati (es: immagini o suoni)
¡ programmi (es: word o explorer)
¡ file di testo (cioè caratteri UniCode o ASCII)
ESTENSIONI DI UN FILE
¡ nome.jpg, nome.exe, nome.docx, ...
LA STRUTTURA DEI FILE

E’ meglio vedere un file come una sequenza di byte.


Sono i programmi che usano i file gestendone il contenuto in modo corretto.

Ad esempio, nei file di testo quando viene incontrato il byte = <new line> si devono
visualizzare i caratteri successivi nella riga sottostante.

IL SISTEMA OPERATIVO

Il sistema operativo è il principale componente del software di base


¡ è responsabile della gestione delle risorse del computer, e in particolare di come le risorse
vengono allocate alle applicazioni e dell’ottimizzazione del loro uso
¡ fornisce all’utente un’interfaccia per usare e gestire il computer in modo semplice

Ad esempio
¡ come fa un utente ad avviare l’esecuzione di un programma?
¡ che succede quando l’utente avvia l’esecuzione di un programma?

52
ARCHITETTURA DI UN SISTEMA OPERATIVO

programmi applicativi

interprete comandi
sistema operativo

gestore gestore gestore programmi


della delle dei di
memoria periferiche file utilità

nucleo

53
hardware

SISTEMA OPERATIVO E MACCHINE VIRTUALI

Le diverse componenti di un sistema operativo hanno, tra l’altro, lo scopo di gestire


e virtualizzare le diverse risorse del computer, ovvero di renderle più semplici da
utilizzare da parte dei suoi utenti
¡ utenti
¡ utenti finali – interagiscono attraverso l’interprete comandi
¡ programmi in esecuzione

¡ risorse
¡ processori, memoria principale, periferiche, memorie secondarie, interfaccia utente

54
NUCLEO

Il nucleo del sistema operativo (o kernel) è il componente del sistema operativo


più complesso, che in particolare è responsabile della gestione della risorsa unità di
elaborazione (processore) e dei processi (un processo è un programma in
esecuzione)
¡ un solo processore reale (o comunque pochi)
¡ tanti processori virtuali, uno per ciascun processo
¡ ciascun processo in esecuzione ha l’impressione di essere l’unico processo eseguito dal computer
¡ il nucleo ripartisce la capacità di elaborazione dell’unico processore reale (o dei pochi) tra i tanti
processori virtuali

Il nucleo fornisce anche un insieme di servizi di base di supporto agli altri


componenti del sistema operativo
55

GESTORE DELLA MEMORIA

Il gestore della memoria è responsabile dell’allocazione dinamica della memoria


centrale ai programmi in esecuzione
¡ per ciascun processo viene allocata un’area di memoria virtuale sufficiente per la sua
esecuzione
¡ gestione della corrispondenza tra le memorie virtuali e l’unica memoria reale
¡ la dimensione della memoria virtuale può essere maggiore di quella reale

56
GESTORE DELLE PERIFERICHE

Il gestore delle periferiche adatta la modalità d’uso delle singole periferiche (che
possono essere estremamente diverse) a quello di poche tipologie di periferiche
virtuali
¡ ad esempio, un programma può usare una stampante senza conoscere i dettagli precisi di
funzionamento della stampante fisicamente disponibile
¡ un driver è un adattatore di dati dal formato virtuale (generico) usato dai programmi applicativi
a quello reale della periferica effettivamente in uso

57

GESTORE DEI FILE

Il gestore dei file (o file system) è dedicato alla gestione della memoria
secondaria (dischi)
¡ i dischi sono fisicamente organizzati in superfici, cilindri e settori
¡ il gestore dei file consente l’uso della memoria secondaria mediante una organizzazione logica
in volumi, cartelle e file
¡ un file è una sequenza di dati di dimensioni variabili, con accesso sequenziale oppure casuale
¡ una cartella (o direttorio) è un contenitore di un insieme di file e cartelle
¡ un volume è un contenitore di file e cartelle, solitamente corrispondente ad una unità a disco
¡ gestione delle corrispondenze tra file e settori

Il gestore dei file permette inoltre di mostrare anche le periferiche come dei file, da
cui è possibile leggere e/o su cui è possibile scrivere sequenze di dati

58
INTERPRETE COMANDI

L’interprete comandi è l’interfaccia utente del sistema operativo


¡ definisce le operazioni che possono essere utilizzate direttamente dall’utente finale, chiamate
comandi
¡ esempi di comandi sono
¡ esegui un’applicazione
¡ apri un documento (eseguendo l’applicazione responsabile della manipolazione di quel tipo di documento)

L’interprete comandi può essere basato su una


¡ interfaccia a caratteri
¡ interfaccia grafica

59

PROGRAMMI DI UTILITÀ

Il sistema operativo è corredato da un insieme di programmi di utilità, per la


configurazione, l’ottimizzazione e la gestione ordinaria del sistema
¡ gestione degli utenti
¡ gestione delle periferiche
¡ gestione delle applicazioni
¡ altri accessori

60
CALCOLATORI E PROGRAMMAZIONE

La nostra discussione è iniziata dicendo che


¡ il computer è una macchina programmabile
¡ un programma consente di far svolgere al computer una molteplicità di operazioni, fornendo
all’utente degli strumenti da utilizzare per perseguire un certo scopo

Viene ora brevemente discussa la nozione di programma dal punto di vista di chi li
realizza

61

PROGRAMMI E PROGRAMMAZIONE

Un programma è una descrizione


¡ di un insieme di operazioni che possono essere eseguite da un computer
¡ dei dati necessari all’esecuzione delle operazioni

La programmazione è l’attività di scrittura dei programmi


¡ svolta dai programmatori

Per evitare ambiguità, chiamiamo


¡ applicazione, un programma dal punto di vista dell’utente
¡ programma, la descrizione di un’applicazione

62
PROGRAMMI E LINGUAGGI DI
PROGRAMMAZIONE

Un programma è la descrizione di un’applicazione


¡ in pratica, un programma è un insieme di frasi
¡ le frasi descrivono le operazioni e le tipologie di dati di interesse
¡ le frasi sono scritte in un qualche linguaggio specializzato per la definizione di programmi

Un linguaggio di programmazione è un linguaggio specializzato per la


definizione di programmi
¡ ad esempio, Pascal, C, C#, Java, Perl, Visual Basic, Prolog, ML, Python, Ruby, …
¡ in questo corso faremo riferimento a Java

63

LINGUAGGI DI PROGRAMMAZIONE E
COMPILATORI

Un computer è in grado di eseguire solo le istruzioni elementari del proprio


linguaggio macchina
¡ in pratica, i programmi vengono scritti usando linguaggi di programmazione di alto livello
¡ i compilatori sono applicazioni per tradurre programmi scritti in un certo linguaggio di
programmazione nel linguaggio macchina del computer

64
LINGUAGGI DI PROGRAMMAZIONE

¡ Linguaggio macchina e di bassissimo livello (Assembly)


¡ Linguaggi di alto livello (Python, Java, Javascript, C++, C#,
Swing)

65

UN PROGRAMMA IN LINGUAGGIO MACCHINA


(ASSEMBLER)

1000 LOAD 3568 R1


1004 LOAD 3574 R2
1008 ADD R1 R2
1012 STORE R1 3568
1016 JUMP 1000
…….
INTERPRETI E COMPILATORI

Linguaggi
¡ interpretati (l’interprete esegue passo passo il programma)
¡ compilati (il programma viene tradotto in un linguaggio direttamente eseguibile),
producono un programma eseguibile molto efficiente
¡ modalità mista

Esempio:
¡ Compilatore C++: software che traduce un programma scritto nel linguaggio di
programmazione C++ in linguaggio macchina (o comunque eseguibile)
¡ Interprete Python
¡ Java Virtual Machine

67