[an error occurred while processing this directive] [an error occurred while processing this directive]
Те алгоритмы предполагают, что процессор один.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено kons 17 января 2002 г. 14:33
В ответ на: Ответ: отправлено Sdl 17 января 2002 г. 13:59

И соответственно, можно блокировать доступ к флагу на время операции чтение-модификация-запись (запретить прерывания или делать это одной командой, если процессор позволяет). В принципе, блокировать доступ к общему ОЗУ тоже можно, но это - усложнение аппаратуры.
Если же блокировки доступа нет, то основными являются два принципа:
1.При любом текущем значении флага должно быть известно, какой (единственный!) из процессоров имеет право его изменить. Остальные при данном значении могут его только читать.
2.Длина флага должна быть меньше или равна ширине шины данных, т.е. запись флага должна производиться за один цикл обращения к памяти (пример - если шина 8-битная, то 16-битный счетчик использовать нельзя, даже если проц типа 8088).

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru