Я смотрел презентацию о высокопроизводительных вычислениях, и начиная с 24:55 один из докладчиков заявил, что синхронизация путем получения блокировки требует переключения контекста на ядро ОС (даже не на ядро виртуальной машины, если приложение работает на ней). Я был бы признателен за краткое объяснение того, почему это так и почему это не может быть обработано внутри JVM (в случае приложений Java).
Почему для синхронизации требуется переключение контекста на ОС?
Ответы (1)
Из беглого взгляда на видео около 24:55 кажется, что они обсуждают «захват мьютекса - вход в критический раздел - мьютекс освобождения».
Синхронизация основана на том факте, что получение мьютекса является атомарной операцией. Поскольку в ядре происходит упреждение, ядру необходимо обрабатывать мьютекс, чтобы гарантировать его атомарность, когда несколько процессов пытаются получить / освободить мьютекс.
Дополнительную информацию см. Здесь: Действительно ли мьютексы медленнее?
person
ose
schedule
24.11.2012