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/ |