Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / before-happens в JVM / 25 сообщений из 34, страница 1 из 2
26.09.2012, 19:22:47
    #37973404
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Коллеги расскажите как сие реализовано в JVM пожалуйста.
...
Рейтинг: 0 / 0
26.09.2012, 19:30:13
    #37973411
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Что именно вам непонятно? Вопрос смахивает на как реализован Unix
...
Рейтинг: 0 / 0
26.09.2012, 19:32:02
    #37973412
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Понятно что оно используется для volatile переменных

Вопрос как ?

Ну то есть есть переменная volatile

Один тред туда пишет - второй читает.

Как в asm коде будет выглядеть реализация констейнта happens-before ?
...
Рейтинг: 0 / 0
26.09.2012, 19:32:11
    #37973413
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Хотя побуду телепатом.
Есть JVM-спецификация, по которой определенные действия должны происходить как happens-before. Тот кто имплементирует JVM на отдельной архитектуре должен соблюсти спецификацию, не важно каким образом, иначе это будет уже не JVM.
...
Рейтинг: 0 / 0
26.09.2012, 19:33:14
    #37973414
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
eextrasensПонятно что оно используется для volatile переменных

Вопрос как ?

Ну то есть есть переменная volatile

Один тред туда пишет - второй читает.

Как в asm коде будет выглядеть реализация констейнта happens-before ?
Как? Зависимым от архитектуры образом
...
Рейтинг: 0 / 0
26.09.2012, 19:35:21
    #37973417
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
А можно пример привести как оно на пальцах работает на примере двух тредов на любой их архитектур
Пусть HotSpot Jdk6 Unix
...
Рейтинг: 0 / 0
26.09.2012, 19:39:49
    #37973420
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Синхронизация памяти достигается в основном мембарами(они же fences). Google it.

То есть если переменная не volatile все происходит так -
int i =0;
writeToNonVolatileMemory()

volatile int i = 0;

writeToVolatileMemory()
membar();
...
Рейтинг: 0 / 0
26.09.2012, 19:40:23
    #37973422
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
...
Рейтинг: 0 / 0
26.09.2012, 19:42:05
    #37973428
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Коллега, забыл ник, а если Вы в курсе что такое fences в деталях опишите пожалуйста.

Больно трудно такое гуглить когда вообше не представляешь о чем это
...
Рейтинг: 0 / 0
26.09.2012, 19:48:34
    #37973436
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
eextrasensБольно трудно такое гуглить когда вообше не представляешь о чем это"memory barries" - указание аппаратуре процессора отключить переупорядочивание доступа и прочие финты ушами.
Для компилятора, кроме того, volatile - означает запрет на "регистровую оптимизацию".
А теперь возникает вопрос - задлянафига вы спрашиваете на форуме то, что нужно вдумчиво и самостоятельно изучать?
И самое главное: "Вы с какой целью интересуетесь?" Вот чем вам это будет полезно?
...
Рейтинг: 0 / 0
26.09.2012, 19:50:57
    #37973438
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Basil A. SidoroveextrasensБольно трудно такое гуглить когда вообше не представляешь о чем это"memory barries" - указание аппаратуре процессора отключить переупорядочивание доступа и прочие финты ушами.
Для компилятора, кроме того, volatile - означает запрет на "регистровую оптимизацию".
А теперь возникает вопрос - задлянафига вы спрашиваете на форуме то, что нужно вдумчиво и самостоятельно изучать?
И самое главное: "Вы с какой целью интересуетесь?" Вот чем вам это будет полезно?


>> запрет на "регистровую оптимизацию".

Зависит от процессора возможно просто сбросятся регистровые кеши других тредов в современных процах

>> А теперь возникает вопрос - задлянафига вы спрашиваете на форуме то, что нужно вдумчиво и самостоятельно изучать?

Пробывал тяжело стало - решил вселенский разум о помощи попросить - вроде для этого форумы такие и существуют чтоб учиться когда совсем не понимаешь

>> И самое главное: "Вы с какой целью интересуетесь?" Вот чем вам это будет полезно?

Для общего развития и более глубокого понимания JVM и JMM
...
Рейтинг: 0 / 0
26.09.2012, 19:54:39
    #37973442
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
eextrasensЗависит от процессора возможно просто сбросятся регистровые кеши других тредов в современных процахВы это знаете или только что придумали?
Это уж я молчу, что "вам уже непонятно" - размещение volatile-переменной в регистре создаёт проблемную точку на единственном однопоточном процессоре.
...
Рейтинг: 0 / 0
26.09.2012, 19:55:42
    #37973444
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Basil A. SidoroveextrasensЗависит от процессора возможно просто сбросятся регистровые кеши других тредов в современных процахВы это знаете или только что придумали?
Это уж я молчу, что "вам уже непонятно" - размещение volatile-переменной в регистре создаёт проблемную точку на единственном однопоточном процессоре.

Скажем так это гипотеза :)

Коллега помогите по сабжу - если знаете реально как оно там работает
...
Рейтинг: 0 / 0
26.09.2012, 19:58:44
    #37973448
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
eextrasensКоллега помогите по сабжу - если знаете реально как оно там работаетЯ, что, числюсь в списка разработчиков ядра JVM/Hotspot?
...
Рейтинг: 0 / 0
26.09.2012, 19:59:37
    #37973449
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
:)

ок ждем тех кто в теме
...
Рейтинг: 0 / 0
26.09.2012, 20:17:05
    #37973481
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Вряд ли тут вам кто-то еще что-то скажет. По этой теме надо действительно читать и читать, и разбираться. Да и посмотрите наконец исходники JVM, там наиболее актуальные сведения.
...
Рейтинг: 0 / 0
26.09.2012, 20:17:41
    #37973482
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Ну мало ли :)
...
Рейтинг: 0 / 0
26.09.2012, 22:08:57
    #37973582
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
eextrasensНу мало ли :)
Могу посоветовать ресурсы на русском) Все довольно просто и понятно)
http://habrahabr.ru/post/133981/
http://shipilev.net/pub/talks/j1-April2012-jmm.pdf
http://shipilev.net/pub/talks/j1-April2011-performanceBoF.pdf
http://cheremin.blogspot.com/search/label/threading
...
Рейтинг: 0 / 0
26.09.2012, 22:20:01
    #37973595
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Возможно эти ссылки не совсем то что вы ищите, к сожаление не могу найти в закладках про реализацию)
http://www.javaspecialist.ru/2011/06/java-memory-model.html
...
Рейтинг: 0 / 0
26.09.2012, 22:42:06
    #37973612
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
То что надо - диаграмма от Шипилева :)

Довелось встретить этого перфоманс гуру из Оракла как то в Питере.

Ежу становится понятны механизмы и что такое happens-before

Осталось понять как оно там внутри устроено.
...
Рейтинг: 0 / 0
26.09.2012, 22:51:40
    #37973625
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
eextrasensТо что надо - диаграмма от Шипилева :)

Довелось встретить этого перфоманс гуру из Оракла как то в Питере.

Ежу становится понятны механизмы и что такое happens-before

Осталось понять как оно там внутри устроено.
Согласен) Где то я видел как это устроенно) В комментариях вот этот пользователь писал http://habrahabr.ru/users/apangin/
и еще где-то в блоге http://cheremin.blogspot.com/search/label/threading было про синхронизацию кэша и локальной памяти и про всякие разные команды процессора)
...
Рейтинг: 0 / 0
26.09.2012, 22:52:54
    #37973626
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
У него в списке комментариев иногда есть ответы типа такого:

"В HotSpot JVM на x86/amd64 запись volatile поля сопровождается инструкцией LOCK ADD [RSP], 0 что достаточно для эффективного membar'а вместо медленного MFENCE. Чтение volatile поля ничем не отличается от чтения обычного поля.

Что касается final полей, HotSpot с ними всегда работает как с обычными. Никаких дополнительных действий для обеспечения вышеупомянутой семантики final виртуальная машина не осуществляет, ровно по той причине, что на всех ныне поддерживаемых архитектурах (x86, SPARC, ARM, PPC), пример ReorderingSample никогда не свалится. Случая с Reflection это не касается, поскольку он относится с Class Libraries и реализован за пределами JVM."
...
Рейтинг: 0 / 0
26.09.2012, 23:05:44
    #37973637
eextrasens
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
rdm,

Спасибо - очень полезные ссылки
...
Рейтинг: 0 / 0
27.09.2012, 00:35:20
    #37973706
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
Basil A. SidoroveextrasensКоллега помогите по сабжу - если знаете реально как оно там работаетЯ, что, числюсь в списка разработчиков ядра JVM/Hotspot?а чо ёрничаешь-то? как баба в пмс прям..
...
Рейтинг: 0 / 0
27.09.2012, 10:50:03
    #37974034
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
before-happens в JVM
grasoff.netа чо ёрничаешь-то?Если человек не понимает намёков, выбор формулировки - за мной.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / before-happens в JVM / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]