Многоядерные процессоры и проблемы ими порождаемые


         

и многопроцессорных машин операционная система


Основной "удар" различий одно- и многопроцессорных машин операционная система и BIOS берут на себя (примечание: здесь и далее по тексту под термином "многопроцессорные машины" мы будем понимать как истинно многопроцессорные системы, так и компьютеры, построенные на базе многоядерных процессоров или процессоров с Hyper-Threading). Прикладное приложение или драйвер устройства, спроектированный для однопроцессорной системы, не требует _никакой_ адоптации для переноса на многопроцессорную систему, если, конечно, он спроектирован правильно. Многие типы ошибок (и, в особенности, ошибки синхронизации) могут годами не проявляться в однопроцессорных конфигурациях, но заваливают многопроцессорную машину каждые десять минут, а то и чаще.
Исправление ошибок требует переделки исходных текстов (иногда очень значительной), но… что делать, если все, что у нас есть — это двоичный файл? Хорошо, если дефекты исправлены в новой версии (которая, между прочим, денег стоит), а если нет?
Эта статья адресована как самим разработчикам, так и продвинутым пользователям, умеющих держать hiew в руках и не шарахающихся в сторону от дизассемблера. Мы постараемся рассмотреть как можно больше способов решения проблем, а вопросы правомерности модификации двоичного кода пускай решают юристы и… моралисты.

Содержание  Назад  Вперед