OSDev http://osdev.su/ |
|
Ошибки эмуляторов PC http://osdev.su/viewtopic.php?f=7&t=784 |
Страница 1 из 1 |
Автор: | Himik [ 16 авг 2013, 00:07 ] |
Заголовок сообщения: | Ошибки эмуляторов PC |
После переделки менеджера памяти в своей ОС, у меня неожиданно всплыла ошибка с контроллером прерываний Local APIC + IO/APIC (видимо время задержек по памяти изменилось, что вызвало изменение реакции на прерывания). Суть проблемы в том, что в эмуляторе команда EOI разблокирует сразу все прерывания находящиеся в обработке, а должна разблокировать только последнее поступившее в обработку. Так, если в процессе обработки прерывания поступило и обработалось другое прерывание, то в текущий обработчик поступит вложенное прерывание до выдачи EOI. В моём конкретном случае, когда между прерываниями клавиатуры вклиниваются прерывания таймера, то драйвер клавиатуры зависает из-за нарушения порядка поступления прерываний. Ошибка проявляется в Bochs 2.6.2 и VMware Workstation 9.0.2. Естественно, ошибка не проявляется на реальном PC. Думаю, решение будет таким - вложенные обработчики будут завершаться без EOI. При этом количество вложенных обработчиков будет подсчитано, и выданы команды EOI за каждого из них после завершения всех обработчиков. PS. Предлагаю в этой теме собирать все найденные ошибки эмуляторов. |
Автор: | phantom-84 [ 16 авг 2013, 06:05 ] |
Заголовок сообщения: | Re: Ошибки эмуляторов PC |
Их достаточно много. Шаг влево-вправо от того, что делают популярные оси и ты уже сидишь и думаешь откуда взялся глюк, ведь все было сделано в точном соответствии со спеками и на реальном железе никаких проблем не наблюдается. |
Автор: | Himik [ 16 авг 2013, 11:35 ] |
Заголовок сообщения: | Re: Ошибки эмуляторов PC |
Не знаю, у меня это первая найденная ошибка. Вот и хотелось бы узнать больше, на всякий случай |
Автор: | Bargest [ 16 авг 2013, 11:40 ] |
Заголовок сообщения: | Re: Ошибки эмуляторов PC |
Была уже тема с багами эмуляторов. |
Автор: | Himik [ 16 авг 2013, 11:51 ] |
Заголовок сообщения: | Re: Ошибки эмуляторов PC |
Ссылки на сообщения тоже хорошо. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |