|
Автоматный подход (SWITCH), Поделитесь опытом использования |
|
|
|
Jul 2 2006, 17:17
|
Участник

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

|
Решил в последнее время освоить более строгие-формальные методы проектирования программ для МК (да и для ПК). Делаю уже третий проект с помощью КА. правда, я использую некую смесь из того, что где-то прочитал и того, что сам придумываю по ходу. При этом всё выполняется на бумаге (проектирование КА), а далее ложится на код, по моим личным предпочтениям.
Результаты положительные, но тут хотелось бы спросить совета профессионалов, каким путём дальше идти, стоит ли использовать кодогенераторы и прочее ПО и т. д.
Интересно было бы узнать, насколько часто микроконтроллерщики используют автоматный подход к проектированию программ. Какое ПО при этом используется (Visual State etc.), каковы результаты (увеличение скорости разработки, надёжности, улучшение взаимопонимания в коллективе разарботчиков).
|
|
|
|
|
 |
Ответов
|
Jul 3 2006, 11:36
|

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

|
Цитата(_artem_ @ Jul 3 2006, 14:26)  2 osnwt, в слючае роунд робин можно сделать так что для задач с одинакоым приоритетом выдача ресурсов опеределяется временем захвата ресурсов задачей и оно (время ) может быть равномерно распределено между задачами , хотя и ртос не является вытесняющей. Если разговор конкретно про jacos, то там при прочих равных условиях (приоритетах и подходе кванта вызова задач) управление первой получит та, которая стоит раньше в очереди. То есть, в такой ситуации распределение количества вызовов будет более-менее равномерно распределенным между задачами. Если же речь о том, чтобы более-менее балансировать общее время исполнения (то есть, дольше поработала одна задача - вызовем несколько раз другую при прочих равных условиях, чтобы суммарное время выполнения более-менее уравнялось) - в jacos этого нет, по крайней мере. Да и часто ли это надо? Цитата То есть в этом случае мы не ждем завершения работы задачи а диспетчер сам останавливает или запускает ее (вне зависимости быполнила ли задача свою работу или нет). Вот это мне не понятно в том смысле, что как "диспетчер сам останавливает" задачу в случае кооперативной OS? Она на то и кооперативная, что прервать выполнение задачи может только она сама, и если она этого не делает, то вся оставшаяся часть системы будет стоять. Цитата Хочу сказать что fsm машины не являются синонимом для кооперативки тоже. Этого я и не утверждал. Это разные подходы. Я просто сказал, что nesos, судя по всему, представляет собой гибрид. А то, в каком смысле я противопоставлял fsm & кооперативные rtos - rtos-ам вытесняющим, я уже написал.
|
|
|
|
|
Jul 3 2006, 13:10
|

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

|
Цитата Если разговор конкретно про jacos, то там при прочих равных условиях (приоритетах и подходе кванта вызова задач) управление первой получит та, которая стоит раньше в очереди. То есть, в такой ситуации распределение количества вызовов будет более-менее равномерно распределенным между задачами. Нет не про jacos Цитата Цитата То есть в этом случае мы не ждем завершения работы задачи а диспетчер сам останавливает или запускает ее (вне зависимости быполнила ли задача свою работу или нет). Вот это мне не понятно в том смысле, что как "диспетчер сам останавливает" задачу в случае кооперативной OS? Она на то и кооперативная, что прервать выполнение задачи может только она сама, и если она этого не делает, то вся оставшаяся часть системы будет стоять. http://en.wikipedia.org/wiki/Round-robin_schedulinghttp://www.geocities.com/michaelanburaj/RTOS_Theory.html
--------------------
Зачем лаять на караван , когда на него можно плюнуть?
|
|
|
|
|
Jul 3 2006, 14:09
|

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

|
Цитата(_artem_ @ Jul 3 2006, 16:10)  Цитата Цитата То есть в этом случае мы не ждем завершения работы задачи а диспетчер сам останавливает или запускает ее (вне зависимости быполнила ли задача свою работу или нет). Вот это мне не понятно в том смысле, что как "диспетчер сам останавливает" задачу в случае кооперативной OS? Она на то и кооперативная, что прервать выполнение задачи может только она сама, и если она этого не делает, то вся оставшаяся часть системы будет стоять. http://en.wikipedia.org/wiki/Round-robin_schedulinghttp://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. Тема уже ушла в сторону...
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|