La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.

Presentazioni simili


Presentazione sul tema: "Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software."— Transcript della presentazione:

1 Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software Esso svolge funzioni di base: –traduzione di linguaggi da alto a basso livello –comunicazione tra i vari sottosistemi hardware –gestione e distribuzione delle risorse

2 Fondamenti di Informatica2 Esecuzione dei programmi L'esecuzione di un programma scritto con un linguaggio ad alto livello è preceduta dai seguenti passi: –traduzione in linguaggio macchina –collegamento con programmi di supporto (calcoli, comunicazione con periferiche,…) –caricamento in memoria

3 Fondamenti di Informatica3 Compilatori e Interpreti Esistono due modi per eseguire i 3 passi menzionati: –in sequenza, dopo il termine del passo precedente (compilatori) –in sequenza, prima del termine del passo precedente (interprete, detto anche simulazione software)

4 Fondamenti di Informatica4 Traduzione in linguaggio macchina Viene suddivisa in 2 passi: –analisi (lessicale, grammaticale, contestuale) –trasformazione del programma sorgente in programma oggetto (forma più vicina al linguaggio macchina): creazione tabella simboli ottimizzazioni (rimozione ripetizioni, eliminazione cicli, sfruttamento registri,…); livelli di ottimizzazione

5 Fondamenti di Informatica5 Collegamento con programmi di supporto Il codice oggetto così formato: –può ancora contenere dei simboli irrisolti riferimenti esterni a programmi di servizio (accesso alle periferiche, calcoli matematici,...) –contiene indirizzi relativi Il Linker serve per collegare diversi moduli oggetto

6 Fondamenti di Informatica6 Caricamento in memoria Il Loader serve per caricare in memoria un programma rilocabile Nel caricamento vengono fissati tutti gli indirizzi relativi –variabili, salti, … Vengono caricati anche i programmi di supporto, se necessari

7 Fondamenti di Informatica7 Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi tipi di sistemi operativi, classificati rispetto: –alle funzionalità –alle caratteristiche della struttura interna

8 Fondamenti di Informatica8 Classificazione dei S.O. rispetto alle funzionalità Sistemi interattivi –l'utente, attraverso un terminale, comanda l'esecuzione delle diverse fasi –comodo e flessibile (per la messa a punto) Sistemi a lotti (o batch) –la sequenza deve essere decisa a priori –scomodo, ma utilizzato per processi lunghi o per l'esecuzione finale

9 Fondamenti di Informatica9 Classificazione dei S.O. rispetto alla struttura Diverse tecniche di gestione delle risorse: –monoprogrammazione –multiprogrammazione –multielaborazione La scelta dipende anche dal tipo di calcolatore e dalle sue caratteristiche hw

10 Fondamenti di Informatica10 Monoprogrammazione E' il modo più semplice per gestire un elaboratore –il S.O. gestisce in modo sequenziale i diversi programmi, uno per volta –poca efficienza dell'hw a causa della diversa velocità tra CPU e periferiche

11 Fondamenti di Informatica11 Multiprogrammazione Vengono gestiti simultaneamente più programmi indipendenti; gestione ottimale Il S.O. è molto più complesso: –carica contemporaneamente più programmi –mentre uno è in attesa, ne esegue un altro –la scelta dipende dalla priorità problemi di starvation; meccanismi di alternanza; time-sharing;

12 Fondamenti di Informatica12 Multielaborazione Più CPU o più elaboratori cooperano nell'esecuzione dei programmi Problematiche molto complesse Richiedono speciali architetture dei sistemi di elaborazione Sono lo stato dell'arte della tecnologia corrente

13 Fondamenti di Informatica13 Multielaborazione Esistono due diverse modalità: –SIMD (Single Instruction Multiple Data) elaboratore formato da più CPU, ognuna delle quali esegue le stesse operazioni su dati diversi CPU semplici, in numero elevato –MIMD (Multiple Instruction Multiple Data) elaboratore formato da più CPU, ognuna delle quali esegue operazioni diverse su dati diversi CPU anche complesse, in numero ristretto

14 Fondamenti di Informatica14 Multielaborazione Esempi: –SIMD: elaborazione di immagini, di suoni, simulazioni a grana fine –MIMD: trattamento di grosse moli di dati, elaborazione di immagini a grana grossa

15 Fondamenti di Informatica15 Multielaborazione Può esservi multielaborazione non solo a livello di sistema di elaborazione, ma anche a livello di CPU (parallelismo) La CPU può essere caratterizzata da diversi livelli di parallelismo: –parallelismo di parola –parallelismo spaziale –parallelismo di istruzione

16 Fondamenti di Informatica16 Parallelismo spaziale E' anche detto parallelismo sui dati Indica la quantità di dati che vengono elaborati contemporaneamente Esempio del processore Pentium

17 Fondamenti di Informatica17 Parallelismo di istruzione L'esecuzione di un'istruzione coinvolge più risorse Se due istruzioni sono indipendenti e utilizzano diverse risorse, possono essere eseguite contemporaneamente Le CPU con queste possibilità sono suddivise in stages Si dicono processori a pipeline

18 Fondamenti di Informatica18 Parallelismo di istruzione MOV ax,[dato1] ADD bx,cx ADD ax,cx IF ID OR EXOW


Scaricare ppt "Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software."

Presentazioni simili


Annunci Google