OSDev
http://osdev.su/

Вопросы производительности многопоточных сред.
http://osdev.su/viewtopic.php?f=5&t=322
Страница 18 из 18

Автор:  Mr.McD. [ 15 фев 2012, 11:25 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

Очень неоднозначно понял...
Цитата:
Главным достоинством апартамента STA является то, что разработка объекта COM и клиентской части проста в том смысле, что нет нужды заботиться о синхронизации вызовов методов и их выполнения: следующий метод начнет выполняться только после того, как закончится выполнение предыдущего.

STA-объекты получают управление только по запросу, или могут исполняться параллельно, каждый со своей активностью? В первом случае нельзя говорить о многозадачности (даже кооперативной) - это простая линейная программа, только вместо передачи аргументов в стеке - сообщения (как в Смолтолке или Ио). Если же STA-объекты - активные объекты, то смущает отсутствие главной процедуры, выполняющей диспетчеризацию их активностей. Вместо неё - постоянная прослушка очереди входных сообщений с последующим выбором "метода". Было бы эффективней выполнять диспетчеризацию активности самого объекта при отправке ему сообщения. Тогда пришлось бы крутить не очередь сообщений, а очередь планирования/исполнения. Тут же - иначе. Пока склоняюсь к мнению, что на основе STA нельзя реализовать активную многопоточную систему.

Автор:  Himik [ 15 фев 2012, 16:03 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

Да, всё верно ты описал. Ни какие процедуры в COM с STA не выполняются параллельно, и даже псевдопараллельно, а только упорядоченно. Можно ещё MTA посмотреть, но я сейчас уж не помню механизма работы. Надо память освежить. Просто я вместо MTA обычно Free Model использую, это чистая параллельность, где синхронизация это проблема самого объекта.

Автор:  Mr.McD. [ 15 фев 2012, 16:16 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

Химик, есть мысли о какой-нибудь высокоуровневой среде разработки, или открытом стандарте, с помощью которых возможна реализация эффективных объектных систем? Главное - активных.
п.с. Что за фри-модель такая?

Автор:  Himik [ 15 фев 2012, 23:53 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

В STA модели порядок вызова методов находится под контролем системы, система там пытается что-то упорядочить, а во Free ничего такого нет. И без применения синхронизации возможны коллизии, как в обычных процедурах. Free это просто другое название MTA. Может и есть различия, не знаю точно.

У меня пока нет идей насчёт активных объектов. А что ты придумаешь лучше COM, DotNet, Oberon или какого-нибудь Objective C?

Автор:  Mr.McD. [ 16 фев 2012, 01:43 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

Я не против формального описательного языка. Вроде UML, но менее замороченного и желательно тьюринг-полного, чтобы описанную на нём объектную систему можно было легко перевести на целевой язык. Для синхронных моделей есть CSP, для модели акторов можно подсмотреть примеры на ЮМЛе. Предлагаю обсудить акторы.. О них википедия (в отличии от ЦСП) немного намекает..

Автор:  Himik [ 16 фев 2012, 17:25 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

Я не особо увлекаюсь объектами.
Если любишь формальный принцип описания - посмотри F#. Справка на него должна быть в MSDN и Visual Studio 2010.

Автор:  Mr.McD. [ 16 фев 2012, 17:46 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

Я тоже объектами не увлекаюсь - музыкой увлекаюсь. Просто объектная модель отлично описывает структуру современных систем, начиная от приложений типа блокнота, и заканчивая сетью интернет. На мой взгляд это достаточно гибкая и высокоуровневая абстракция. А для формального описания достаточно таких вещей как: поведение, реакция, состояние и т.д. Можно даже на бумаге или устно, не обязательно на F#:)

Автор:  Himik [ 16 фев 2012, 19:53 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

Я думаю, что не обязательно использовать один инструмент и один вид проектирования как для макро, так и для микро уровня. Графическое представление в виде блок-схемы с применением UML можно изображать отдельно, а конкретные реализации можно выполнять разными инструментами. К графической модели должны быть привязаны спецификации, а какими средствами они выполняются - не суть важно.

Автор:  Mr.McD. [ 16 фев 2012, 22:47 ]
Заголовок сообщения:  Re: Вопросы производительности многопоточных сред.

Согласен.

Страница 18 из 18 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/