• Non ci sono risultati.

Software di base•Tra il linguaggio macchina (basso livello) ei linguaggi evoluti (alto livello) esiste unostrato di software•Esso svolge funzioni di base:

N/A
N/A
Protected

Academic year: 2021

Condividi "Software di base•Tra il linguaggio macchina (basso livello) ei linguaggi evoluti (alto livello) esiste unostrato di software•Esso svolge funzioni di base:"

Copied!
3
0
0

Testo completo

(1)

1

Fondamenti di Informatica 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

Fondamenti di Informatica 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

Fondamenti di Informatica 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)

Fondamenti di Informatica 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

Fondamenti di Informatica 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

Fondamenti di Informatica 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

(2)

2

Fondamenti di Informatica 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

Fondamenti di Informatica 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

Fondamenti di Informatica 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

Fondamenti di Informatica 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

Fondamenti di Informatica 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;

time-sharing;

Fondamenti di Informatica 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

(3)

3

Fondamenti di Informatica 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

• CPU anche complesse, in numero ristretto

Fondamenti di Informatica 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

Fondamenti di Informatica 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 – parallelismo di istruzione

Fondamenti di Informatica 16

Parallelismo spaziale

• E' anche detto parallelismo sui dati

• Indica la quantità di dati che vengono elaborati contemporaneamente

• Esempio del processore Pentium

Fondamenti di Informatica 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

• Si dicono processori a pipeline

Fondamenti di Informatica 18

Parallelismo di istruzione

MOV ax,[dato1]

ADD bx,cx ADD ax,cx

IF ID OR EX OW

Riferimenti

Documenti correlati

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

Il sistema operativo tiene traccia sull’uso dei blocchi di memoria (libero, occupato e a chi assegnato) mediante una tabella dei blocchi Quando un nuovo processo richiede

Guarda con attenzione l’immagine che segue e cerca di copiarla a mano libera nella maniera più precisa possibile!. Stai bene attento alle dimensioni, alle proporzioni e ai

Ente pubblico a carattere nazionale che gestisce l’assicurazione contro gli infortuni sul lavoro e contro le malattie

  Con n processi nella coda e un quanto di tempo = q, ogni processo riceve 1/n di CPU time in blocchi di q unità per

Starvation: si verifica quando uno o più processi di priorità bassa vengono lasciati indefinitamente nella coda dei processi pronti, perchè vi è sempre almeno un processo pronto

Input value (D) bytes mask (access. enable if 1) Write

assembly MIPS in linguaggio macchina in formato esadecimale calcolando prima i valori esadecimali Loc1 e Loc2 che permettono di saltare esattamente all’indirizzo indicato