Il Software - Dipartimento di Informatica

Il Software
• L’hardware da solo non è sufficiente per il funzionamento
dell’elaboratore
• È necessario introdurre il software:
– un insieme di programmi che permettono di trasformare un insieme di
circuiti elettronici in un oggetto in grado di svolgere delle funzioni di
natura diversa
• La proprietà fondamentale dei computer è il fatto di essere
programmabili
Informatica di Base -- R.Gaeta
1
Il Software
• Una programmazione diretta della macchina hardware da parte
degli utenti creerebbe delle serie difficoltà
– l’utente dovrebbe conoscere l’organizzazione fisica dell'elaboratore e il
suo linguaggio macchina;
– ogni programma dovrebbe essere scritto utilizzando delle sequenze di bit
ed ogni piccola differenza hardware comporterebbe una ri-scrittura del
programma stesso.
Informatica di Base -- R.Gaeta
2
Il Software
• Questo non è accettabile ed è necessario fornire all’utente un
meccanismo per:
– astrarre dall’organizzazione fisica della macchina;
– usare nello stesso modo, o comunque in modo molto simile, macchine
leggermente diverse dal punto di vista hardware o, al limite, macchine con
hardware profondamente differente;
– avere un semplice linguaggio di interazione con la macchina;
– avere un linguaggio semplice e ad alto livello per programmare la
macchina;
– avere un insieme di programmi applicativi per svolgere diversi compiti
Informatica di Base -- R.Gaeta
3
Il Software
• Nei moderni sistemi di elaborazione questi obiettivi vengono
raggiunti grazie alla definizione di macchine virtuali che
vengono realizzate al di sopra della macchina hardware reale
Utente
HW
macchina virtuale
Informatica di Base -- R.Gaeta
4
Il Software
• Al di sopra della macchina reale (HW) si crea un livello
software che realizza una macchina virtuale astratta con le con
le funzionalità desiderate, e facile da utilizzare
• Questa macchina si dice virtuale in quanto essa non esiste
fisicamente ma viene realizzata mediante il software (software
di base)
• L'utente interagisce con la macchina virtuale grazie ad un
opportuno linguaggio di comandi.
• La macchina virtuale si preoccuperà della traduzione dei
comandi ad alto livello nell'opportuno comando che realizza la
stessa funzione ed è riconosciuto dalla macchina fisica
Informatica di Base -- R.Gaeta
5
Il Software di base
• Ogni computer ha un suo linguaggio macchina le cui istruzioni
sono direttamente eseguibili dalla macchina hardware
• Al di sopra di questo linguaggio è possibile definire altri
linguaggi e fornire delle regole per tradurne le istruzioni in
opportune sequenze di istruzioni in linguaggio macchina
• Possiamo vedere il software di base come ad un insieme di
programmi in linguaggio macchina la cui esecuzione permette di
creare l'ambiente virtuale con cui l'utente si trova ad
interagire
Informatica di Base -- R.Gaeta
6
Il Software di base
• Il software di base fornisce un insieme finito di comandi, detto
linguaggio comandi, che la macchina è in grado di eseguire
Esempio: supponiamo che l'utente voglia stampare un file. A
livello fisico questa operazione è complessa e richiede
operazioni di trasferimento dati dal disco alla stampante (via
memoria centrale)
La macchina virtuale fornisce all'utente un semplice comando di
stampa:
> print file1
mediante il quale si può richiedere la stampa delle informazioni
contenute nel file di nome file1
Informatica di Base -- R.Gaeta
7
Il Software di base
• La macchina virtuale deve innanzitutto verificare se si tratta
di un comando valido
• Poi tradurlo nell’opportuna sequenza di comandi a basso livello
per la macchina fisica
• Una volta eseguito il comando, la macchina virtuale si pone in
attesa di un nuovo comando da parte dell'utente
• Grazie a questo livello software si può astrarre dalle
caratteristiche fisiche della macchina
Informatica di Base -- R.Gaeta
8
Il Software di base
• Si può anche fare in modo che macchine differenti siano usabili
in modo simile: si tratta, infatti, di costruire al di sopra delle
diverse macchine fisiche la stessa macchina virtuale
• Per ogni comando della macchina virtuale si dovranno però
avere diversi programmi di traduzione, uno per ogni tipo di
hardware
Informatica di Base -- R.Gaeta
9
Tipi di funzioni fornite da SW di base
• Configurazione e accensione macchina
• Gestione di informazione su memoria secondaria
=> FILE SYSTEM
• Strumenti per accesso a tali informazioni
• Gestione delle risorse
– uso semplificato e astratto risorse per utente, es.
dischi, nastri ...
stampanti,
– uso ottimale per sistema
Informatica di Base -- R.Gaeta
10
Tipi di funzioni fornite da SW di base
• Linguaggio di comandi astratto per interazione con il
sistema
• Supporto per la comunicazione tra utenti e tra
elaboratori
• Supporto per programmi applicativi
• Linguaggi e ambienti di programmazione ad alto livello
L'insieme di programmi che realizza le funzionalità
viste in precedenza prende il nome di
SISTEMA OPERATIVO
Informatica di Base -- R.Gaeta
11
Il Sistema Operativo
• Il sistema operativo è la componente software fondamentale di
un computer
• È formato da un insieme di programmi che interagiscono e
cooperano tra di loro per realizzare due obiettivi fondamentali:
– gestire efficientemente l'elaboratore e le sue periferiche, cercando di
sfruttare al massimo tutte le componenti hardware
– creare un ambiente virtuale per facilitare l'interazione uomo-macchina
Informatica di Base -- R.Gaeta
12
Il Sistema Operativo
• Esistono diversi tipi di sistemi operativi per diverse classi di
computer
• Primi
sistemi
operativi
(anni
60)
avevano
lo
scopo
semplificare interazione con il computer
• Distinzioni fondamentali
– sistemi mono-utente - sistemi multi-utente
– sistemi interattivi - sistemi batch
Informatica di Base -- R.Gaeta
13
di
Il Sistema Operativo
• Sistemi mono-utente interattivi pensati per Personal Computer
– IBM PC - Compatibili (DOS - versioni Windows precedenti Windows 95)
– Macintosh
• Due diversi tipi di interazione utente/computer:
– interazione testuale
• es. MS-DOS per PC-IBM
– interazione grafica
• es.
Macintosh
• es. Windows per PC-IBM, Windows 95
Informatica di Base -- R.Gaeta
14
Il Sistema Operativo: Esempio
Eseguiamo il programma che permette di
ottenere una finestra MS-DOS
Informatica di Base -- R.Gaeta
15
Il Sistema Operativo: Esempio
Immettiamo il comando date
Informatica di Base -- R.Gaeta
16
Il Sistema Operativo: Esempio
Premendo il tasto “Enter” si ottiene
Informatica di Base -- R.Gaeta
17
Il Sistema Operativo: Esempio
• Le operazioni effettuate sembrano abbastanza semplici ma …
• Provocano una serie di eventi in cui vengono coinvolte sia risorse
hardware che risorse software
• Il coordinamento e la gestione delle varie risorse viene
effettuato dal Sistema Operativo
• Il Sistema Operativo fornisce i servizi che sono necessari a
tutti gli altri programmi in esecuzione
Informatica di Base -- R.Gaeta
18
Il Sistema Operativo: Esempio
❶ Per ogni carattere immesso tramite la tastiera viene inviato un
codice corrispondente al computer
❷ Il codice viene ricevuto da un circuito che si occupa di gestire
la comunicazione con la tastiera
❸ Il codice viene memorizzato in un’area di memoria riservata
(buffer) e viene inviato un segnale alla CPU (interrupt)
❹ Quando la CPU riceve un interrupt dalla tastiera attiva un
modulo (un piccolo programma) chiamato terminal driver
Informatica di Base -- R.Gaeta
19
Il Sistema Operativo: Esempio
❺ Il terminal driver invia al monitor una copia del codice del
carattere immesso per visualizzare il carattere
❻ Il codice corrispondente al carattere “Enter” indica che il
comando immesso (date) è completo
❼ Il terminal driver attiva un altro modulo chiamato listener
(perché attende le richieste provenienti dagli utenti)
❽ Il listener legge i caratteri dal buffer della tastiera e ricerca
un programma chiamato date, lo carica in memoria centrale e lo
esegue
Informatica di Base -- R.Gaeta
20
Il Sistema Operativo: Esempio
❾ Il programma date “va a leggere” un “orologio” (un contatore
che tiene conto dello scorrere del tempo) e passa l’informazione
letta al terminal driver
❿ Il terminal driver trasmette la data al monitor che la visualizza
Ognuno di questi eventi può essere descritto in dettaglio, per
esempio:
– prima che il programma listener carichi il programma date in memoria deve
localizzare la “directory” dove tale comando si trova, ecc.
– La fase di caricamento del programma comprende una fase di lettura dal
disco rigido
Informatica di Base -- R.Gaeta
21
Il Sistema Operativo: Esempio
dat
BUFFER
Monitor
dat
date
listener
directory manager
file manager
terminal driver
disk driver
BUFFER
Disco rigido
148.608.043.200.010
clock
Tastiera
Ogni carattere dato in input dalla tastiera viene ricevuto dal
terminal driver che lo invia al monitor per la visualizzazione
Informatica di Base -- R.Gaeta
22
Il Sistema Operativo: Esempio
date<cr>
BUFFER
Monitor
date<cr>
date
listener
directory manager
file manager
terminal driver
disk driver
Disco rigido
148.608.043.200.020
BUFFER
Tastiera
Quando viene immesso il carattere Enter <cr> il terminal driver
passa la stringa date al programma listener che interpreta il
comando
Informatica di Base -- R.Gaeta
23
Il Sistema Operativo: Esempio
BUFFER
Monitor
date
listener
directory manager
file manager
terminal driver
disk driver
Disco rigido
148.608.043.200.032
BUFFER
Tastiera
Il listener richiede al directory manager di cercare (nella
directory dei comandi) date. Il programa directory manager
richiede al programma file manager, che a sua volta si avvale del
programma disk driver, di localizzare sul disco rigido il
programma date
Informatica di Base -- R.Gaeta
24
Il Sistema Operativo: Esempio
BUFFER
Monitor
date
listener
directory manager
file manager
terminal driver
disk driver
Disco rigido
148.608.043.200.045
BUFFER
Tastiera
Quando il comado date è stato localizzato (è un file eseguibile)
il listener (mediante il file manager) lo carica in memoria. Per
fare questa operazione il file manager utilizza il disk driver
Informatica di Base -- R.Gaeta
25
Il Sistema Operativo: Esempio
BUFFER
Monitor
date
listener
directory manager
file manager
terminal driver
disk driver
BUFFER
Tastiera
Disco rigido
148.608.043.200.101
Il listener manda in esecuzione il programma date che legge il
clock ed effettua delle operazioni di conversione per
trasformare il valore letto nella data del giorno
Informatica di Base -- R.Gaeta
26
Il Sistema Operativo: Esempio
BUFFER
Monitor
date
listener
directory manager
file manager
terminal driver
disk driver
BUFFER
Tastiera
Disco rigido
148.608.043.200.104
Il programma date tramite il terminal driver visualizza sul
monitor la data
Informatica di Base -- R.Gaeta
27
Il Sistema Operativo: esempio
Sebbene le operazioni che abbiamo preso in esame “sembrino
abbastanza semplici” e di uso frequente esse provocano una
serie di eventi e azioni molto complesse e articolate
L’immissione di un semplice carattere (tramite tastiera) può
provocare l’esecuzione di una decina (o anche più) di
funzionalità del S.O.
Informatica di Base -- R.Gaeta
28