..


Рекламные ссылки

Параллельное программирование на С + +

Статья написана Стефано Cancedda
Страница 1 из 6

Последовательность программирования предлагает гарантировать, что инструкции всегда в определенном порядке, без каких-либо изменений. Результирующее поведение детерминировано: вставка же входы, выход получается тот же результат.
Для каждой программы работают под управлением операционной системы создает процесс, который дает защищенное пространство памяти. Это обеспечивает возможность того, что независимые процессы работают одновременно без ошибок.

Различные (и более продвинутый) является параллельного программирования. До осады должна быть введена и как она работает, на мой взгляд, определенный тип объекта называется поток ядра.

Как темы объекты ядра управляются операционной системой, и есть два основных фактора:

  • Каждый поток имеет закрытую структуру данных, которая хранит свой ​​собственный стек, сведения об исключении, следующая инструкция для выполнения;
  • Каждый поток акции со всем процессом общей области памяти.
Использование потоков имеет ряд преимуществ с точки зрения исполнения. В частности, мы в полной мере использовать производительность многоядерных процессоров, которые в настоящее время доминирующей технологией на рынке персональных компьютеров. Трудно себе представить, что определенную сложность современных приложений, оформленные в последовательном порядке, таким образом, могут воспользоваться время, только одна из основных, что машина обеспечивает.

Как еще одно преимущество, это можно рассматривать как два различных процессов, запущенных и тот же код, возможно, с различными параметрами, менее эффективны, чем два потока, которые могут напрямую использовать общую память. В системе, которая не поддерживает темы, если вы хотите запустить несколько раз той же программе, необходимо создать больше рабочих мест, основанных на той же программы. Этот метод работает, но расточительно ресурсов и работает медленнее.

В-третьих, нити имеют то преимущество, если они вызываются ввода / вывода блокаторы: вместо того чтобы ждать событие вызвано пользователей остановку выполнения алгоритма, вы можете начать новый поток и избежать ненужных простоев , что ухудшает общую производительность.

В отличие от параллельного программирования нуждается в поддержке конструкции синхронизации, которые являются основополагающими, чтобы избежать случайного доступа к общей памяти привести к ошибкам в результатах поиска. Также предоставляет программисту ряд ошибок часто плохо питаются из-за непредсказуемого поведения детерминированных программ.

Кроме того, конструкции синхронизации имеют стоимость, как с точки зрения машинного времени, необходимых для выполнения своего кода в частности потери качества, вызванные ожиданий, порожденных этими конструкциями для того, чтобы обеспечить справедливость в проведении конкурента.

Основными объектами, которые позволяют руководству конкурса ожидаются ниже и подробно описаны в следующих пунктах:

  • Летучие элементы
  • Interlocked функций
  • Светофор
  • Критические секции
  • События
  • Таймер
  • Мьютекс
Каждый из этих элементов вписываются в естественный путь для решения определенного класса простых задач. Для более сложных проблем просто объединить эти объекты вместе, чтобы получить правильный результат и удовлетворительном прохождении решения проблем, которые требуют использования одного из самых ранних и проблемы, которые определены как выше, является комплекс весьма критически. Сочетание объектов синхронизации может быть сложным, в лучшем случае, потому что вы не можете получить достаточно высокую производительность в худшем случае, потому что вы не можете легко найти решение, которое гарантирует правильность результата. Не в последнюю очередь худшем случае: есть фатальная ошибка и не сразу идентифицировать. Этот момент очень часто, как из-за чувствительности вопросов, которые мы будем обсуждать, является тот факт, что отладка всегда является сложным в параллельных окружающей среды, потоки на самом деле являются детерминированными исполнения, каждое выполнение программы, порядок процессор выполняет операции всегда разный.

В той же категории ...
E-Learning
Главная страница (книгу) Главная страница (книгу)
Создание веб-страниц, не зная HTML. Всего лишь 25 €.
MS Access (хороший) MS Access (хороший)
Узнайте, как создавать и управлять базами данных быстро и легко. Начиная от 29 €.
SQL и базы данных (курс) SQL и базы данных (курс)
Создание и управление реляционными базами данных. С 39 €.
Рекламные ссылки