• Non ci sono risultati.

Software di base

N/A
N/A
Protected

Academic year: 2021

Condividi "Software di base"

Copied!
18
0
0

Testo completo

(1)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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;

(12)

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)

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

(14)

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)

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

(16)

Parallelismo spaziale

• E' anche detto parallelismo sui dati

• Indica la quantità di dati che vengono elaborati contemporaneamente

• Esempio del processore Pentium

(17)

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

(18)

Parallelismo di istruzione

MOV ax,[dato1]

ADD bx,cx ADD ax,cx

IF ID OR EX OW

Riferimenti

Documenti correlati

o istruzioni da memoria a registro, che permettono il passaggio delle parole dalla memoria ai registri della CPU, dove possono essere usate come input dell’ALU, quali operandi

• in questa fase ci si deve preoccupare di rappresentare il contenuto informativo della base di dati. • eliminando le ambiguità tipiche delle frasi in

In figura 4.10 sono mostrati due esempi nel quale questa operazione ` e l’unica direzione lungo la quale pu` o essere estratto il pezzo, considerando che il pezzo non pu` o essere

I fattori e le circostanze che causano la corruzione sono incide per singoli dipendenti privati o ufficiali e nei corpi e livelli strutturali pubblici e

elettronica, un indirizzo di posta elettronica, un computer ed una connessione ad Internet e, ovviamente, la linea telefonica... Conti

SONO INSERITI € 13.022 CHE RIGUARDANO SOMME RESTITUITE NELL'ANNO 2002 E INTERESSI MATURATI SUL

In questa prima settimana di scuola abbiamo lavorato sull'insieme dei naturali.. Quali sono alcune importanti caratteristiche di

Il limite pi` u evidente di questo approccio consiste nell’impossibilit` a di includere nel modello regressori che assumano un valore costante all’interno delle osservazioni relative