Емуляція

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

Походить від Emulation(лат. Aemulatio, aemulor, "змагатися з, суперник").

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

Одне з популярних застосувань емуляції - виконання на персональному комп'ютері ігор, написаних для гральних автоматів або ігрових приставок. Теоретично, згідно з тезисом Черча-Тюринга, будь-яке операційне середовище може бути емульоване в будь-якому іншому середовищі. На практиці, однак, зустрічається ряд труднощів; зокрема, точна поведінка емульованої системи часто не документована і має бути досліджена і визначена за допомогою зворотної розробки. Достатньо повна емуляція деякої апаратної платформи вимагає граничної точності, до рівня окремих тактових циклів, недокументованих особливостей і навіть помилок реалізації. Це особливо важливо для таких моделей класичних домашніх машин, як Commodore 64, програмне забезпечення яких значною мірою залежить від програмістських рішень. Вибір конкретного рішення відбувається з метою оптимізації (за розміром або швидкістю виконання програми), застосовуваної, наприклад програмістами ігор. Такі програми досить часто бувають засновані на недокументовані можливості процесора або операційної системи. На противагу цьому, на деяких інших платформах досить мало використовувався прямий доступ до апаратного забезпечення. У цьому випадку виявляється достатнім забезпечити певний рівень сумісності, що забезпечує трансляцію системних викликів емуліруемой системи в виклики працюючої системи.

 Походження та історія виникнення поняття 

Останнім часом вживання цього терміна стало загальновживаними в контексті програмного забезпечення. До 1980х років слово «емуляція» належало виключно до апаратної реалізації із застосуванням микрокода, тоді як для програмної емуляції використовувався термін «симуляція». [18] Наприклад, комп'ютер, спеціально розроблений для виконання програм, написаний для іншої архітектури, був емулятором. З іншого боку симулятором могла б називатися програма для ПК, за допомогою якої можна було б симулювати старі ігри для Atari. Хоч пуристи продовжують вказувати на це термінологічне розходження, в даний час емуляцією зазвичай прийнято називати повну імітацію машини, що виконує двійковий код, тоді як симуляція в основному відноситься до комп'ютерного моделювання, що працює над абстрактною моделлю. Комп'ютерне моделювання використовується практично в будь наукової та інженерної діяльності, не виключаючи також інформатику, яка знаходить багато застосування для роботи з абстрактною моделлю, наприклад, моделювання мереж зв'язку.

 Список використаної літератури

1.«Інформатика, управління та обчислювальна техніка», №49. – 2008. – С. 123-127. 2. Операційні системи: розробка та реалізація, Таненбаум Е. С., Вудхалл А. С., 576 стр., 2005.