Звіт

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
КСС
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Проектування віртуальних машин

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ«ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЕОМ  Звіт лабораторна робота №6 «Дослідження принципів віртуалізації програмного оточення на прикладі Java Virtual Machine» з дисципліни: «Проектування віртуальних машин» Мета: Дослідити роботу засобів програмної віртуалізації на прикладі Java Virtual Machine Завдання: № Функція Кількість вхідних аргументів  05 Середнє арифметичне 2  Порядок виконання роботи: 1. Схема та стислий опис роботи JVM. Програми, що написані мовою Java, є незалежними від фізичної платформи. Це означає, що можна скомпілювати Java-програму на одній архітектурі (наприклад, Pentium), а потім запустити її на виконання в іншій архітектурі (скажімо, на Sun workstation) без додаткових модифікацій і перекомпіляції. Компілятор Java-програм не враховує архітектуру машини, на якій має викликатися результат компіляції, наприклад, число регістрів, розмір пам’яті, порти введення-виведення тощо. Після завершення компіляції для виконання програми нам потрібна так звана віртуальна машина Java - Java Virtual Machine (JVM), аби надати архітектуру для запуску і виконання скомпільованої програми. При цьому віртуальною машиною Java називають програмне забезпечення, що емулює реальну машину. VM є за своєю сутністю обгорткою ("wrapper"), в яку загорнуто реальну апаратну архітектуру. З боку Java-програми така обгортка надає стандартний інтерфейс, а з боку апаратури інтерфейс обгортки залежить від апаратної архітектури і є досить складним. Тому JVM для платформи Pentium відрізняється від JVM для платформи Sun workstation, яка, в свою чергу, відрізняється від JVM для платформи Macintosh тощо. Хоча JVM є віртуальною, вона надає яскравий приклад елегантно розробленої архітектури рівня машинних інструкцій. Віртуальна машина Java для конкретної платформи реалізується на машинних інструкціях цієї платформи. JVM діє як інтерпретатор так званого байткоду Java (Java bytecode), що інтерпретуються під час виконання в машинні інструкції відповідної обчислювальної машини. Байткод Java є результатом компіляції текстів програм, написаних мовою Java (рис.1). Робота JVM подібна до виконання оператора switch (case) - JVM «розбирає» одну інструкцію байткоду за один раз. При цьому кожна інструкція байткоду спричиняє перехід на відповідний блок машинного коду (в архітектурі платформи виконання), який власне реалізує цю інструкцію байткоду.  Рис.1. Схема віртуалізаії програмного оточення на основі JVM 2. Порядок створення, компіляції та запуску Java-програм. Для того щоб створювати та компілювати Java-програми потрібно встановити Java Development Kit. Далі була набрана програма згідно варіанту. Та збережена з назвою my_lab.java. Наступним кроком була її компіляція javac my_lab.java. Далі отримання її байт коду java –c my_lab та вивід її у файл. Останнім кроком був запуск скомпільованої програми java my_lab. 3. Текст створеної Java-програми. public class my_lab{ public static void main (String[] Args) { int a,b,res = 0; a = Integer.parseInt(Args[0]); b = Integer.parseInt(Args[1]); res = Calc(a,b); System.out.println(res); } public static int Calc(int i, int j) { int sum = (i + j) / 2; return sum; } } 4. Результати компіляції та запуску на виконання створеної Java-програми.  Рис.2. Схема конфігурації віртуальної мережі на основі мостового з’єднання. 5. Текст байткоду створеної Java-програми у вигляді інструкцій JVM з поясненнями. Compiled from "my_lab.java" public class my_lab { public my_lab(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: iconst_0 1: istore_3 2: aload_0 3: iconst_0 4: aaload 5: invokestatic #2 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I 8: istore_1 9: aload_0 10: iconst_1 11: aaload 12: invokestatic #2 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I 15: istore_2 16: iload_1 17: iload_2 18: invokestatic #3 // Method Calc:(II)I 21: istore_3 22: getstatic #4 // Field java/lang/System.out:Ljava/io/PrintStream; 25: iload_3 26: invokevirtual #5 // Method java/io/PrintStream.println:(I)V 29: return public static int Calc(int, int); Code: 0: iload_0 1: iload_1 2: iadd 3: iconst_2 4: idiv 5: istore_2 6: iload_2 7: ireturn } Висновок: Під час даної лабораторної роботи я дослідив роботу засобів програмної віртуалізації на прикладі Java Virtual Machine
Антиботан аватар за замовчуванням

11.05.2016 20:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!