Параллелизм: только взаимное исключение?

#concurrency #process #operating-system

#параллелизм #процесс #операционная система

Вопрос:

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

В сумме:

Обеспечение параллелизма = эффективная реализация взаимного исключения

или

Обеспечение параллелизма = эффективная реализация взаимного исключения эффективная реализация синхронизации

?

Спасибо.

Комментарии:

1. Существует разница между атомарностью операций (взаимное исключение) и видимостью данных (энергозависимый доступ, ограждения памяти, сравнение и обмен и т. Д.). Большинство языков высокого уровня предоставляют гарантии видимости вокруг своих «базовых» блокировок синхронизации.

Ответ №1:

Параллелизм включает в себя как концепцию «взаимного исключения, так и сикронизации». Параллелизм — это выражение состояния. Взаимное исключение — это выражение состояния в Concurrecy . Взаимное исключение — это метод получения сикронизации в Concurrecy.

Ответ №2:

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