Вопросы с тегом «concurrency»

Вопрос о проблемах параллелизма, таких как синхронизация и взаимоблокировки.

44
Разница между параллельным и параллельным программированием?

При рассмотрении параллельного программирования обычно используются два термина: параллельный и параллельный. А некоторые языки программирования специально заявляют о поддержке параллельного программирования, например, Java . Означает ли это, что параллельное и параллельное программирование на...

41
Контрастные алгоритмы Петерсона и Деккера

Я пытаюсь понять алгоритмы Петерсона и Деккера, которые очень похожи и имеют много симметрий. Я попытался сформулировать алгоритмы на неформальном языке следующим образом: Peterson's: "I want to enter." flag[0]=true; "You can enter next." turn=1; "If you want to enter and...

33
В чем разница между потоками уровня пользователя и потоками уровня ядра?

Прочитав несколько источников, я все еще не понимаю, какие темы нужны пользователям и ядру. Особенно: Потоки могут существовать как на уровне пользователя, так и на уровне ядра. В чем разница между уровнем пользователя и уровнем ядра?...

28
Что означает «истинный параллелизм»?

Я часто слышу такие фразы, как «истинная семантика параллелизма» и «истинные эквивалентности параллелизма» без каких-либо ссылок. Что означают эти термины и почему они важны? Каковы некоторые примеры истинных совпадений параллелизма и зачем они нужны? Например, в каких случаях они более применимы,...

21
Сходства и различия в основных алгебрах процессов

Насколько мне известно, есть три основных алгебры процессов, которые вдохновили широкий спектр исследований формальных моделей параллелизма. Эти: CCS и калькуляция Робин Милнерππ\pi CSP Тони Хоаром и ACP Ян Бергстра и Ян Виллем Клоп Все трое, по-видимому, по сей день ведут довольно активную работу,...

20
Без блокировки, постоянное время обновления параллельных древовидных структур данных?

В последнее время я немного читал литературу и нашел довольно интересные структуры данных. Я исследовал различные методы уменьшения времени обновления до худшем случае [1-7].O ( 1 )О(1)\mathcal{O}(1) Недавно я начал изучать структуры данных без блокировок для поддержки эффективного параллельного...

19
Почему незавершенные транзакции должны отменяться в обратном порядке?

У меня есть журнал базы данных, где некоторые транзакции выигрывают (они фиксируются до сбоя), а некоторые проигрывают (еще не зафиксированы). В классе мы узнали, что действия проигравших должны быть отменены задом наперед. Есть ли причина делать это задом наперед? Может ли кто-нибудь привести...

19
Существуют ли реализации аппаратной блокировки без тестирования и установки или подкачки?

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

16
Различия между актерской моделью и последовательными процессами связи (CSP)

Когда мы смотрим на модель актора и передачу последовательных процессов, мы видим, что они оба пытаются выполнять параллелизм на основе передачи сообщений , но они различны . (Мы видим реализации НСП модели в ходу-лане «s goroutines (и Clojure в core.async ) и актер модель в компании Scala Akka...

14
Возможно ли, чтобы язык программирования на основе стека был параллельным?

Я читал о стековых языках программирования, таких как FORTH и Cat , и кажется, что, учитывая их природу, они могут выполнять только одно действие за раз, независимо от их парадигмы (FORTH обязателен, тогда как Cat функционален). Императивный язык изменил бы стек, а чисто функциональный язык, такой...

13
Кому нужна линеаризуемость?

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

13
Архитектура ЦП смещена в сторону процедурного времени выполнения?

Могут ли быть внесены какие-либо изменения в ЦП, чтобы они работали лучше для одновременных сред выполнения, таких как Rust? Например, есть ли изменения в реализациях прогнозирования ветвлений или размерах кэша, которые могли бы помочь одновременным выполнениям? У меня сложилось впечатление, что...

12
Хорошая снимковая структура данных для индекса в памяти

Я проектирую базу данных объектов в памяти для очень конкретного случая использования. Это один писатель, но должен поддерживать эффективное одновременное чтение. Чтения должны быть изолированными. Нет языка запросов, база данных поддерживает только: получить объект / -ы по атрибуту / набору...

12
Какова цель потоков M: N (Hybrid)?

Другими словами, какие преимущества имеет гибридная многопоточность по сравнению с 1: 1 (только для ядра) и N: 1 (только для пользователя)? Это продолжение к тому, В чем разница между потоками уровня пользователя и потоками уровня...

11
Зачем вам использовать монитор вместо семафора?

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

11
Почему большинство реализаций мьютекса несправедливы?

Насколько я понимаю, большинство популярных реализаций мьютекса (например, std :: mutex в C ++) не гарантируют справедливости, то есть они не гарантируют, что в случаях конфликта блокировка будет получена потоками в том порядке, в котором они называется блокировка (). На самом деле, даже возможно...

11
CCS процесс для диспенсера для напитков с двумя разными ценами

Диспенсер для напитков требует, чтобы пользователь вставил монету ( ), а затем нажмите одну из трех кнопок: запрашивает чашку чая , то же самое для кофе , и запрашивает возврат (т. е. автомат возвращает монету: ). Этот дозатор может быть смоделирован следующим процессом CCS :c¯c¯\bar...

10
Формализмы в параллельном и / или распределенном программировании?

Мой опыт пришел из императивных языков, прежде всего C, C ++ и Python. Я подобрал Scala, Erlang и немного Haskell несколько лет спустя и с тех пор очень заинтересовался функциональным программированием и формализмом, лежащим в его основе. Я также заинтересован в параллельном и распределенном...

9
Можно ли доказать безопасность потока?

Имея программу, состоящую из переменных и инструкций, которые модифицируют эти переменные, и примитива синхронизации (монитор, мьютекс, синхронизированный java или блокировка C #), можно ли доказать, что такая программа является поточно-ориентированной? Есть ли даже формальная модель для описания...