15.06.2013 Views

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

contiene sommariamente:<br />

• l'<strong>in</strong><strong>di</strong>rizzo logico della tabella delle pag<strong>in</strong>e del processo;<br />

• l'<strong>in</strong><strong>di</strong>rizzo logico della coda pronti;<br />

• il contenuto del PC program counter, <strong>in</strong><strong>di</strong>rizzo della prossima<br />

istruzione da eseguire<br />

• il contenuto REG dei registri generali della CPU;<br />

Carnielli Efrem: Programmazione a componenti<br />

Programmazione a componenti<br />

• <strong>in</strong>formazioni utili per lo schedul<strong>in</strong>g della CPU, come la priorià del<br />

processo;<br />

• lo stato del processo PS.<br />

Potremmo idealmente rappresentare un processo come una struttura<br />

< spazio <strong>di</strong> <strong>in</strong><strong>di</strong>rizzi, stato ><br />

dove con spazio <strong>di</strong> <strong>in</strong><strong>di</strong>rizzi s’<strong>in</strong>tende l’<strong>in</strong>sieme delle <strong>in</strong>formazioni, co<strong>di</strong>ce e dati,<br />

del programma e il vettore <strong>di</strong> stato del programma (REG,PC,PS,…).<br />

A gran<strong>di</strong> l<strong>in</strong>ee il processo <strong>di</strong> esecuzione del programma segue quanto <strong>in</strong><strong>di</strong>cato<br />

nella figura 1.1:<br />

Esecuzione<br />

Compilazione<br />

Programma Eseguibile<br />

Processo<br />

Figura 1.1. Rappresentazione naif dell'esecuzione<br />

Ancora più precisamente potremmo def<strong>in</strong>ire un processo come un eseguibile <strong>in</strong><br />

esecuzione.<br />

Spieghiamo meglio l’affermazione precedente con un esempio: consideriamo due<br />

programmi (sequenze <strong>di</strong> co<strong>di</strong>ce) scritti uno <strong>in</strong> C e l’altro <strong>in</strong> Java.<br />

Per com<strong>in</strong>ciare <strong>in</strong>troduciamo brevemente il concetto <strong>di</strong> macch<strong>in</strong>a virtuale: una<br />

macch<strong>in</strong>a virtuale, per come la <strong>in</strong>tenderemo noi, è un programma che emula un<br />

calcolatore (<strong>di</strong> solito un calcolatore astratto, cioè a cui non corrisponde un<br />

calcolatore reale); i programmi vengono scritti <strong>in</strong> un l<strong>in</strong>guaggio che viene<br />

compilato per questo calcolatore immag<strong>in</strong>ario (cioè tradotti nelle sue istruzioni<br />

native) e, una volta compilati, vengono eseguiti sulla macch<strong>in</strong>a virtuale software.<br />

Dal momento che si possono scrivere <strong>di</strong>verse macch<strong>in</strong>e virtuali per <strong>di</strong>verse<br />

piattaforme, il programma compilato può "girare" (essere eseguito) su qualsiasi<br />

piattaforma su cui "gira" (è <strong>in</strong> esecuzione) la macch<strong>in</strong>a virtuale.<br />

Un l<strong>in</strong>guaggio che fa uso della macch<strong>in</strong>a virtuale è Java: i programmi scritti <strong>in</strong> Java<br />

7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!