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