Інформаційна система контролю ресурсів

Дослідження та вдосконалення інформаційних систем контролю ресурсів платформ зі спільним доступом. Пояснення поняття хостингу та розгляд концепції віртуальної машини. Характеристика операційної системи віртуальної машини, її призначення та використання.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 17.06.2019
Размер файла 145,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Вступ

Інформаційні технології проникають у всі рівні життєдіяльності людини, тому тематика даної роботи є актуальною для ІТ-спеціалістів, що займаються розробкою ПЗ для комп'ютерних систем, а також засобів контролю ресурсів платформ зі спільним доступом.

Розвиток систем і засобів обчислювальної техніки, розширене їх впровадження в усі сфери науки, техніки, сфери обслуговування та побуту призвели до необхідності об'єднання конкретних обчислювальних пристроїв і реалізованих на їх основі інформаційних систем в єдині інформаційно-обчислювальні системи (ІОС) і середовища. При цьому розробники ІТТ зіткнулися з низкою проблем.

Метою роботи є дослідження та вдосконалення інформаційних систем контролю ресурсів платформ зі спільним доступом.

Об'єктом дослідження є інформаційні системи контролю ресурсів платформ зі спільним доступом.

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

Також розглянуто, що власне собою являє віртуальна машина, її призначення, цілі використання, наведено приклади віртуальниїх машин, що набули популярності серед користувачів.

1 ТЕОРЕТИЧНА ЧАСТИНА

1.1 Поняття хостингу та його види

Хомстинг (англ. hosting) -- послуга, що включає надання дискового простору, підключення до мережі та інших ресурсів для розміщення фізичної інформації на сервері, що постійно перебуває в мережі (наприклад Internet).

Поняття хостингу включає в себе широкий спектр послуг із використанням різного апаратного та програмного забезпечення. Зазвичай під поняттям послуги хостингу мають на увазі, як мінімум, послугу розміщення файлів сайту на сервері, на якому запущене ПЗ, необхідне для обробки запитів до цих файлів (веб-сервер). Як правило, до послуг хостингу вже входить надання місця для поштової кореспонденції, баз даних, DNS файлового сховища тощо, а також підтримка функціонування відповідних сервісів, однак вони можуть надаватися і окремо. А саме, послуга може бути обмежена розміщенням поштової кореспонденції та відповідного ПЗ (поштовий хостинг), клієнтських файлів (файловий хостинг), виключно відео файлів (відео хостинг) або інших файлів певного типу та за певними умовами.

Послуги хостингу можуть надаватися у пакеті з іншими інформаційними послугами, такими як реєстрація доменного імені, створення сайту, надання додаткового ПЗ тощо.

Провайдерами хостингу можуть виступати як компанії, що спеціалізуються на цих послугах («хостери»), так і великі провайдери інформаційних послуг, що спеціалізуються на інших послугах (такі як Google, Microsoft, Yahoo та інші).

Розрізняють безкоштовний та платний хостинг. Безкоштовні «хостери» заробляють на тому, щорозміщують рекламу на своїх сайтах або на наданні інших платних послуг (у пакеті з безкоштовними або опціонально).

Повнофункціональний хостинг

· віртуальний хостинг (virtual hosting або shared hosting) -- користувачеві надається частина місця на диску для розміщення веб-сайтів. При цьому середовище виконання веб-сервісів єдине для багатьох користувачів, а апаратні і програмні ресурси розподілені між усіма користувачами на одному сервері, де може розміщуватись від 50 до 1000 користувачів. Перевагами віртуального хостингу є відносно низькі ціни та набір послуг, що є адекватним для функціонування невеликого та оптимізованого сайту. Недоліками можна вважати те, що через розподілення ресурсів серверу між багатьма користувачами, надмірне споживання цих ресурсів одним сайтом може вплинути на роботу інших.

· віртуальний виділений сервер (VPS або VDS) -- послуга, в рамках якої користувачеві надається так званий віртуальний виділений сервер. Спосіб управління операційною системою здебільшого відповідає управлінню фізичним виділеним сервером. Зокрема: права адміністратора, root-доступ, власні IP-адреси, порти, правила фільтрування і таблиці маршрутизації. Віртуальний сервер надає користувачеві більше можливостей і привілеїв, а часто і більше ресурсів, ніж віртуальний хостинг. Водночас він є в середньому і більш дорогим.

· виділений сервер (dedicated server) -- надається сервер цілком. Використовується для реалізації нестандартних завдань (сервісів), а також розміщення «важких» веб-проектів, які не можуть співіснувати на одному сервері з іншими проектами і вимагають для себе всі ресурси сервера. Виділений сервер вважається найбільш ефективним, і водночас найбільш дорогим рішенням серед усіх видів хостингу. Управління таким сервером потребує від користувача більше технічних знань і навичок, ніж управління віртуальним хостингом.

· 'колокація (collocation) -- надання місця в дата центрі провайдера для обладнання клієнта (зазвичай шляхом монтажу в стійці) і підключення його до Інтернету. Дає можливість користуватися інфраструктурою дата центру, а саме системами охолодження повітря, пожежної безпеки тощо. Цією послугою користуються переважно досвідчені клієнти, що мають достатньо навичок для підключення і адміністрування власних серверів, або компанії, що самі надають інформаційні послуги.

· хмарний хостинг (cloud hosting або cloud storage) -- це послуга з розміщення файлів користувача, за якої дані зберігаються на багатьох серверах, що розподілені у мережі. Файли зберігаються у так званій «хмарі», що фізично складається з серверів, які можуть знаходитися далеко один від іншого, але з точки зору користувача працюють як один потужний віртуальний сервер. Перевагами хмарного хостинга є можливість колективної роботи з даними та відсутність прив'язки до ресурсів одного окремого серверу.

· реселлер хостинг (reseller hosting) -- хостинг з послугою перепродажу. Користувачеві надається можливість розподіляти дисковий простір і ресурси свого віртуального хостингу або серверу з метою розміщення на ньому сайтів третіх осіб, що можуть бути його клієнтами. Пакет послуг такого хостингу зазвичай включає спеціальне ПЗ для управління клієнтською базою, ресурсами, що надані клієнтам, тощо.

За умовами надання хостинг часто поділяється на платний і безкоштовний. Зазвичай компанія, що надає безкоштовний хостинг, заробляє шляхом показу реклами на сторінках, розміщених на ньому. Безкоштовний хостинг, як правило, повільніше платного, надає тільки базові послуги і ненадійний. Також часто безкоштовний хостинг надається для того, щоб через якийсь час перевести користувача на платну основу, шляхом погіршення умов користування. Приватні особи для своїх домашніх сторінок на початковому етапі їх розвитку використовують безкоштовний хостинг. Громадські організації можуть використовувати як платний хостинг, так і безкоштовний. Комерційні організації практично завжди користуються послугами платного хостингу.

Обмежений хостинг або хостинг певних послуг чи програм:

· Веб хостинг;

· E-mail хостинг;

· DNS хостинг;

· Ігровий хостинг;

· Wiki farm.

Веб-хостинг є одним із типів інтернет-хостингу, який дозволяє окремим особам та організаціям зробити свій веб-сайт доступним через World Wide Web. Веб-сайти компаній, які надають місце на сервері, що належать або орендовані для використання клієнтами, а також інтернет з'єднання, як правило, в центрі обробки даних. Веб-сайти, можуть також надавати дані космічного центру та підключення до Інтернету для інших серверів, розташованих в центрі обробки даних, це носить назву колокейшн, також відому як Housing в Латинській Америці чи Франції. Сфера послуг веб-хостингу часто змінюється. Однак основними є веб-сторінки та хостинг дрібних файлів, де файли можуть бути завантажені через File Transfer Protocol (FTP) або веб-інтерфейси. Файли, як правило, доставляються в Інтернеті «як є» або з мінімальною обробкою.

Багато Інтернет-провайдерів (ISP) пропонують дану послугу безкоштовно для абонентів. Приватні особи та організації можуть також отримати веб-сторінку хостингу від альтернативних постачальників послуг. Особистий веб-сайт хостинг, як правило, безкоштовний або недорогий. Бізнес веб-сайт хостинг часто платний.

Односторінковий хостинг використовується, як правило, у персональних веб-сторінках. Комплексний сайт вимагає більш всеосяжний пакет, який забезпечує підтримку баз даних і розробки додатків платформи (наприклад, PHP, Java, Ruby на Rails, ColdFusion, або ASP.NET). Адже саме дані послуги дозволяють клієнтам написати або встановити скрипти для додатків, таких як форуми та управління контентом. Крім того, Secure Sockets Layer (SSL) зазвичай використовується для електронної комерції.

Xостинг може також забезпечити інтерфейс або панелі керування для управління веб-сервера та установки скриптів, а також інші модулі та обслуговування додатків, таких як електронна пошта. Деякі хостинги спеціалізуються на певних програмах чи послугах (наприклад, електронна комерція), які зазвичай використовуються великими компаніями.

Базові послуги хостингу

До базових послуг хостинг провайдерів можна віднести:

· Обсяг дискового простору - кількість місця на жорсткому диску сервера. Зазвичай хостинг провайдери гнучко підходять до запитів свої клієнтів, тому що чим більше необхідно дискового простору для свого інтернет проекту, тим більше буде за дану послугу ціна. Для простих сайтів візиток, як правило, не потрібно багато дискового простору і тому плата за дану послугу не буде коштувати багато грошей

· Реєстрація домену - майже всі організації надають послуги хостингу надають можливість зареєструвати ім'я сайту, так зване доменне ім'я.

· трафік (Вхідний / вихідний) - деякі хостинг провайдери стягують додаткову плату за трафік. Трафік - це кількість завантаженого з сайту або на сайт інформації.

· Доступ по FTP - можливість завантажувати на хостинг і з хостингу файли за допомогою, так званого, FTP-клієнта. Більш докладно можна знайти інформацію в статті "Як завантажити сайт через FTP". Хоча можна в принципі обійтися і без цієї послуги, так як в панелі управління хостингу вбудований свій клієнт завантаження файлів. Однак через FTP-клієнта завантажувати файли на сервер набагато зручніше.

Додаткові послуги хостингу

Додаткові послуги хостингу дають можливість для створення більш потужних інтернет ресурсів з розширеними функціями. До таких додаткових послуг відноситься:

· Бази даних MySQL - для створення багатофункціональних сайтів, форумів, дощок оголошень і так далі потрібна наявність бази даних MySQL, яка зберігає всю інформацію в певних таблицях. Більш докладно про те, що це таке і як з такою базою даних працювати читайте статтю "Як створити базу даних MySQL в phpMyAdmin".

· Виділений IP-адреса - при високій відвідуваності ресурсу найкраще скористатися даною послугою для безперебійного доступу до сайту.

· Додатковий IP-адреса - також є можливість підключення додаткової лінії, отже це для підстраховки безперебійного функціонування сайту.

· Поштові скриньки POP3 - до всього іншого є можливість мати унікальний поштову скриньку під назву свого сайту, наприклад admin@wikijournal.ru

· Резервне копіювання - як правило, дана послуга надається безкоштовно і на щоденній основі. Це робиться для того, щоб в разі злому сайту або інших непередбачених ситуаціях можна було повернути стан або вміст сайту в початковий стан.

· Підтримка CGI: Perl, PHP, Python, ASP, Ruby, JSP, Java - дана підтримка також важлива для створення багатофункціональних сайтів, що працюють на даних мовах програмування.

1.2 Окремі послуги хостинг-провайдера

Послуги, які надає хостер або хостинг-провайдер, називають хостингом. Хостинг - це розміщення і зберігання інтернет-сторінок або сайту на сервері, що постійно підключеному до мережі і надають доступ до сайту через Інтернет всім користувачам. Якщо порівняти сайт з будинком, то хостинг - є фундаментом цього будинку, без якого будинок не можна побудувати і від надійності якого залежатиме надійність всієї будови. Хостинг може бути як платним, так і безкоштовним. Безкоштовний хостинг має безліч обмежень (обмежена дисковий простір, обмежений трафік, хостер може розміщувати свою рекламу на сайті користувача, обмеження доменного імені і т.д.). Більшість хостерів надає своїм клієнтам такі види основних послуг:

· віртуальний хостінг - на сервері виділяється обмежений обсяг дискового простору, свого роду «папка» для розміщення і зберігання сайта користувача, разом з сайтами інших користувачів, при цьому обчислювальні потужності сервера діляться пропорційно між усіма сайтами;

· віртуальний виділений сервер (або VPS) - для зберігання і розміщення сайту на фізичному сервері створюється віртуальний сервер, якому виділяється певні обчислювальні потужності, таким чином, частина обчислювальної потужності сервера відведена тільки для роботи одного сайту, що позитивно впливає на швидкість і швидкість роботи сайту;

· виділений сервер - користувач орендує фізичний сервер для розміщення свого сайту або декількох сайтів (тобто на сервері знаходяться тільки сайти користувача), сам здійснює адміністрування сервера і забезпечує йому технічну підтримку;

· адмініструється сервер - користувач орендує фізичний сервер але його налаштування і підтримку здійснює хостер;

· колокейшен - хостер розміщує у себе сервер належить користувачеві, і здійснює його технічне обслуговування

Види хостерів

· Хостери - можуть бути як великими організаціями з тисячами серверів і своїми дата-центрами, так і невеликими компаніями з десятком серверів і офісом де-небудь на околиці. Суть одна - це офіційно зареєстровані юридичні особи (ТОВ, ЗАТ), які мають ліцензії і які надають послуги хостингу на правовій основі. У них є офіс, куди можна приїхати, і де вам покажуть ліцензію на право надання послуг, є розрахунковий рахунок у банку або каса де вам видадуть чек за оплату послуг, у них є бухгалтерія, де можна отримати рахунок на оплату послуг за безготівковим розрахунком.

· Реселери - це свого роду агенти, які самі не надають послуг хостингу, а тільки перепродують їх, попередньо купивши у справжніх хостерів. Реселлерами можуть бути як офіційно оформлені юридичні особи, так і приватні особи, але суть їх не змінюється всі вони - посередники, які купили дешевше, а продають дорожче, надаючи швидше консультативні послуги клієнтам. Природно, що розбиратися з технічними питаннями, будуть компаніями постачальниками, що певною мірою уповільнить їх рішення. Такі організації, як правило, не мають ліцензії на надання послуг і тим більше не мають своїх серверів.

1.3 Реєстрація доменних імен

Коли нам потрібно отримати яку-небудь інформацію, всі ми звертаємося до послуг Інтернет.

Основною задачею Інтернет є забезпечення комунікації між користувачами з метою обміну інформацією. Інтернет споконвічно був задуманий як засіб для передачі інформації і його основою є система доменних імен, яка створена і керується міжнародною корпорацією ICANN (The Internet Corporation for Assigned Names and Numbers - Інтернет-корпорація з присвоєння доменних імен і номерів). Ключем до пошуку необхідної інформації в мережі Інтернет є доменне ім'я (домен).

Якщо Ви хочете, щоб Вас знаходили в мережі Інтернет, Ви повинні мати свій сайт і власне доменне ім'я.

Структура кожного доменного імені складається, щонайменше, з двох частин: доменного імені верхнього (першого) рівня - національного або міжнародного, і до сучасного імені другого рівня, що забезпечує ідентифікацію певного сайту. Також доменні імена можуть бути третього, четвертого і наступних рівнів.

Міжнародні доменні імена верхнього рівня - це імена типу «соm» - для комерційних організацій, «org» - для некомерційних структур, «edu» - для навчальних закладів.

Національні доменні імена верхнього рівня ідентифікують держави, в яких вони зареєстровані:.ua - для України;.us - для США;.de - для Німеччини та інші.

Національні доменні імена другого рівня складаються із зазначення країни та назви певного сайту, наприклад - imena.ua, inventa.ua, hostmaster.ua та інші.

Домен.ua був делегований Україні у 1992 році. З тих пір Україна володіє мережею доменів другого рівня *.ua, яка містить в даний час понад 560 тис. доменних імен. Реєстрацією доменів другого рівня займаються акредитовані організації ICANN. В Україні такою організацією є створене у 2001 році ТОВ «Хостмай-стер» (www.hostmaster.ua). Саме ця компанія є єдиним адміністратором домену верхнього рівня.ua. а також здійснює реєстрацію та адміністрування доменів другого рівня ****.ua.

При цьому необхідною умовою отримання домену другого рівня, згідно Правил домену.UA, є наявність у заявника зареєстрованої торговельної марки.

Як зареєструвати домен в Україні?

Якщо Ви бажаєте зареєструватися в сегменті.UA і отримати домен другого рівня, Вам потрібно спочатку отримати свідоцтво на торговельну марку в Україні щодо будь-яких товарів або послуг.

Щоб зареєструвати торговельну марку в Україні необхідно:

Розробити словесне позначення, яке буде реєструватися в якості торговельної марки.

Визначити перелік товарів і послуг, у відношенні яких буде використовуватися торговельна марка.

Надати реквізити заявника, на ім'я якого буде зареєстрована торговельна марка.

Після отримання необхідної інформації, зазначеної у пунктах 1-3, нами складається проект кошторису, у якому розглядаються різні підходи до реєстрації торговельної марки в Україні та можливі варіанти реєстрації доменного імені в сегменті.UA.

Залежно від узгодженої з Вами стратегії і тактики реєстрації доменного імені в сегменті.UA, нами виконується пошук по торговельним маркам, заявлених і зареєстрованих в Україні.

Далі нами готується і подається комплект матеріалів заявки на реєстрацію торговельної марки у Патентне відомство України.

Термін реєстрації торговельної марки в Україні складає 12-15 місяців від дати подання заявки у патентне відомство України. Ця процедура при необхідності може бути прискорена, для чого сплачуються відповідний державний збір (мито)

2. КОНСТРУКТИВНА ЧАСТИНА

2.1 Віртуальні машини

Віртуальна машина (ВМ, від англ. virtual machine):

§ програмна і / або апаратна система, що емулює апаратне забезпечення деякої платформи (target - цільова, або гостьова платформа) та виконуюча програми для target - платформи на host - платформі (host - хост- платформа, платформа - господар);

§ віртуалізація деякої платформи і створення на ній середовища, ізолюючого один від одного програми і навіть операційні системи(пісочниця);

§ також специфікація деякого обчислювального середовища (наприклад: « віртуальна машина мови програмування Сі »).

Раніше віртуальну машину визначали як "ефективну ізольовану копію реальної машини". Проте сучасні віртуальні машини можуть не мати прямого апаратного аналогу. Наприклад, в залежності від способу моделювання набору інструкцій віртуального центрального процесора, віртуальна машина може моделювати реальну або абстрактну обчислювальні машини. При моделюванні реальної обчислювальної машини набір інструкцій процесора віртуальної машини збігається з набором інструкцій обраного для моделювання центрального процесора.

Віртуальні машини поділяються на 2 головні категорії, в залежності від їх використання та відповідності до реальної апаратури:

· системні (апаратні) віртуальні машини, що забезпечують повноцінну емуляцію всієї апаратної платформи і відповідно підтримують виконання операційної системи.

· прикладні віртуальні машини, які розробленні для виконання лише застосунків (прикладних програм), наприклад, Віртуальна машина Java.

Віртуальна машина виконує деякий машинно- незалежний код (наприклад, байт -код, шитий код, p -код) або машинний код реального процесора. Крім процесора, ВМ може емулювати роботу як окремих компонентів апаратного забезпечення, так і цілого реального комп'ютера (включаючи BIOS, оперативну пам'ять, жорсткий диск та інші периферійні пристрої). В останньому випадку в ВМ, як і на реальний комп'ютер, можна встановлювати операційні системи (наприклад, Windows можна запускати у віртуальній машині під Linux або навпаки). На одному комп'ютері може функціонувати кілька віртуальних машин (це може використовуватися для імітації декількох серверів на одному реальному сервері з метою оптимізації використання ресурсів сервера).

Найбільш розповсюджені віртуальні машини: VirtualBox (Oracle), VMware Workstation, Virtual PC (microsoft).

Пісочниця(англ. Sandbox).

Ядро ОС дозволяє створювати багато ізольованих один від одного просторів користувачів. В цьому випадку крах програми в одному просторі ніяк не вплине на програми в інших просторах.

Sandbox (укр. Пісочниця) -- в комп'ютерній безпеці механізм для безпечного виконання програм. Пісочниці часто використовують для запуску не протестованого коду, неперевіреного коду з ненадійних джерел, а також для запуску та виявлення вірусів.

Пісочниця зазвичай являє собою жорстко контрольований набір ресурсів (місце на жорсткому диску, оперативній пам'яті) для виконання гостьової програми. Доступ до мережі, системних ресурсів операційної системи, пряме зчитування інформації з пристроїв введення зазвичай частково емулюються, або сильно обмежуються. Пісочниці є прикладом віртуалізації.

Підвищена безпека виконання коду в пісочниці передбачає захист системи від великих навантажень -- саме тому деякі види пісочниць використовують для запуску невідлагодженого або шкідливого коду.

2.2 Системні віртуальні машини

Системні віртуальні машини дозволяють розподіл апаратних ресурсів фізичної машини між різними копіями віртуальних машин, на кожній з яких може бути встановлена своя операційна система. Пласт програмного забезпечення, що виконує віртуалізацію, називається гіпервізором. Гіпервізори поділяються на 2 типи: ті, що можуть виконуватися на "голій" апаратурі (1-й тип, або рідні (англ. native)), та ті, що виконуються в певній операційній системі (2-й тип, або хостові).

Основні переваги системних ВМ:

· різні операційні системи можуть співіснувати на одному комп'ютері, і при цьому знаходитися в строгій ізоляції одна від одної

· ВМ можуть забезпечувати розширений набір машинних інструкцій, адже при моделюванні абстрактної обчислювальної машини набір інструкцій процесора віртуальної машини може бути довільним.

· широкі можливості контролю за програмами

· легкість модифікацій та відновлення

Основний недолік:

· віртуальна машина не така ефективна як реальна, тому що доступ до апаратури в ній відбувається опосередковано.

Різні ВМ, на кожній з яких може бути встановлена своя власна ОС (які також називається гостьовими ОС), часто використовуються для серверного об'єднання: різні сервіси (що повинні виконуватися на окремих машинах, щоб запобігти взаємовтручанню) запускаються в різних ВМ, проте на одній фізичній машині, що дозволяє економити апаратні ресурси.

Прикладні віртуальні машини.

Прикладні віртуальні машини виконують звичайні програми всередині ОС. Вони зазвичай створюються коли програма запускається та знищуються після її завершення. Їхня ціль - забезпечити платформно-незалежне програмне середовище, яке дозволяє абстрагуватися від конкретної апаратури та операційної системи, на якій виконується програма.

Прикладна ВМ забезпечує високорівневу абстракцію (наприклад, інтерпретатори високорівневих мов програмування - Lisp, Java, Python, Perl), в той час як системні ВМ зазвичай обмежуються низькорівневою абстракцією (машинним набором кодів). Сучасні прикладні ВМ, що реалізуються за допомогою інтерпретаторів, для підвищення швидкості виконання використовують компіляцію "на льоту" (англ. JIT - just-in-time).

Застосування віртуальних машин

Віртуальні машини можуть використовуватися для:

· захисту інформації та обмеження можливостей програм;

· дослідження продуктивності ПЗ або нової комп'ютерної архітектури;

· емуляції різних архітектур (наприклад, емулятор ігрової приставки);

· оптимізації використання ресурсів мейнфреймів та інших потужних комп'ютерів;

· шкідливого коду для управління інфікованої системою

· моделювання інформаційних систем з клієнт- серверної архітектурою на одній ЕОМ (емуляція комп'ютерної мережі за допомогою декількох віртуальних машин).

· спрощення управління кластерами - віртуальні машини можуть просто мігрувати з одного фізичної машини на іншу під час роботи.

· тестування і налагодження системного програмного забезпечення;

2.3 Переваги та недоліки використання ВМ

Переваги використання ВМ:

Основні переваги полягають у наступному:

· з'являється можливість інсталяції на одному комп'ютері декількох ОС без необхідності відповідного конфігурування фізичних жорстких дисків;

· здійснювати роботу з декількома ОС одночасно з динамічним перемиканням між ними без перезавантаження реальної системи;

· скорочується час зміни складу і конфігурації встановлених віртуальних ОС;

· здійснюється ізоляція реального обладнання від небажаного впливу програмного забезпечення, що працює в середовищі віртуальної ОС;

· з'являється можливість моделювання обчислювальної мережі на єдиному автономному комп'ютері.

Недоліки використання ВМ:

Забезпечення одноразової роботи декількох віртуальних машин потребують достатньої кількості апаратних потужностей; від використовуваного рішення, операційна система віртуальної машини може працювати повільніше, ніж на "чистому" аналогічному апаратному забезпеченні; різні платформи віртуалізації не підтримують віртуалізацію всього апаратного забезпечення та інтерфейсів.

2.4 Віртуальна машина VirtualBox (Oracle)

VirtualBox -- це програма віртуалізації для операційних систем, розроблена німецькою фірмою innotek, зараз вона належить Oracle Corporation. Вона встановлюється на існуючу операційну систему, яка називається хостовою, усередину цієї програми встановлюється друга операційна система, яку називають гостьовою операційною системою, і запускається як окреме віртуальне середовище.

Підтримується основними операційними системами Linux, FreeBSD, Mac OS X, OS/2 Warp, Microsoft Windows, які підтримують роботу гостьових операційних систем FreeBSD, Linux, OpenBSD, OS/2 Warp, Windows і Solaris.

Починаючи з 2007 року, за спостереженнями DesktopLinux.com, VirtualBox займає третє місце за популярністю серед програм які дозволяють запуск Windows програм на стільниці Linux.

Програма була створена компанією Innotek з використанням сирцевого коду Qemu. Перша публічно доступна версія VirtualBox з'явилась 15 січня 2007 року. В лютому 2008 року Innotek був викуплений компанією Sun Microsystems, модель поширення VirtualBox при цьому не змінилася. В січні 2010 року Sun Microsystems була поглинена Oracle Corporation, модель поширення залишилась попередньою.

Ключові можливості:

· Крос-платформовість

· Модульність

· Жива міграція

· Підтримка USB 2.0, коли пристрої хост-машини стають доступними для гостьових ОС (лише в пропрієтарній версії)

· Підтримка 64-бітних гостьових систем (починаючи з версії 2.0), навіть на 32-бітних хост-системах (починаючи з версії 2.1, для цього потрібна підтримка технології віртуалізації процесором)

· Підтримка SMP на стороні гостьової системи (починаючи з версії 3.0, для цього потрібна підтримка технології віртуалізації процесором)

· Вбудований RDP-сервер, а також підтримка клієнтських USB-пристроїв поверх протоколу RDP (лише в пропрієтарній версії)

· Експериментальна підтримка апаратного 3D-прискорення (OpenGL, DirectX 8/9 (з використанням коду wine) (лише в 32-бітних Windows XP і Vista)), для гостьових DOS / Windows 3.x / 95 / 98 / ME підтримка апаратного 3D-прискорення не передбачена

· Підтримка образів твердих дисків VMDK (VMware) і VHD (Microsoft Virtual PC), включаючи снапшоти (починаючи з версії 2.1)

· Підтримка iSCSI (лише в пропрієтарній версії)

· Підтримка віртуалізації аудіопристроїв (емуляція AC97 або SoundBlaster 16 на вибір)

· Підтримка різноманітних видів мережевої взаємодії (NAT, Host Networking via Bridged, Internal)

· Підтримка ланцюжка збережених станів віртуальної машини (snapshots), до яких можна повернутися з будь-якого стану гостьової системи

· Підтримка Shared Folders для простого обміну файлами між хостовою та гостьовою системами (для гостьових систем Windows 2000 і новіше, Linux та Solaris).

· Підтримка інтеграції робочих столів (seamless mode) хостової та гостьової ОС

· Є можливість вибору мови інтерфейсу (підтримується і україномовний інтерфейс).

Існує дві версії, які відрізняються за ліцензією та функціональністю:

Відкрита версія (OSE, англ. Open Source Edition) -- сирцеві коди доступні під ліцензією GNU GPL, відповідно немає обмежень в використанні. Функціональність аналогічна повній версії, за виключенням деяких особливостей, доступних для корпоративних клієнтів:

· RDP сервер -- дозволяє підключатися до віртуальної системи віддалено з допомогою будь-якого RDP сумісного клієнта;

· Підтримка USB -- дозволяє передавати віртуальній машині USB пристрої;

· USB поверх RDP -- дозволяє надати віддалений доступ до USB пристроїв.

Повна версія поширюється лише в бінарному вигляді під власницькою ліцензією (PUEL), безплатна -- лише для особистого використання.

Віртуальна машина Virtual PC

Virtual PC - програмний пакет віртуалізації для операційної системи Windows, а також програма емуляції для Mac OS.

Програма була створена компанією Connectix в 1997 році для операційної системи Mac OS на платформі PowerPC Macintosh. У 2001 році була випущена версія 4.0 для Windows. Connectix поставляла Virtual PC з різними гостьовими ОС, включаючи Linux і OS / 2. У лютому 2003 року права на продукти Virtual PC і Virtual Server були куплені Microsoft. У липні 2006 року Microsoft випустила Windows- версію пакету для безкоштовного використання. У серпні 2006 року компанією було заявлено, що версія для Mac OS не буде портована на нові Macintosh з процесорами Intel і, тим самим, розвиток цієї гілки продукту було припинено. Virtual PC не сумісна з Windows 8. У х64 версії Windows 8 замінена на Hyper -V.

Windows XP Mode. Коли на ринок виходила Windows 7, в Microsoft зрозуміли, що в бізнесі для популяризації нової системи і для сумісності старих додатків необхідна можливість запуску додатків прямо з віртуального середовища Windows XP, тому корпорація випустила спеціально адаптовану для Windows 7 версію і назвала її Windows Virtual PC. Цей компонент поширюється через Windows Update як оновлення. Для використання режиму потрібно Windows 7 в редакціях « Професійна », «Корпоративна » або « Максимальна ». Крім запуску самої віртуальної машини, можна також запускати окремі встановлені додатки. Але для роботи самої віртуальної машини потрібне віртуальне середовище з Windows XP і встановленими Integration Components. Це середовище, що отримала назву Windows XP Mode, як і сам Windows Virtual PC, вільна для завантаження, однак на віртуальну машину можна поставити також Windows 7 і Windows Vista, а компоненти інтеграції завжди можна встановити через меню «Сервис», вибравши відповідну команду.

Віртуальна машина Bochs

Bochs (вимовляється «бокс») - вільна програма для емуляції апаратного забезпечення IBM PC. Включає в себе емуляцію процесорів архітектури x86, пристроїв введення-виведення і можливість використовувати різні BIOS і відеоадаптери. Може емулювати 386, 486, Pentium, Pentium Pro, AMD64 і інші x86-сумісні процесори, підтримує MMX, SSE, SSE2, 3DNow!, SSE3, SSE4, x86-64, VMX, розширення системи команд AES. Написана на C + + і працює на GNU / Linux, Windows 9x, Windows NT, * BSD, Android, iOS, PSP та ін.

Спочатку Bochs розроблявся як комерційне (платне) ПЗ з опублікованими вихідним кодом (з додатковими умовами для використання в складі інших продуктів). 22 березня 2000 компанія Mandrakesoft (нині Mandriva) купила Bochs у розробника (Kevin Lawton) і опублікувала його під відкритою ліцензією GNU Lesser General Public License. Деякі розробки bochs використовуються в більш пізніх проектах, наприклад, Xen використовує BIOS, написаний для bochs.

Відрізняється ретельною емуляцією процесора, може бути запущена на будь-якій апаратній платформі, в тому числі на SPARC, PowerPC, MIPS. Bochs інтерпретує кожну команду віртуального процесора. При роботі на Pentium 2 з частотою 400 МГц bochs досягає продуктивності близько 1,5 млн операцій в секунду, тобто на виконання однієї команди віртуального процесора йде в середньому близько 260 тактів фізичного процесора.Часто застосовується для налагодження операційних систем та їх компонентів. Має вбудовані можливості по налагодженню. Існував варіант, який використовує plex86 для прискорення операцій з пам'яттю. У зв'язку з припиненням розробок, plex86 більше не оновлювався.

Цікаві факти:

· З використанням bochs був проведений запуск Windows 98 на стільниковому телефоні з ОС Windows Mobile і на смартфоні з ОС Android.

· Існує варіант Bochs для Android версій 2.2 і вище; на якому запускалася навіть Windows XP, але швидкість роботи залишала бажати кращого.

Віртуальна машина QEMU

QEMU - вільна програма з відкритим вихідним кодом для емуляції апаратного забезпечення різних платформ.

Включає в себе емуляцію процесорів Intel x86 і пристроїв введення-виведення. Може емулювати 80386, 80486, Pentium, Pentium Pro, AMD64 і інші x86 -сумісні процесори; PowerPC, ARM, MIPS, SPARC, SPARC64, m68k - лише частково.

Працює на Syllable, FreeBSD, FreeDOS, Linux, Windows 9x, Windows 2000, Mac OS X, QNX, Android та ін.

Автор програми - французький програміст Фабріс Беллар (фр. Fabrice Bellard), творець популярної бібліотеки libavcodec, яку використовують такі відомі програми, як FFmpeg, ffdshow, MPlayer, VideoLAN та ін.

В даний час йде розробка підтримки технологій апаратної віртуалізації (Intel VT і AMD SVM) на x86 - сумісних процесорах Intel і AMD в QEMU. Спочатку розробка велася в рамках проекту Linux KVM (Kernel - based Virtual Machine), в якому, крім власне KVM (підтримки технологій апаратної віртуалізації x86 - сумісних процесорів на рівні ядра Linux), розроблялися патчі для QEMU, що дозволяють QEMU використовувати функціональність KVM. Проте нещодавно розробники QEMU в співдружності з розробниками KVM прийняли рішення в найближчому майбутньому інтегрувати підтримку KVM в основну гілку QEMU (mainline)

Програмна емуляція значно уповільнює роботу віртуальної машини. Однак є два способи значно прискорити роботу, наблизивши її до швидкості основної системи - KQEMU і QVM86.

Відрізняється дуже швидкою емуляцією при використанні спеціального модуля, названого KQEMU. (Спочатку модуль KQEMU мав пропріє тарну ліцензію, в даний час ліцензований під GNU GPL). На даний момент стабільно працює тільки в Linux 2.4 - 2.6, є експериментальна підтримка Microsoft Windows і FreeBSD. Починаючи з версії 0.12.0, QEMU не підтримує KQEMU.

QVM86 має той же самий принцип роботи; він просто був заміною KQEMU в той час, коли вихідні коди KQEMU не були відкриті. Розробка QVM86 припинилася в 2007 році.

Віртуальна машина Parallels Workstation

Parallels Workstation - перший комерційний продукт, випущений компанією Parallels, розробником десктопних і серверних рішень у сфері віртуалізації.

Продукт пропонується для скачування у вигляді файлу інсталяції (21 MB для Microsoft Windows, 23 MB для Linux). Віртуальні машини створюються за допомогою набору майстрів, далі конфігурація віртуальної машини може бути модифікована через графічний конфігуратор.

Parallels Workstation виртуалізує повноцінний набір стандартного обладнання PC, що включає в себе:

· Процесор відповідає реальному

· Материнську плату на основі чіпсета Intel i815.

· До 1,5Гб оперативної пам'яті

· Відеокарти VGA і SVGA з підтримкою VESA 3.0

· Дисковод для дискет 1.44 Mb, з можливістю підключення реального пристрою або образу дискет.

· Два IDE контролера, з можливістю підключення віртуальних жорстких дисків від 20 Мб до 128 Гб кожен або CD / DVD- ROM (в режимі прямого доступу може безпосередньо використовуватися привід реального комп'ютера)

· До чотирьох послідовних портів, які можуть використовувати реальні порти, файли або пайпи (pipe)

· До трьох двонапрямлених паралельних портів, кожен з яких може бути призначений на реальний порт, принтер або файл

· До 5 віртуальних мережевих карт Ethernet сумісних з Realtek RTL8029 (AS). Підключення може бути: реальна мережу в режимі моста, реальна мережа через NAT, віртуальна мережа з хостової і гостьової машини

· Двопортовий контролер USB 1.1

· Восьмипортовий контролер USB 2.0

· AC97 сумісну звукову карту.

· 104 - кнопкову клавіатуру і PS / 2 миша.

Parallels Workstation має наступні розширення:

· Shared folders - доступ до папок хостового комп'ютера з гостьової ОС

· Coherence - режим «seamless desktop»

Parallels Workstation вміє запускати наступні гостьові ОС:

· Microsoft Windows 3.1, 3.11, 95, 98, Me, 2000, NT, 2003, XP, Vista, Win7.

· Linux дистрибутиви Red Hat, Fedora Core, SuSE, Mandriva і Debian

· FreeBSD

· SyllableSun

· Solaris для x86

· OS / 2 і eComStation

· MS-DOS

Parallels Workstation може працювати на наступних хост ОС: Microsoft Windows, Linux

Віртуальна машина Java (JVM)

Підхід, заснований на віртуалізації, характерний не тільки для розробки операційних систем, а й для реалізації сучасних платформ і мов програмування. Причина в тому, що реалізатори цих мов і платформ прагнуть зробити їх переносимими з однієї реальної апаратної платформи на іншу. Такий підхід прийнятий, як широко відомо, при реалізації Java, але автори Java аж ніяк не першими запропонували дану ідею. Програми на Java компілюються в платформно - незалежний байт - код (bytecode) - команди віртуальної Java- машини, побудовані на основі постфіксного запису операндів. Байт -код виповнюється віртуальною машиною Java (JVM).

JVM складається з:

· завантажувача класів (class loader), що виконує завантаження класів у віртуальну машину під час виконання програми; завантажувач класів може бути стандартним або може бути перевизначений користувачем;

· верификатора класів (class verifier), що виконує при завантаженні класу перевірку коректності його байт - коду, контроль типів та інші необхідні перевірки;

· інтерпретатора (runtime interpreter), що виконує інтерпретацію (емуляцію) команд байт - коду - абстрактної машини Java;

· Just -In- Time (JIT) - компілятора, що виконує при першому виклику кожного методу його компіляцію в об'єктний код цільової платформи (native - код), що дозволяє підвищити сумарну продуктивність виконання програм на Java.

Операційна система VM, заснована на концепції віртуалізації

Першою і досьогодні однією з найкращих операційних систем, які підтримували концепцію віртуальної машини є операційна система VM (в межах колишнього СРСР також відома як СВМ - Система Віртуальних Машин) фірми IBM.

Історія. VM була розроблена на основі більш ранньої ОС IBM CP/CMS, що мала статус дослідницького проекту і розроблялася з 1967 року на базі модифікованої IBM System/360 Model 40, потім IBM System/360 Model 67 і IBM System/370, тобто систем, в яких вперше в сімействі була реалізована віртуальна пам'ять.

Перша версія власне VM, VM/370, була випущена в 1972 році для сімейства комп'ютерів IBM System/370. Після цього був випущений ряд версій VM для наступних сімейств мейнфреймів IBM: VM/ESA, VM/SEPP, VM/BSEPP, VM/SP, VM/HPO, VMXA/SF, VMXA/SP і система, що випускається в поточний момент z/VM для 64-розрядного сімейства IBM System z.

На поточний момент існує проект Hercules, що дозволяеє завантажити систему VM на персональних комп'ютерах сімейства x86. Емулятор був створений з використанням коду VM/370, переданого компанією IBM у вільне використання.

Архітектура. Система складалась з Монітора віртуальних машин (CP) та зберігаючих систем.

Монітор віртуальних машин надавав можливості завантажувати на модельованих віртуальних машинах інші операційні системи (в тому числі і такі, які завантажувались на фізичну машину) та забезпечував віртуалізацію та моделювання ресурсів. На віртуальну машину також могла бути завантажена і сама система VM, наприклад, з метою генерації.

Зберігаючі системи завантажувались з адаптованого до VM образа і не могли бути завантажені окремо від VM.

VM не була операційною системою в повному розумінні цього терміна (вона не дозволяла виконувати в системі програми інші, як операційні системи), а лише забезпечувала середовище (віртуальні машини) для запуску інших (в тому числі так званих зберігаючих) операційних систем. Таким чином основа VM -- монітор CP -- був гіпервізором (комп'ютерна програма або обладнання, що забезпечує одночасне, паралельне виконання декількох операційних систем на одному і тому ж комп'ютері).

До складу системи VM також входила система діалогової обробки CMS. Саме тому в деяких джерелах операційну систему VM називають VM/CMS, що є не зовсім коректним, оскільки продукту з такою назвою ніколи не існувало. Таке найменування, проте, акцентує увагу на широкому використанні операційної системи віртуальної машини CMS під управлінням VM.

В клоні VM -- ОС СВМ -- систему CMS також іменували як PTS або ПДО (Підсистема Діалогової Обробки).

Зберігаємі ОС. CMS (Conversational Monitor System, раніше Cambridge Monitor System), також PTS (Programming and Testing System) -- так звана "зберігаюча" операційна система VM. CMS надавала користувачеві діалоговий інтерфейс для роботи з файлами, розробки програм. Архітектура CMS була подібною до ранніх версій ОС для ПЕОМ: розподіл пам'яті, іменування дискових пристроїв (A, B, Y) тощо. Робота користувача CMS нагадувала роботу на персональному комп'ютері. Це був серйозний крок вперед в порівнянні з більш ранніми операційними системами, діалогові можливості яких були дуже обмежені.

Операційна система ОС ЄС

ОС ЄС (операційна система єдиної системи електронних обчислювальних машин) -- сімейство найбільш поширених операційних систем для ЄС ЕОМ. Спочатку являла собою доопрацьований в СРСР варіант OS/360 і OS/370, надалі розроблялись в СРСР. Забезпечувала пакетну обробку завдань. Управління завданнями виконувалось командами мови Job Control Language (JCL).

До версії 6 застосовувалися такі режими роботи, які задавалися для ОС ЄС при генерації системи:

· ОС ЄС PCP -- однозадачна система, цей режим існував тільки в самих ранніх версіях ОС ЄС.

· OC EC MFT -- багатозадачна система з фіксованим числом задач (Multiple Fixed Tasks). Фізична оперативна пам'ять при генерації (установці) системи ділилася на фрагменти фіксованого розміру, в кожному з яких в режимі поділу могло виконуватися одне завдання. Задачі, що вимагали більше оперативної пам'яті, ніж розмір самої великої ділянки, могли виконуватися тільки в монопольному режимі.

· OC EC MVT -- багатозадачна система із змінним числом завдань (Multiple Variable Tasks). Для кожного завдання в момент запуску динамічно виділявся безперервний фрагмент фізичної оперативної пам'яті необхідного (визначався з опису завдання на JCL) розміру. Якщо не було вільної ділянки потрібного розміру, завдання чекало звільнення пам'яті в черзі, в цей час могли виконуватися завдання, менш вимогливі до пам'яті.

· OC EC SVS -- багатозадачна система з віртуальною пам'яттю (Single Virtual Storage). Розміщувала завдання в єдиному віртуальному адресному просторі розміром до 16 Мбайт (розмір фізичної оперативної пам'яті зазвичай не перевищував 1-2 МБайт). Це забезпечувало запуск завдань незалежно від наявності безперервного вільного франмента фізичної оперативної пам'яті. Також система дозволяла запускати завдання, що вимагають більше оперативної пам'яті, ніж обсяг фізичної.

Інтерактивні можливості реалізовувалися додатковим програмним забезпеченням -- діалоговими моніторами, що не входили в комплект поставки ОС, такими як Jessy, Jec, Primus тощо. Поширені в СРСР діалогові підсистеми, як правило, не мали зарубіжних аналогів, а стандартний для OS/370 інтерфейс TSO (Time Sharing Option), навпаки, практично не застосовувався.

ОС версії 7 (ОС 7.1 та BPS) були призначені для запуску в системі віртуальних машин VM, завантажувались на віртуальній машині і не могли бути завантажені на реальній ЕОМ.

3. ПРОГРАМНА ЧАСТИНА

3.1 Віртуальна машина JAVA

Основним завданням розробників Java було створення переносимих додатків. JVM грає центральну роль в переносимості-вона забезпечує належний рівень абстракції між скомпільованою програмою і базовою апаратною платформою і операційною системою. Незважаючи на цей додатковий "шар", швидкість роботи додатків надзвичайно висока, тому що байт-код, який виконує JVM, і вона сама відмінно оптимізовані.

Структура class-файла

Напишемо найпростіше додаток і скомпілюємо його. Компілятор дбайливо створить файл з розширенням class і помістити туди всю інформацію про наш міні-додатків для JVM. Що ми побачимо всередині? Файл поділений на десять секцій, послідовність яких строго задана і визначає всю структуру class-файлу.

Файл починається зі стартового (магічного) числа: 0xCAFEBABE. Дане число присутнє в кожному класі і є обов'язковим прапором для JVM: з його допомогою система розуміє, що перед нею class-файл.

інформаційна система хостинг віртуальний

Тип константы

Значение тега

CONSTANT_Class

7

CONSTANT_Fieldref

9

CONSTANT_Methodref

10

CONSTANT_InterfaceMethodref

11

CONSTANT_String

8

CONSTANT_Integer

3

CONSTANT_Float

4

CONSTANT_Long

5

CONSTANT_Double

6

CONSTANT_NameAndType

12

CONSTANT_Utf8

1

CONSTANT_MethodHandle

15

CONSTANT_MethodType

16

CONSTANT_InvokeDynamic

1

Наприклад, якщо тег вказує, що константа є рядком, JVM отримує значення тега 1 і обробляє наступне за тегом число як довжину масиву байт, які необхідно вважати, щоб отримати потрібну нам рядок повністю.

Прочитавши блок з константами, JVM переходить до наступних двох байтах -- прапорів доступу, які визначають, описує цей файл клас або інтерфейс, загальнодоступний або абстрактний, є клас фінальним.

Імена класу і його батьківського класу зберігаються в масиві констант, на які вказують наступні 4 байта у файлі.

Трохи інакше йдуть справи з інтерфейсами. Так як клас може успадковуватися від безлічі інтерфейсів одночасно, то зберігати необхідно масив посилань на пул констант. Тобто за визначенням класу і його батьківського класу йде число, що характеризує розмір масиву інтерфейсів, і сам масив. Всі можливі значення кодів представлені нижче:

ACC_PUBLIC

0x0001

Оголошено публічним

ACC_FINAL

0x0010

Оголошено фінальним

ACC_SUPER

0x0020

Спеціальний прапор, введений у версії Java 1.1

ACC_INTERFACE

0x0200

Оголошений інтерфейсом

ACC_ABSTRACT

0x0400

Оголошений абстрактним

ACC_SYNTHETIC

0x1000

Зарезервоване визначення

ACC_ANNOTATION

0x2000

Оголошений анотацією

ACC_ENUM

0x4000

Оголошений перерахуваннямм

Подібну структуру має і наступний блок -- Fields.

Цей блок починається з двобайтового параметра кількості полів в цьому класі або інтерфейсі. За ним йде масив структур змінної довжини. Кожна структура містить інформацію про одне поле: ім'я поля, тип, значення, якщо це, наприклад, фінальна мінлива. У списку відображаються тільки ті поля, які були оголошені класом або інтерфейсом, визначеним у файлі. Поля від батьківських класів і імплементованих інтерфейсів тут не присутні, вони задаються в своїх class-файлах.

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

Ситуація абсолютно аналогічна описаним вище полям. У масиві змінної довжини містяться структури, в які входить повний опис сигнатури методу: модифікатори доступу, ім'я методу і його атрибути, які також представляють із себе структуру, так як їх може бути безліч і кожен з них може належати різним типам.

В останньому блоці йде додаткова мета-інформація, наприклад ім'я файлу, який був скомпільований. Вона може бути присутньою, а може і ні. У разі якихось проблем JVM просто ігнорує цей блок.

Ми розглянули структуру файлів і готові перейти до наступної частини -- завантаженні class-файлу в JVM і подальшого виконання байт-коду з цього класу. Як закріплення отриманих знань з структурі class-файлу можете скористатися вбудованим декомпилятором Java і подивитися результат його виконання з ключами -c -verbose (javap -c -verbose TestJava.class).

Завантаження КЛАСІВ

Тепер, розібравшись із загальною структурою файлу, подивимося, як JVM його обробляє.

Щоб потрапити в JVM, клас повинен бути завантажений. Для цього існують спеціальні класи-завантажувачі:

· Bootstrap -- базовий завантажувач, завантажує платформні класи. Цей завантажувач є батьком всіх інших класів і частиною платформи.

· Extension ClassLoader -- завантажувач розширень, нащадок Bootstrap-завантажувача. Завантажує класи розширень, які за замовчуванням знаходяться в каталозі jre/lib/ext.

· AppClassLoader -- системний завантажувач класів з classpath, який є безпосереднім нащадком Extension ClassLoader. Він завантажує класи з каталогів і jar-файлів, зазначених змінної середовища CLASSPATH, системним властивістю java.class.path або параметром командного рядка -classpath.

Головний клас програми завжди завантажується системним завантажувачем, інші ж класи можуть бути завантажені різними призначеними для користувача завантажувачами. Варто згадати, що ім'я завантажувача створює унікальний простір імен, тобто в програмі може існувати кілька класів з одним і тим же повним ім'ям, якщо вони оброблялися різними завантажувачами.

Тому кожен завантажувач делегує свої повноваження батьків, тобто перед пошуком класу для завантаження він спробує дізнатися, чи не був завантажений потрібний клас раніше.

Після завантаження класу починається етап лінковки, який ділиться на три частини.

· Верифікація байт-коду. Це статичний аналіз коду, виконується один раз для класу. Система перевіряє, чи немає помилок у байт-коді. Наприклад, перевіряє коректність інструкцій, переповнення стека і сумісність типів змінних.

· Виділення пам'яті під статичні поля і їх ініціалізація.

· Дозвіл символьних посилань-JVM підставляє посилання на інші класи, методи і поля. У більшості випадків це відбувається ліниво, тобто при першому зверненні до класу.

Клас ініціалізується, і JVM може почати виконання байт-коду методів.

JVM отримує один потік байтових кодів для кожного методу в класі. Байт-код методу виконується, коли цей метод викликається в ході роботи програми. Потік байт-коду методу -- це послідовність інструкцій для віртуальної машини Java. Кожна інструкція складається з однобайтового коду операції, за яким може слідувати кілька операндів. Код операції вказує дію, яку потрібно зробити. Всього на даний момент в Java більше 200 операцій. Всі коди операцій займають тільки 1 байт, так як вони були розроблені компактними, тому їх максимальне число не може перевищити 256 штук.

В основі роботи JVM знаходиться стек -- основні інструкції працюють з ним.

Розглянемо приклад множення двох чисел. Нижче представлений байт-код методу:

0: iconst_1 // взять число 1, положить в стек

1: istore_1 // сохранить это число в переменную 1 стека метода

2: iconst_5 // взять число 5, положить в стек

3: istore_2 // сохранить его в переменную 2 стека метода

4: iload_1 // положить в стек переменную 1

5: iload_2 // положить в стек переменную 2

6: imul // достать из стека два числа, умножить их и положить в стек

7: istore_3 // взять из стека число и сохранить его в переменную 3

...

Подобные документы

  • Сутність корпоративних інформаційних систем (комп'ютерних програм), побудованих на основі концепції планування матеріальних ресурсів (MRP), виробничих ресурсів (MRPII), ресурсів підприємства (ERP), концепції, орієнтованої на кінцевого споживача (CSRP).

    контрольная работа [230,6 K], добавлен 27.07.2009

  • Настройка апаратних ресурсів віртуальних машин. Віртуалізація обчислювальних ресурсів. Емульовані апаратні засоби. Програмований інтерфейс Microsoft Virtual Server. Способи захисту критичних даних на основній ОС від можливих впливів віртуальної машини.

    реферат [550,8 K], добавлен 02.06.2010

  • Аварійне відновлення операційної системи Windows XP. Способи резервного копіювання та відновлення даних. Їх характеристика та рекомендації по використанню. Реалізація планування в Linux. Умови виклику процедури планування. Встановлення віртуальної машини.

    контрольная работа [3,6 M], добавлен 28.12.2016

  • Ознайомлення з архітектурою Intel Core i (Nehalem) та її особливостями. Огляд технічних характеристик процесорів сімейства Nehalem. Вивчення організації віртуальної пам’яті у вказаних процесорах. Дослідження переваг використання віртуальної пам'яті.

    курсовая работа [3,6 M], добавлен 15.09.2014

  • Механічні пристрої вимірювання. Рішення на базі лазерних трекерів. Фізичні основи оптичних систем контролю. Технологія DirectShow та її призначення. Розробка схеми інформаційних потоків та функціональної схеми роботи системи дистанційного контролю.

    дипломная работа [2,7 M], добавлен 22.10.2012

  • Особливості зображення плакатів у MSVisio. Будування блок-схем алгоритмів згідно варіантів. Віртуальна інфраструктура сервера. Структура центра управління сіттю AltegroSky. Взаємозв’язок операційної системи, віртуальної машини та користувача комп’ютера.

    задача [3,8 M], добавлен 23.06.2010

  • Використання операційної системи для ефективного використання комп'ютерних ресурсів та для створення умов для ефективної роботи користувача. Історія створення середовища Windows. Коротка характеристика різних конфігурацій операційної системи Windows.

    реферат [25,9 K], добавлен 07.01.2010

  • Інформаційна система НБУ грунтується на використанні інформаційних технологій. Основні функції інформаційної системи реалізуються в процесі роботи на автоматизованому робочому місці (АРМ) спеціаліста. Моделі інформаційних систем НБУ та захист інформації.

    контрольная работа [23,2 K], добавлен 13.08.2008

  • Архітектура управління доступом до інформаційних ресурсів у сучасній розподіленій ІТ-інфраструктурі. Базові механізми захисту та управління, які використовуються при розмежуванні доступу в мережі. Визначення та використання менеджменту доступу.

    статья [191,6 K], добавлен 31.08.2017

  • Особливості створення і призначення сучасних економічних інформаційних систем. Характеристика корпоративних інформаційних систем: системи R/3, системи управління бізнесом і фінансами SCALA 5та системи управління ресурсами підприємства ORACLE APPLICATION.

    курсовая работа [42,1 K], добавлен 19.05.2010

  • Переваги використання відкритої архітектури програмного забезпечення ВВК. Концепція побудови лабораторного практикуму. Структура та взаємодія програмних та апаратних засобів. Структурна схема розподілу ресурсів мікроконтролера між приладами.

    реферат [1,9 M], добавлен 06.07.2009

  • Розробка елементів інформаційної системи для контролю експлуатації автотранспорту. Розробка програмного забезпечення в середовищі програмування Delphi з використанням пакету компонентів DevelopmentExpress та сервера баз даних під керуванням FireBird 2.1.

    дипломная работа [4,3 M], добавлен 24.10.2012

  • Обґрунтування розгортання "ActiveDirectory" в компанії "ANTLERS&HOOFS" на поточний момент та з урахуванням входження в транснаціональний холдинг. Вибір концепції лісу для компанії. Порядок призначення доменних імен. Розробка системи зберігання даних.

    курсовая работа [2,5 M], добавлен 08.01.2016

  • Інформаційні системи: характеристика, види і властивості. Інформаційно-правова система: поняття та основні елементи. Інформаційні системи цивільної оборони: призначення, вимоги, технічні засоби. Вимоги до збереження інформації при надзвичайних ситуаціях.

    контрольная работа [54,5 K], добавлен 29.12.2010

  • Розгляд поняття електронного освітнього ресурсу. Дослідження особливостей написання макросів засобами Visual Basic for Аpplications для використання у розробці розкладу студентів. Створення програми, яка демонструє використання офісного програмування.

    курсовая работа [687,2 K], добавлен 18.03.2015

  • Метою курсової роботи є дослідження найбільш поширених ресурсів мережі, які використовуються в освітній діяльності. Завдання курсової роботи передбачають: вивчення та освітлення теоретичних основ інформаційних ресурсів, видів ресурсів мережі Інтернет.

    курсовая работа [78,9 K], добавлен 27.12.2008

  • Використання Інтернет-ресурсів та форми роботи з комп’ютерними навчальними програмами. Підвищення мотивації вивчення англійської мови шляхом використання нових інформаційних технологій у школі. Сучасні підходи до використання інформаційних технологій.

    реферат [29,0 K], добавлен 09.12.2010

  • Склад і зміст робіт на стадії впровадження інформаційних систем. Технологія проектування систем за CASE-методом. Порівняльні характеристики інформаційних систем в менеджменті та СППР. Створення бази моделей. Визначення інформаційних систем управління.

    реферат [44,5 K], добавлен 09.03.2009

  • Поняття й головні способи персоніфікації користувача. Основи біометричної ідентифікації. Технологія зняття відбитків пальців, типи капілярних візерунків. Дослідження існуючих засобів контролю доступу на основі біометричних даних, їх недоліки та переваги.

    курсовая работа [4,7 M], добавлен 30.01.2012

  • Призначення та основні функції, типи та конструкція операційної системи. Історія розробки та вдосконалення основних операційних систем найбільшими виробниками (Unix, Linux, Apple). Порівняльні характеристики операційних систем. Покоління Windows та NT.

    курсовая работа [1,3 M], добавлен 28.02.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.