Многопроцессорность: различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Строка 52:
Обработка разделены на несколько потоков, каждый с собственным аппаратным состоянием процессора, в рамках единственного определённого программным обеспечением процесса или в пределах множественных процессов. Поскольку система имеет несколько потоков, ожидающих выполнения (системные или пользовательские потоки), эта архитектура эффективно использует аппаратные ресурсы.
 
В MIMD можетмогут вызватьвозникнуть проблемы взаимной блокировки и состязания за обладание ресурсами, так как потоки, пытаясь получить доступ к ресурсам, могут столкнуться непредсказуемым способом. MIMD требует специального кодирования в операционной системе компьютера, но не требует изменений в прикладних программах, кроме случаев когда программы сами используют множественные потоки (MIMD прозрачен для однопоточных программ под управлением большинства операционных систем, если программы сами не отказываются от управления со стороны ОС). И системное и пользовательское программное обеспечение, возможно, должны использовать программные конструкции, такие как [[Семафор (информатика)|семафоры]], чтобы препятствовать тому, чтобы один поток вмешался в другой, в случае если если они содержат ссылку на одни и те же данные. Такое <!-- вентильное --> действие увеличивает сложность кода, снижает производительность и значительно увеличивают количество необходимого тестирования, хотя обычно не настолько чтобы свести на нет преимущества многопроцессорной обработки.
 
Это вентильное действие или блокировка сложности кода увеличений процесса, понижают производительность, и очень увеличивают количество необходимого тестирования, хотя не обычно достаточно отрицать преимущества многопроцессорной обработки. Такое <!-- вентильное --> действие увеличивает сложность кода, снижает производительность и значительно увеличивают количество необходимого тестирования, хотя этого не обычно достаточно чтобы свести на нет преимущества многопроцессорной обработки.
 
Подобные конфликты могут возникнуть на аппаратном уровне между процессорами, и должен обычно решаться аппаратными средствами, или с комбинацией программного обеспечения и оборудования.