MASINA VIRTUALA JAVA FLORESCU IULIAN COSMIN MASTER IISC

  • Slides: 13
Download presentation
MASINA VIRTUALA JAVA FLORESCU IULIAN COSMIN MASTER IISC

MASINA VIRTUALA JAVA FLORESCU IULIAN COSMIN MASTER IISC

CUPRINS ◦ Introducere ◦ Arhitectura sistemului de calcul ◦ Notiunea de masina virtuala ◦

CUPRINS ◦ Introducere ◦ Arhitectura sistemului de calcul ◦ Notiunea de masina virtuala ◦ Masina virtuala JAVA ◦ Cum functioneaza JVM ◦ Principalele componete ale JVM ◦ BIBLIOGRAFIE

Introducere Cand vine vorba despre masina virtuala trebuie de asemnea sa luam in discutie

Introducere Cand vine vorba despre masina virtuala trebuie de asemnea sa luam in discutie arhitectura sistemului de calcul in sens larg. Masina virtuala realizeaza deaseori o legatura cu arhitectura sistemului, de aceea este folositor sa definim sumar arhitectura sistemului. Arhitectura unei cladiri descrie functionalitaea si asectul ei catre utilizatorii cladirii, da nu prezinta detalii despre instalatia ei sannitara sau despre cum a fost construita. Analog, termenul de arhitectura, aplicat sistemelor de calcul, se refera la functionalitatea si aspectul sistemului, dar nu si detalii de constructie. Arhitectura este de obicei descrisa prin specificatiile unei interfete sau prin descrierea unui comportament al unei componente logice manipulate printr-o interfata.

Introducere - arhitectura sistemului de calcul In figura alaturata sunt prezentate interfetele din arhitectura

Introducere - arhitectura sistemului de calcul In figura alaturata sunt prezentate interfetele din arhitectura unui sistem de calcul obisnuit descrisa pe anumite niveluri: - La nivelul software esxita de exemplu o interfata intre aplicatia in sine si librariile standard ( interfata 2); - In nivelul hardware interfata 11 descrie legatura intre dispozitivele de intrare iesire - Nivelul ISA (Instruction Set Architecture) reprezinta granita dintre nivelul hardware si software si este compusa din interfetele 7 si 8.

Introducere - arhitectura sistemului de calcul Instruction Set Architecture (ISA) – reprzinta granita dintre

Introducere - arhitectura sistemului de calcul Instruction Set Architecture (ISA) – reprzinta granita dintre hardware si software Application Binary Interface (ABI) asigura acces la resursele hardware si serviciile disponivile in sistem. Application Programmming Interface (API) este de obicei definit ca un limbaj de nivel inalt. Api folosesc librariile standard pe care le apeleaza pentru a invoca diferite servicii ale sistemului disponibile, incluzand pe cele oferite de sistemul de operare

Introducere - notiunea de masina virtuala. Din perspectiva unui proces care executa un program

Introducere - notiunea de masina virtuala. Din perspectiva unui proces care executa un program al utilizatorului, masina reprezinta spatiul de memorie logica atribuita procesului, impreuna cu instructiunile si registrii de la nivelul utilizatorului care permit executia codului ce apartine procesului. Masina din prespectiva unui proces este o combinatie intre sistemul de operare si hardware-ul de baza la nivelului utilizatorului. ABI asigura interfata intre precese si masina.

Introducere - notiunea de masina virtuala- In contrast, system virtual machine ofera un mediu

Introducere - notiunea de masina virtuala- In contrast, system virtual machine ofera un mediu complet al sistemului. Acest mediu suporta sistemul de operare impreuna cu potentialele procese. Asigura sistemul de operare impreuna cu resusele hardware de baza, inclusiv sistemul de intrare – iesire, networking, si o interfata grafica

Masina virtuala JAVA - cum functioneaza JVM - - JVM reprezinta un calculator virtual

Masina virtuala JAVA - cum functioneaza JVM - - JVM reprezinta un calculator virtual care se afla pe un calculator real ca un proces software. - Codul scris intr-un fisier. java este compilat de catre compilatorul javac pentru a genera fisierul. class - Fisierul. class contine byte codul care reprezinta input-ul in JVM

Masina virtuala JAVA - cum functioneaza JVM - - Dificil este faptul ca java

Masina virtuala JAVA - cum functioneaza JVM - - Dificil este faptul ca java byte code-ul este compilat pe o masina care „nu exista”. - De fapt JVM exista in memoria calculatorului, iar un rol important il reprezinta interpretorul Java care actioneaza ca un intermediar intre masina vituala Java si masina reala

Masina virtuala JAVA - cum functioneaza JVM - - Java Virtual Machine este responsabila

Masina virtuala JAVA - cum functioneaza JVM - - Java Virtual Machine este responsabila pentru interpretarea byte code – ului Java și traducerea în acțiuni sau apeluri ale sistemului de operare. - Este responsabilitatea JVM să se ocupe de aceste traduceri astfel încât sistemul de operare și arhitectura procesorului pe care software-ul Java rulează sa fie complet irelevantă pentru dezvoltator

Masina virtuala JAVA - principalele componente ale JVMCrearea unei Java Virtual Machine necesita construirea

Masina virtuala JAVA - principalele componente ale JVMCrearea unei Java Virtual Machine necesita construirea fiecarei functii a unui calculator real. Principlalele compomnte sunt: • Un set de registri; • O stiva; • Un mediu de executie; • O coada (heap) garbage – collected heap; • Set de constante; • O zona de stocare a metodelor; • Un set de instructiuni.

Masina virtuala JAVA - principalele componente ale JVM- LIFO - Registri in masina virtuala

Masina virtuala JAVA - principalele componente ale JVM- LIFO - Registri in masina virtuala sunt actualizati dupa fiecare linie de byte code executa: registri in JVM sunt: PC, vars, frame, optop - Stiva – toate instructiunile iau operanzii din stiva, lucreaza pe ei si apoi scriu inapoi in stiva - Mediu de executie – este folosit pentru a gestiona legaturile dinamice, returnarea normala a metodelor si generarea exceptiilor - Garbage-Collected Heap – fiecare program are un garbage colector la start, de o dimensiune initiala, dar care creste pe durata executiei programului in functie de necesitati - Setul de constante – fiecare clasa din stiva are un set de constante asociate, create de obicei la compilare. Clasa contine un numarator al constantelor in descrierea clasei - Zona de stocare a metodelor – similar cu runtime environment – zona unde se face compilarea codului - Setul de instructiuni – codul masina creat de compilatorul javac

Concluzii - Masina virtuala JAVA exista doar in memoria computerului, ca o masina de

Concluzii - Masina virtuala JAVA exista doar in memoria computerului, ca o masina de sine statatoare cu toate functiile unei masini reale - Pentru a examina byte code –ul creat se poate folosi dezasamblorul Javap - JVM ofera codului scris independenta de platforma si portabilitate prin capacitatea de a crea si interpreta byte codul