Lezione 16 Il Software di base
Transcript
Lezione 16 Il Software di base
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