Questo sito utilizza cookie di terze parti per inviarti pubblicità in linea con le tue preferenze. Se vuoi saperne di più clicca QUI 
Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all'uso dei cookie. OK

Sviluppo di software Java ad alte prestazioni e realizzazione di una suite di benchmarks per J2ME e J2SE orientati al DSP

L'anteprima di questa tesi è scaricabile in PDF gratuitamente.
Per scaricare il file PDF è necessario essere iscritto a Tesionline.
L'iscrizione non comporta alcun costo. Mostra/Nascondi contenuto.

CAPITOLO 1 - Il linguaggio Java e la Java Virtual Machine A ciascun thread, creato in un programma in esecuzione, viene assegnato un proprio program counter (pc register) ed uno stack Java. Il pc register conterrà l’indirizzo della prossima istruzione da eseguire purché, ovviamente, il thread stia elaborando del codice Java e non un metodo nativo. Lo stack Java assegnato al thread, invece, conterrà, per ciascun metodo in esecuzione, le sue variabili locali, i parametri con i quali è stato invocato, l’eventuale valore di ritorno, le elaborazioni intermedie, ecc. Infatti, la Java Virtual Machine, non possedendo dei registri interni per mantenere i risultati intermedi delle elaborazioni, deve far ricorso direttamente alla memoria RAM, che è organizzata come uno stack Java. Questo approccio, è stato adottato dai progettisti per una molteplicità di ragioni, quali: mantenere il set di istruzioni compatto ed al contempo facilitare, pur cercando di non penalizzare eccessivamente le prestazioni complessive, l’implementazione delle specifiche attraverso una struttura di registri svincolata dal particolare sistema. La diminuzione delle prestazioni, in questo caso, è inevitabile ed è dovuta al fatto che anche i registri interni alla Virtual Machine saranno soltanto virtuali e non dei veri e propri registri di un processore che, per costruzione, risultano sostanzialmente più veloci della memoria esterna. Inoltre, adottando la soluzione dello stack, l’architettura della Java Virtual Machine faciliterà l’operazione di ottimizzazione del codice nel caso in cui siano presenti dei compilatori dinamici che operino in run- time. Lo stack Java è suddiviso in frames (ciascuno dei quali contiene lo stato del metodo invocato). Quando un thread effettua l’invocazione di un metodo, la Virtual Machine inserirà il relativo frame nello stack, che verrà poi scartato al completamento del metodo stesso. Lo stato delle invocazioni dei metodi nativi, invece, è memorizzato in un altro stack, che è chiamato: native method stack. Nella seguente figura è rappresentata un’istantanea della Java Virtual Machine dove sono in esecuzione tre differenti thread. In particolare, sono rappresentate le aree di memoria che vengono create in maniera indipendente per ciascun thread. Tali aree sono private ed esclusive, quindi, nessuno dei thread può aver accesso al pc register od allo stack Java di un altro. Come si vede in figura, i thread uno e due stanno eseguendo un metodo Java, mentre il numero tre un metodo nativo. Ciò comporta, che i registri pc dei primi due thread possiedano l’indirizzo 2

Anteprima della Tesi di Leonardo Minnozzi

Anteprima della tesi: Sviluppo di software Java ad alte prestazioni e realizzazione di una suite di benchmarks per J2ME e J2SE orientati al DSP, Pagina 12

Tesi di Laurea

Facoltà: Ingegneria

Autore: Leonardo Minnozzi Contatta »

Composta da 268 pagine.

 

Questa tesi ha raggiunto 3529 click dal 12/10/2004.

 

Consultata integralmente 4 volte.

Disponibile in PDF, la consultazione è esclusivamente in formato digitale.