Parallelism vs Concurrency: правильно подбираем инструменты

Автор: admin от 5-01-2016, 21:10, посмотрело: 387

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

Категория: Программирование

 

О безопасности UEFI, часть заключительная

Автор: admin от 16-10-2015, 14:29, посмотрело: 428

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

Если вам интересно, чем безопасности прошивки могут помочь там.

Категория: Программирование / Системное администрирование / Информационная безопасность

 

Транзакционная память: история и развитие

Автор: admin от 4-05-2014, 02:00, посмотрело: 609

Транзакционная память: история и развитие

Определение


Параллельное программирование сложно. При использовании систем с общей памятью не обойтись без синхронизации доступа параллельных процессов/потоков к общему ресурсу (памяти). Для этого используются:

  • блокировки (mutex);

  • алгоритмы без блокировки (lockless, lock-free);

  • транзакционная память.



Транзакционная память — технология синхронизации конкурентных потоков. Она упрощает параллельное программирование, выделяя группы инструкций в атомарные транзакции. Конкурентные потоки работают параллельно1, пока не начинают модифицировать один и тот же участок памяти. К примеру, операции добавления узлов в красно-чёрное дерево (анимация в заголовке) способны работать параллельно в нескольких потоках.

Категория: Программирование

 

Concurrency: 6 способов жить с shared state

Автор: admin от 17-03-2014, 09:25, посмотрело: 493

Concurrency: 6 способов жить с shared state

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

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

Все примеры приведены на Java, но содержат комментарии и я надеюсь будут понятны программистам не знакомым c Java. Данная статья носит обзорный характер и не претендует на полноту. В то же время она наполнена ссылками, которые дают более подробное объяснение терминам и утверждениям.

Категория: Программирование