LINUX.ORG.RU

Как реализуется синхронизация/блокировка в модели акторов?

 


1

2

Федотов, «Модели параллельного программирования» пишет, что синхронизация/блокировка строятся на базе примитива (сущность-актор<->сообщения). Из доступного списка литературы к Федотову больше понятно не стало. Это же не нужно вводить в модель главного диспетчера блокировок?



Последнее исправление: panzerito (всего исправлений: 1)
Ответ на: комментарий от actionpattern

Давно бы провели аллегорию с мультипроцессорной\микросервисной архитектурой, для объяснения.

anonymous
()
Ответ на: комментарий от actionpattern

Счет-- это актор. Он инкапсулирует состояние баланса. В отичии от.

Хочу букварь с примерами: как и на чём писать такие акторы. Что-то типа «Модель Акторов за 24 часа» :)

yyk ★★★★★
()
Ответ на: комментарий от tailgunner

Блокировки отсутствуют в модели. Если они тебе нужны, ты реализуешь их поверх модели.

Блокировки отсутствуют в модели, но присутствуют в арбитре, доступа к кишкам которого у меня нет. Поэтому мне надо реализовать блокировки поверх модели. И поверх этого написать свои акторы (без блокировок). Но если кто-то захочет использовать мои акторы и блокировки, то ему надо будет реализовать свои блокировки. И, возможно, написать свои акторы...

А теперь вопрос: в чём профит?

yyk ★★★★★
()
Ответ на: комментарий от actionpattern

в модели Акторов реализуется *все прочее*.

Мне не надо «в модели», мне надо «на практике». Нужны пруфы/доки/маны/примеры/тесты и т.д.

yyk ★★★★★
()
Ответ на: комментарий от anonymous

Давно бы провели аллегорию с мультипроцессорной\микросервисной архитектурой, для объяснения.

Хотеть ядро на микросервисной архитектуре: mkLinux ))

yyk ★★★★★
()
Ответ на: комментарий от yyk

Поэтому мне надо реализовать блокировки поверх модели.

Если тебе нужны блокировки - да, конечно. Что с этим не так?

И поверх этого написать свои акторы (без блокировок)

Зачем?

А теперь вопрос: в чём профит?

Профит чего - математической модели?

Хотеть ядро на микросервисной архитектуре: mkLinux ))

CLOS давно уже реализовали.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от yyk

Нужны пруфы/доки/маны/примеры/тесты и т.д.

Доки, маны, примеры и тесты будут относиться либо к конкретному языку программирования (как Erlang, Elm, Pony), либо к конкретному фреймворку конкретного языка (Akka или Quasar для JVM, Orleans для .NET, CAF или SObjectizer для C++, QP/C или OOSMOS для C и т.д.)

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Профит чего - математической модели?

Если мы всего лишь о модели, то какие к лешему «реализации блокировок»? Поверх модели?

yyk ★★★★★
()
Ответ на: комментарий от eao197

SObjectizer для C++

Т.е. вот в этой библиотеке полностью реализована «математическая модель» акторов «по Хьюитту»? С полным недетерминизмом?

yyk ★★★★★
()
Ответ на: комментарий от tailgunner

Если тебе нужны блокировки - да, конечно. Что с этим не так?

Лишний слой абстракции, не?

Зачем?

Допустим, пишу библиотеку. Вот прочитал: чтобы не думать о гонках, надо писать акторы. Вот и хочу написать тот самый актор «банковский счёт». Или актор RDBMS, с помощью которого потом будет написан тот самый актор «банковский счёт».

CLOS давно уже реализовали.

Собака след не берет, который из имеется в виду

yyk ★★★★★
()
Ответ на: комментарий от yyk

Если тебе нужны блокировки - да, конечно. Что с этим не так?

Лишний слой абстракции, не?

Если они тебе нужны - они не лишние.

Профит чего - математической модели?

Если мы всего лишь о модели, то какие к лешему «реализации блокировок»? Поверх модели?

Да. Модель поверх модели. В чем проблема?

И поверх этого написать свои акторы (без блокировок)

Зачем?

Допустим, пишу библиотеку.

Еще раз - зачем тебе писать акторы без блокировок, когда они уже есть?

CLOS давно уже реализовали.

Собака след не берет

http://www.burdonov.ru/doctor/papers_1986/KLOS_operatsionnaya_sistema_i_tekhn...

tailgunner ★★★★★
()

Кури gen_server, он как раз реализует блокирующий доступ к ресурсу (стейту).

anonymous
()
Ответ на: комментарий от yyk

Скажу вам по секрету, мало кого волнуют теоретические модели. Нужны вам акторы на практике, берете конкретную реализацию и вперед. Или свою пишете, а потом жалуетесь на то, как коряво получилось. Математические модели нужны тем, кто диссертации на этом защишает, а не прикладной или системный софт пишет.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

берете конкретную реализацию и вперед. Или свою пишете, а потом жалуетесь на то, как коряво получилось.

«конкретные реализации» появляются, видимо, недетерминированно

anonymous
()
Ответ на: комментарий от yyk

Допустим, пишу библиотеку. Вот прочитал: чтобы не думать о гонках, надо писать акторы. Вот и хочу написать тот самый актор «банковский счёт». Или актор RDBMS, с помощью которого потом будет написан тот самый актор «банковский счёт».

Знаете, а ведь подобные вопросы, когда рассказываешь про акторов, задают регулярно. В связи с чем появилась вот такая идея. Ну или можно прямо здесь, на LOR-е какую-нибудь задачку сформулировать.

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

помнится, обедающих философов уже формулировали...

И было получено решение, которое масштабировалось до миллионов этих самых философов. В отличии от.

eao197 ★★★★★
()

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

По-моему, модель акторов исторически появилась как вычислительная модель, а не модель сервисов. И MT (multi-threading?) она не обобщает.

panzerito
() автор топика
Ответ на: комментарий от panzerito

По-моему, модель акторов исторически появилась как вычислительная модель, а не модель сервисов

Простите, а в чем разница? Или сервисы - это не вычисления?

tailgunner ★★★★★
()
Ответ на: комментарий от panzerito

Модель Акторов — это один из подходов к решению проблем в concurrent computing (а не в parallel computing). Т.е. это подход к решению задач, где нужно обеспечить одновременное обслуживание множества разнообразных (возможно и разрозненных) активностей.

При этом для этого вовсе не обязательно использовать многопоточность вообще. Акторы могут быть и объектами, которые кооперативно сосуществуют всего на одной общей рабочей нити.

Ну и вообще, многопоточность — это инструмент, который успешно используется и для нужд parallel-, и для нужд concurrent computing.

eao197 ★★★★★
()
Ответ на: комментарий от tailgunner

Простите, а в чем разница? Или сервисы - это не вычисления?

Вычисления - это когда есть схождение в одну точку, concurrent, другими словами.

panzerito
() автор топика
Ответ на: комментарий от panzerito

Вычисления - это когда есть схождение в одну точку

Хм. Это то, что завершается остановом?

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

кривоватое решение. вилки в виде интов и всё вот это... в отличие от чего, кстати?

Вы сейчас сами с собой разговариваете или где?

На LOR-е когда-то был вопрос о том, как на SO-5 можно реализовать задачу обедающих философов. Вот следы этого: раз и два (это решение от анонимуса с со стилем общения очень напоминающего ваш).

В дистрибутив SO-5 после этого добавлено две других реализации этой же задачи. Но ни в одной нет «вилки в виде интов и всё вот это».

Да и речь не о том, как написать конкретный пример на конкретном фреймворке. А о том, как вообще подходить к решению проблем с использованием акторов.

Вот та же самая задача об обедающих философах. Браться за ее решение на акторах имеет смыл, полагаю, только при определенных условиях. Например, если философов должно быть овердофига.

eao197 ★★★★★
()
Ответ на: комментарий от yyk

Т.е. вот в этой библиотеке полностью реализована «математическая модель» акторов «по Хьюитту»? С полным недетерминизмом?

Хьюитт за все время строгое математическое изложение своей акторобредятины так и не написал. Так что? когда мы говорим о «модели акторов по Хьюитту»? мы говорим о том, чего не существует.

anonymous
()
Ответ на: комментарий от eao197

Вот та же самая задача об обедающих философах

модель акторов как бы для того и придумали, чтобы такую задачу решать не пришлось :)

то был слишком тонкий троллинг

anonymous
()
Ответ на: комментарий от anonymous

У него там явно нехьюитовская-сильнее-мт-модель (по крайней мере в anonimous-понимании акторов, чем бы оно ни было), т.к. unbounded nondetermenism рассматривается в качестве неполноты спецификации, чем эффективно исключается из модели.

anonymous
()

а можно узнать какую задачу в этом треде пытаются решить? а то создается впечатление, что вы топчитесь на одном месте вместе с теоретическими россказнями

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.