Lezione 16 Software di base Il Software di base Con il termine software di base si intende l insieme dei programmai che consentono ad un utente di eseguire operazioni base come costruire e mandare in esecuzione un programma. Il software di base è costituito da: sistema operativo editori traduttori linker caricatori debugger 1
Il sistema operativo (S.O.) E un insieme di programmi che agiscono come intermediari tra l utente ed il calcolatore Rende il calcolatore una macchina astratta, indipenente cioè dalla sua propria realizzazione fisica, dal modello, e ne semplifica la gestione e l interazione Il Sistema Operativo Si distinguono i S.O. che lavorano in monoprogrammazione e quelli che lavorano in multiprogrammazione in monoprogrammazione è consentita l esecuzione di un programma alla volta in multiprogrammazione è possibile avere contemporaneamente più programmi attivi in stato diverso di avanzamento 2
I servizi Un Sistema Operativo fornisce i seguenti servizi: Esecuzione dei programmi carica in memoria centrale un programma specificato dall utente e lo esegue Operazioni di ingresso/uscita Un programma può richiedere la lettura/scrittura di dati sia su mezzi di ingresso/uscita come video,stampanti e tastiera o verso la memoria di massa. Queste richieste sono inviate al SO che le rende così indipendenti dallo specifico mezzo I servizi Gestione file Un file è un insieme di informazioni in qualche modo correlate fra di loro (può essere un programma, un insieme di dati, un testo). Il SO scrive i file su dispositivi (nastri, dischi) e ne permette la gestione. Le operazioni che il SO rende disponibili sono: identificazione del file tramite un nome, creazione, cancellazione, copia, lettura, organizzazione in directory 3
I servizi Protezione In un sistema multiutente il SO deve garantire un sistema di proprietà dei dati in modo che solo il legittimo proprietario possa gestirli Rilevazione degli errori Il SO deve segnalare errori hardware (errori nella memoria centrale), errori nei mezzi di IN/OUT (scrittura difettosa su disco, mancanza di carta), errori nei programmi (accesso ad aree di memoria non permessa) Interazione con il sistema operativo Dopo la fase di installazione di un sistema operativo (eseguita tramite un apposito programma di installazione) l utente deve poter interagire con il SO tramite: attivazione del SO comunicazione tramite comandi comunicazione tramite chiamate al sistema 4
Interazione con SO Attivazione: Il sistema operativo viene conservato sulla memoria di massa e viene caricato in memoria centrale tramite un programma di bootstrap L accensione del calcolatore manda in esecuzione tale programma in modo automatico che copia il sistema operativo da locazioni fisse dalla memoria di massa Interazione con SO Comunicazione tramite comandi L interfaccia fra un SO e un utente è costituita da una serie di comandi digitati su un terminale e messaggi che il SO invia sul terminale. I comandi possono essere immessi in modo interattivo o in modalità batch (vengono letti da file) I comandi sono letti ed interpretati da un interprete dei comandi. L interprete è la parte del SO attiva inizialmente e quella a cui riturna il controllo dopo che sono state eseguite le funzioni richieste 5
Interazione con SO Comunicazione tramite chiamate al sistema Le chiamate al sistema forniscono l interfaccia ra i programmi in esecuzine ed il sistema operativo Es. IN/OUT viene fatto tramite funzioni che astraggono dal dispositivo permettendo una scrittura ad alto livello dei programmi Programmi di sistema Per la creazione e l esecuzione dei programmi sono necessari i seguenti software di base: Editore Traduttore Linker Caricatore Debugger 6
Editori E un programma con cui è possibile creare e manipolare in modo interattivo un file di caratteri In questo modo è possibile scrivere un programma in un linguaggio di alto livello L editore permette operazioni di inserimento e cancellazione di parole e frasi, modifiche, spostamenti e ricerche Traduttori Il Traduttore è un programma che converte un programma sorgente scritto in linguaggio simbolico in codice binario immediatamente comprensibile per il calcolatore. I traduttori si dividono in compilatori interpreti 7
Compilatori Un compilatore riceve in ingresso un intero file sorgente e restituisce un file oggetto. Successivamente è possibile mandare in esecuzione il programma. Si realizzano programmi veloci perché la fase di traduzione è eseguita una unica volta ed è inoltre possibile effettuare un ottimizzazione sul codice prodotto Interpreti Un programma Interprete legge una frase alla volta dal programma sorgente, la trasforma in una sequenza di istruzioni macchina e la manda in esecuzione. Le fasi di traduzione ed esecuzione si alternano ad ogni istruzione Permette la rilevazione e la correzione immediata ed interattiva degli errori 8
Linker Il programma Linker assembla più programmi oggetto prodotti separatamente. Diventa così possibile collegare programmi con sottoprogrammi o con librerie scritte da terze parti Caricatori Detto anche loader, ha il compito di trasferire un programma dalla memoria di massa alla memoria centrale. E possibile tradurre un sorgente in oggetto una unica volta e mandarlo in esecuzione più volte tramite il loader. 9
Programmi diagnostici Detti debugger, aiutano a controllare il flusso di esecuzione di un programma per individuare eventuali errori. Permettono di eseguire un programma passo passo, di specificare punti di arresto e di verificare il contenuto di registri e variabili, eventualmente di modificarli 10