Эмуляция: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м удаление {{stub}} из статей более 1000 слов согласно ВП:Ф-В#Стабы
Строка 124:
Чтобы обойти эти проблемы применяют разнообразные приемы, включая известную «[[JIT-компиляция|компиляцию на лету]]». Компилятор ожидает, пока поток управления процессором не перейдет в область, содержащую нетранслированный код. Только тогда («на лету») происходит трансляция блока кода в код, который может быть выполнен. Обработанный код помещается в ''[[кэш]] кода'', при этом оригинальный код не подвергается изменению. В таком случае даже блоки данных подвергнутся бессмысленной трансляции компилятором, единственным эффектом чего будет увеличение времени работы транслятора.
 
В некоторых случаях, например при запуске старых игр, высокая скорость эмуляции может быть нежелательной, так как игригры создавались без оглядки на производительность компьютеров будущего. В игре, разработанной для ПК с CPU 30 MHz, игроку может отводиться 300 игровых секунд на игровой уровень, в случае запуска той же игры на ПК с CPU 300 MHz игроку эти 300 игровых секунд будут соответствовать 30 реальным секундам. Другие программы, например некоторые программ для DOS, вообще не смогут запуститься на быстром компьютере. Практически, если эмулируется система, являвшаяся "черным ящиком, изменения в ядре которого не ожидались, программы могут зависеть от некоторых специфических параметров оборудования (например, частоты CPU). Таким образом для правильной эмуляции подобных приложений требуется очень точное управление скоростью эмуляции.
 
=== Ввод и вывод ===