реклама на сайте
подробности

 
 
> Автоматный подход (SWITCH), Поделитесь опытом использования
Lem
сообщение Jul 2 2006, 17:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 20-03-05
Пользователь №: 3 533



Решил в последнее время освоить более строгие-формальные методы проектирования программ для МК (да и для ПК). Делаю уже третий проект с помощью КА. правда, я использую некую смесь из того, что где-то прочитал и того, что сам придумываю по ходу. При этом всё выполняется на бумаге (проектирование КА), а далее ложится на код, по моим личным предпочтениям.

Результаты положительные, но тут хотелось бы спросить совета профессионалов, каким путём дальше идти, стоит ли использовать кодогенераторы и прочее ПО и т. д.

Интересно было бы узнать, насколько часто микроконтроллерщики используют автоматный подход к проектированию программ. Какое ПО при этом используется (Visual State etc.), каковы результаты (увеличение скорости разработки, надёжности, улучшение взаимопонимания в коллективе разарботчиков).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_artem_
сообщение Jul 3 2006, 11:26
Сообщение #2


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



2 osnwt, в слючае роунд робин можно сделать так что для задач с одинакоым приоритетом выдача ресурсов опеределяется временем захвата ресурсов задачей и оно (время ) может быть равномерно распределено между задачами , хотя и ртос не является вытесняющей. То есть в этом случае мы не ждем завершения работы задачи а диспетчер сам останавливает или запускает ее (вне зависимости быполнила ли задача свою работу или нет). Хочу сказать что fsm машины не являются синонимом для кооперативки тоже. Для меня фсм видится как логический подход или метод для решения задачи с детерминированным количеством внутренних состояний в контексте самой этой задачи. По сути дела в каждой ртос сушествуют свои машины с конечным состоянием - допустим состояние какой либо задачи, но они не несут в себе этого названия (фсм).


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
osnwt
сообщение Jul 3 2006, 11:36
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664



Цитата(_artem_ @ Jul 3 2006, 14:26) *
2 osnwt, в слючае роунд робин можно сделать так что для задач с одинакоым приоритетом выдача ресурсов опеределяется временем захвата ресурсов задачей и оно (время ) может быть равномерно распределено между задачами , хотя и ртос не является вытесняющей.

Если разговор конкретно про jacos, то там при прочих равных условиях (приоритетах и подходе кванта вызова задач) управление первой получит та, которая стоит раньше в очереди. То есть, в такой ситуации распределение количества вызовов будет более-менее равномерно распределенным между задачами.

Если же речь о том, чтобы более-менее балансировать общее время исполнения (то есть, дольше поработала одна задача - вызовем несколько раз другую при прочих равных условиях, чтобы суммарное время выполнения более-менее уравнялось) - в jacos этого нет, по крайней мере. Да и часто ли это надо?

Цитата
То есть в этом случае мы не ждем завершения работы задачи а диспетчер сам останавливает или запускает ее (вне зависимости быполнила ли задача свою работу или нет).

Вот это мне не понятно в том смысле, что как "диспетчер сам останавливает" задачу в случае кооперативной OS? Она на то и кооперативная, что прервать выполнение задачи может только она сама, и если она этого не делает, то вся оставшаяся часть системы будет стоять.

Цитата
Хочу сказать что fsm машины не являются синонимом для кооперативки тоже.

Этого я и не утверждал. Это разные подходы. Я просто сказал, что nesos, судя по всему, представляет собой гибрид. А то, в каком смысле я противопоставлял fsm & кооперативные rtos - rtos-ам вытесняющим, я уже написал.
Go to the top of the page
 
+Quote Post
_artem_
сообщение Jul 3 2006, 13:10
Сообщение #4


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Цитата
Если разговор конкретно про jacos, то там при прочих равных условиях (приоритетах и подходе кванта вызова задач) управление первой получит та, которая стоит раньше в очереди. То есть, в такой ситуации распределение количества вызовов будет более-менее равномерно распределенным между задачами.


Нет не про jacos

Цитата
Цитата
То есть в этом случае мы не ждем завершения работы задачи а диспетчер сам останавливает или запускает ее (вне зависимости быполнила ли задача свою работу или нет).

Вот это мне не понятно в том смысле, что как "диспетчер сам останавливает" задачу в случае кооперативной OS? Она на то и кооперативная, что прервать выполнение задачи может только она сама, и если она этого не делает, то вся оставшаяся часть системы будет стоять.


http://en.wikipedia.org/wiki/Round-robin_scheduling
http://www.geocities.com/michaelanburaj/RTOS_Theory.html


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
osnwt
сообщение Jul 3 2006, 14:09
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664



Цитата(_artem_ @ Jul 3 2006, 16:10) *
Цитата

Цитата
То есть в этом случае мы не ждем завершения работы задачи а диспетчер сам останавливает или запускает ее (вне зависимости быполнила ли задача свою работу или нет).

Вот это мне не понятно в том смысле, что как "диспетчер сам останавливает" задачу в случае кооперативной OS? Она на то и кооперативная, что прервать выполнение задачи может только она сама, и если она этого не делает, то вся оставшаяся часть системы будет стоять.


http://en.wikipedia.org/wiki/Round-robin_scheduling
http://www.geocities.com/michaelanburaj/RTOS_Theory.html


По первой ссылке читаю:

Цитата
Round Robin Scheduling is preemptive (at the end of time-slice) therefore it is effective in time-sharing environments in which the system needs to guarantee reasonable response times for interactive users.

Раунд-робин планирование есть преемптивное.

По второй смотрю таблицу с kernels и вижу:

Цитата
Non preemptive: Every task is written in a way that it complete execution within its time slot & gives control for other tasks.

Round robin: Every task gets its chance in a sequential manner.


Иными словами, выходит так, что под сочетанием Non preemptive (кооперативной) RTOS и round-robin планирования понимается то, что задача обязана быть написана так, чтобы завершить свое исполнение в пределах своего временнОго слота и отдать управление другим задачам. А round-robin в данном случае - это циклический последовательный вызов задач на исполнение без учета их приоритетов, чтобы дать им поработать. При этом они по прежнему обязаны отдать управление в ограниченное временнЫм слотом время. Превышение времени выполнения (более, чем временнОй слот) - это уже нарушение требований RTOS. А большее или меньшее время выполнения в пределах этого слота никак не учитывается в кооперативных RTOS, потому говорить о гарантиях равного времени выполнения в такой системе просто нельзя.

Потому мне по прежнему не понятно, как из приведенных ссылок следует, что в кооперативной (non preemptive) RTOS реализуется round-robin планирование по времени так, что "диспетчер сам останавливает или запускает ее (вне зависимости быполнила ли задача свою работу или нет)". Ведь невозможность остановки выполнения задачи в non preemptive RTOS - это и есть само определение RTOS, как non preemptive.

PS. Тема уже ушла в сторону...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Lem   Автоматный подход (SWITCH)   Jul 2 2006, 17:17
- - Laptop   Я использую следующий подход. main выполняется в в...   Jul 2 2006, 19:09
- - vet   Да, собственно, выбор-то невелик - или КА, или зад...   Jul 2 2006, 19:22
|- - pitt   Цитата(vet @ Jul 2 2006, 15:22) ..задачи ...   Jul 2 2006, 21:28
||- - krdmitry   Цитата(pitt @ Jul 3 2006, 01:28) Цитата(v...   Jul 3 2006, 08:22
|- - tag   Цитата(vet @ Jul 2 2006, 23:22) Да, собст...   Sep 17 2007, 06:17
- - krdmitry   А есть ли еще программы-кодогенераторы, кроме Visu...   Jul 2 2006, 20:34
|- - Lem   Цитата(krdmitry @ Jul 3 2006, 00:34) А ес...   Jul 2 2006, 20:53
|- - tag   Цитата(krdmitry @ Jul 3 2006, 00:34) Врод...   Jul 10 2006, 15:17
- - Lem   Выбор - понятно. но интересно узнать именно соотн...   Jul 2 2006, 20:41
|- - osnwt   Цитата(Lem @ Jul 2 2006, 23:41) возможнос...   Jul 3 2006, 09:14
|- - µµC   Цитата(Lem @ Jul 3 2006, 00:41) Причём, р...   Jul 14 2006, 12:34
|- - osnwt   Цитата(µµC @ Jul 14 2006, 15:34) Для mega...   Jul 14 2006, 12:43
|- - µµC   Цитата(osnwt @ Jul 14 2006, 16:43) Особен...   Jul 14 2006, 13:30
- - _artem_   имхо автомат конечных состояний и ртос это две раз...   Jul 3 2006, 09:33
|- - osnwt   Цитата(_artem_ @ Jul 3 2006, 12:33) имхо ...   Jul 3 2006, 09:44
|- - _artem_   Цитата(osnwt @ Jul 3 2006, 12:44) Цитата(...   Jul 3 2006, 09:53
|- - osnwt   Цитата(_artem_ @ Jul 3 2006, 12:53) Цитат...   Jul 3 2006, 10:51
- - sensor_ua   Посмотрите NesOS - Finite State Machine Operating ...   Jul 3 2006, 11:03
|- - osnwt   Цитата(sensor_ua @ Jul 3 2006, 14:03) Пос...   Jul 3 2006, 11:16
|- - =GM=   Еще один пример ОСРВ для МК и ДСП можно посмотреть...   Jul 3 2006, 12:37
- - bialix   вот еще один какбы генератор WhatOS: http://www.st...   Jul 3 2006, 12:20
- - pitt   RTOS большая и многогранная тема. Нет и не может б...   Jul 3 2006, 15:00
- - vesago   Вперве применил КА когда надо было сделать контрол...   Jul 4 2006, 08:13
|- - _artem_   Цитата(vesago @ Jul 4 2006, 11:13) Вперве...   Jul 4 2006, 08:43
|- - ig_z   Цитата(_artem_ @ Jul 4 2006, 11:43) Вызов...   Jul 4 2006, 10:30
||- - _artem_   Цитата(ig_z @ Jul 4 2006, 13:30) Цитата(_...   Jul 4 2006, 11:22
||- - bialix   Цитата(_artem_ @ Jul 4 2006, 14:22) Visua...   Jul 4 2006, 14:34
||- - _artem_   Цитата(bialix @ Jul 4 2006, 17:34) Цитата...   Jul 4 2006, 15:16
||- - bialix   Цитата(_artem_ @ Jul 4 2006, 18:16) Цитат...   Jul 4 2006, 17:10
|- - _Bill   Цитата(_artem_ @ Jul 4 2006, 11:43) Вызов...   Jul 4 2006, 11:21
|- - Kirill Frolov   Цитата(_artem_ @ Jul 4 2006, 12:43) Вызов...   Sep 16 2007, 14:22
|- - Dog Pawlowa   Цитата(Kirill Frolov @ Sep 16 2007, 17:22...   Sep 16 2007, 19:32
|- - singlskv   Цитата(Kirill Frolov @ Sep 16 2007, 18:22...   Sep 16 2007, 20:16
- - white.wind   Возможно полезным будет ресурс на тему http://soft...   Jul 4 2006, 08:24
- - bialix   Хотел бы пару слов сказать в ответ исходному посту...   Jul 4 2006, 14:54
|- - Crystaly   Цитата(krdmitry @ Jul 3 2006, 00:34) ...Е...   Jul 7 2006, 06:45
|- - bialix   Цитата(Crystaly @ Jul 7 2006, 09:45) Цита...   Jul 7 2006, 13:04
|- - krdmitry   Цитата(bialix @ Jul 7 2006, 17:04) Неправ...   Jul 7 2006, 19:34
||- - Lem   Цитата(krdmitry @ Jul 7 2006, 23:34) Цита...   Jul 7 2006, 19:56
||- - bialix   Цитата(krdmitry @ Jul 7 2006, 22:34) Цита...   Jul 10 2006, 09:45
|- - Crystaly   Цитата(bialix @ Jul 7 2006, 17:04) У вас ...   Jul 10 2006, 06:13
|- - bialix   [quote name='Crystaly' date='Jul 10 20...   Jul 10 2006, 09:58
- - _artem_   Ну думаю, что скорее всего осязание подвело Вас иб...   Jul 4 2006, 17:26
- - CD_Eater   Цитата(bialix @ Jul 4 2006, 18:54) Сам по...   Jul 6 2006, 21:54
|- - osnwt   Цитата(CD_Eater @ Jul 7 2006, 00:54) Имхо...   Jul 6 2006, 22:14
|- - bialix   Цитата(osnwt @ Jul 7 2006, 01:14) Цитата(...   Jul 7 2006, 05:57
- - Evgeny_CD   Может кому пригодится ****************************...   Jul 10 2006, 07:25
- - bialix   Перепишем алгоритм светофора в терминах классическ...   Jul 10 2006, 10:16
- - Tran   Раньше уже была тема о КА - http://electronix.ru/f...   Jul 10 2006, 11:27
- - bialix   По поводу диаграмм конечных автоматов в нотации UM...   Jul 11 2006, 05:36
- - sensor_ua   Cегодня такая вот прелесть попалась - 4 макроса дл...   Jul 11 2006, 18:22
- - sensor_ua   ЦитатаВо-первых оптимизирующий компилятор заменяет...   Sep 16 2007, 17:20
- - sansnotfor   Вот перевод упомянутой здесь статьи о конечных авт...   Mar 24 2011, 00:24
- - kovz   могу посоветовать вот это http://www.state-machine...   Mar 28 2011, 13:15


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 11:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016