"ZhuK" написал:
Насколько я помню, по системной шине процессор уже давно не обменивается с памятью. HT в помощь ему.
И каким образом периферия влияет на производительность?
Все, что нуждается в обмене большими объемами данных уже давно обзавелось своими путями отличными от FSB.
Всё равно путь один. Сокет процессора один. Дорожки на плате для обмена данными одни для всех ядер вместе.
Добавлено: 30.05.2020 12:52:53
"Chars67" написал:
Эта задача упрощается до вполне понимабельного уровня в акторной модели выполнения -
так работают, например, Erlang, и Akka - для Java-мира.
Акторы - это UML?
"Chars67" написал:
То бишь процессы, сообщения (а именно запросы и ответы),
и все разделяемые ресурсы - тоже процессы, хоть ты тресни.
Над всей этой красотой надзирает супервизор (не более чем ещё один процесс ab) -
и, если он располагает адекватной системой ранжирования процессов по приоритетам,
даже и конкуреннтые системы работают ожидаемым и предсказуемым образом.
Это очень интересно!
"Chars67" написал:
Отдельно следует отметить проблему времени при согласовании работы процессов -
чтобы система была актуальной в каждый момент времени и давала релевантные ответы именно
для текущего состояния "обрабатываемого мира" -
чтобы не вышло так, что выдан ответ по текущему состоянию какой-нибудь структуры,
а через мгновение в эту структуру прилетает нечто,
требующее дать совершенно другой ответ на тот же самый запрос.
Но! Так выглядит работа с зелёными, легковесными, в отличие от процессов ОС, процессами.
На более низком уровне, внутри BEAM, JVM, ядер ОС -
треша и угара ещё больше. Борются с ними и вышеприведёнными методами, и более врукопашную.
Но так мой пост никогда не кончится
Получается, супервизор один, а процессов десятки и сотни и тысячи.
Одно дело, это деление времени процессора между процессами.
Другое дело - распределение процессов по ядрам процессора.
А сокет на плате один для всех ядер и дорожки на плате между процессором и памятью одни,
хоть и многоразрядные. Вот и проблема, как равномерно нагрузить все ядра,
чтобы и процессы отрабатывали и чтобы они не ждали, пока надо скинуть результат работы в память.
Я сам не гуру в этом вопросе но очень благодарен Вам за подробный ответ.