Почему для синхронизации требуется переключение контекста на ОС?

Я смотрел презентацию о высокопроизводительных вычислениях, и начиная с 24:55 один из докладчиков заявил, что синхронизация путем получения блокировки требует переключения контекста на ядро ​​ОС (даже не на ядро ​​виртуальной машины, если приложение работает на ней). Я был бы признателен за краткое объяснение того, почему это так и почему это не может быть обработано внутри JVM (в случае приложений Java).


person wishihadabettername    schedule 24.11.2012    source источник


Ответы (1)


Из беглого взгляда на видео около 24:55 кажется, что они обсуждают «захват мьютекса - вход в критический раздел - мьютекс освобождения».

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

Дополнительную информацию см. Здесь: Действительно ли мьютексы медленнее?

person ose    schedule 24.11.2012