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