|
Подскажите пожалуйста, про многозадачность. |
|
|
|
Oct 18 2006, 07:29
|
Местный
  
Группа: Свой
Сообщений: 252
Регистрация: 14-09-06
Пользователь №: 20 377

|
Есть несколько задач (программ) которые должны выполнятся с минимальным временем, можно организовать как линейный список функций, которые последовательно вызываются из главной функции main() при условии что время выполнения каждой функции ограничено т.е. внутри функции нет кода который задерживает выполнения (ожидает чего либо). Например одна функция обрабатывает принятый массив с USARTа. другая расшифровывает принятую команду и выполняет ее, подготавливает ответ к отправке (квитирование). Еще пару функций, которые что-то делают (обслуживают клавиатуру, исполнительные устройства). Получается все запутанно, если делать все функции в виде конечных автоматов с минимальным временем работы каждой. Хорошо было бы, если каждая функция выполнялась в виде задачи, ожидает, данные с параллельного потока пускай ждет, получила что хотела, выполняет. Есть задержка в функции скажем, на 20 секунд, пускай ждет, в это время выполняются другие функции. С операционными системами как-то все сложно, может планировщик задач да и все. Какие есть решение не сложные? Механизм взаимодействия функций друг с другом.
|
|
|
|
|
 |
Ответов
|
Oct 24 2006, 10:18
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 20-10-06
Пользователь №: 21 500

|
У многих "универсальных" ОС основная проблема - неоптимизированное ядро. Там бы все ручками... А так их реакция не радует. Монопольный режим ядра, да и долгое время переключения задач. Прикрепляю архив с "в последний лохматый раз" переделаной "переключалкой контекстов". Описывать неохота  если кому интересны подробности - спрашивайте. Сие работает на давайсах с мега48, другой на 16. Написано на асме и для асма (но очень хочется сами задачи на С писать, сейчас "вопрос прорабатывается"). Если кто-нибудь что-нибудь предложит по оптимизации ядра, будет хорошо. интересны: Функция проверки истечения таймаута; Функция проверки говых по событию задач; время переключения задач: с одной на ту же около 150 тактов (примерно) с одной на другую от 200 тактов (примерно). прерывания рабоают в монопольном режиме. планировщик в общем режиме. //-------------------------------- щаз там уарт на 115200 зашит и прием зациклен на передачу через буферную систему. При старте выдает тестовую строчку. Работоспособность проверял только что. С уважением, yod
|
|
|
|
|
Oct 25 2006, 11:59
|
Группа: Новичок
Сообщений: 9
Регистрация: 28-11-05
Пользователь №: 11 498

|
А ничего, что на сайте scmRTOS висит версия 2.04a-beta от 28.04.2006. Как у нее со стабильностью,как никак бета-версия. Можно ее применить в серьезном проекте.
|
|
|
|
Сообщений в этой теме
_Алекс Подскажите пожалуйста, про многозадачность. Oct 18 2006, 07:29 Сергей Б Ну для этого и придуманы прерывания, например для ... Oct 18 2006, 07:35 _Алекс Цитата(Сергей Б @ Oct 18 2006, 10:35) Ну ... Oct 18 2006, 07:42 Сергей Б Ну так ясное дело в прерывании, например для юарта... Oct 18 2006, 08:01 Alexander Storm Попробуй всеж чуток с операционками разобраться, п... Oct 18 2006, 19:24  Dog Pawlowa Осень. Пора, как все, лететь к RTOS.
Но я пока ... Oct 19 2006, 09:04   _Алекс Цитата(Dog Pawlowa @ Oct 19 2006, 12:04) ... Oct 19 2006, 09:26    Dog Pawlowa Цитата(_Алекс @ Oct 19 2006, 12:26) Поясн... Oct 19 2006, 09:48  osnwt Цитата(Alexander Storm @ Oct 18 2006, 22... Oct 19 2006, 14:09   AVR Цитата(osnwt @ Oct 19 2006, 18:09) Цитата... Oct 19 2006, 16:38 GinRider Цитата(_Алекс @ Oct 18 2006, 10:29) Получ... Oct 18 2006, 08:13 Сергей Б Цитата(GinRider @ Oct 18 2006, 12:13) Цит... Oct 18 2006, 08:27 rezident Можно и без вложенных прерываний в одном прерывани... Oct 18 2006, 08:37 GetSmart В винде вот красиво сделано. Там есть обработчики ... Oct 18 2006, 08:43 IgorKossak Наклёвывается необходимость применения RTOS.
По кр... Oct 18 2006, 08:52 GinRider Цитата(IgorKossak @ Oct 18 2006, 11:52) Н... Oct 18 2006, 09:28  µµC Цитата(GinRider @ Oct 18 2006, 13:28) Есл... Oct 18 2006, 09:47  SasaVitebsk Цитата(GinRider @ Oct 18 2006, 12:28) Цит... Oct 18 2006, 09:50   GinRider Цитата(SasaVitebsk @ Oct 18 2006, 12:50) ... Oct 18 2006, 11:29    µµC Цитата(GinRider @ Oct 18 2006, 15:29) Про... Oct 18 2006, 12:12     defunct Цитата(µµC @ Oct 18 2006, 15:12) Получает... Oct 18 2006, 13:48 _Алекс Есть функции, есть планировщик задач. Функции заци... Oct 18 2006, 11:18 Сергей Борщ Цитата(_Алекс @ Oct 18 2006, 14:18) Есть ... Oct 18 2006, 11:56 defunct Цитата(_Алекс @ Oct 18 2006, 10:29) Есть ... Oct 18 2006, 11:32 Михаил Горюнов Скромная попытка объяснить необъятное двумя словам... Oct 18 2006, 13:09 _Алекс Почитал по операционнкам, попроще получается коопе... Oct 19 2006, 08:06 Hz! Цитата(_Алекс @ Oct 19 2006, 11:06) Почит... Oct 19 2006, 09:20 Hz! ЦитатаЯсно, а кто задачи с приоритетами 2 и 3 дела... Oct 19 2006, 10:05 Alex B._ Автор jacOS высылает исходники по запросу, напишит... Oct 19 2006, 17:50 _Алекс Посмотрел ОС scmRTOS, jacOS, Salvo. многозадачност... Oct 20 2006, 05:52 osnwt Цитата(_Алекс @ Oct 20 2006, 08:52) Посмо... Oct 20 2006, 06:09 µµC Цитата(_Алекс @ Oct 20 2006, 09:52) Посмо... Oct 20 2006, 09:47  _Алекс Исходники можно взять для jacos, и повторю, нужны ... Oct 20 2006, 10:50   µµC Цитата(_Алекс @ Oct 20 2006, 14:50) А у в... Oct 20 2006, 11:19 Alex B._ >> Один минус: отсутствие исходников
Это не... Oct 20 2006, 12:39 osnwt Цитата(Alex B._ @ Oct 20 2006, 15:39) ... Oct 20 2006, 16:57 Alex B._ Согласен на полминуса.
Для того чтобы лучше понять... Oct 20 2006, 18:27 osnwt Поддержка - или платить постоянно за нее, или авто... Oct 20 2006, 18:33 haker_fox Цитата(_Алекс @ Oct 18 2006, 16:29) Есть ... Oct 21 2006, 03:26  Сергей Борщ Цитата(Turion @ Oct 25 2006, 14:59) А нич... Oct 25 2006, 12:13 µµC Цитата(yod @ Oct 24 2006, 14:18) Функция ... Oct 25 2006, 12:47  yod jacOS - это круто, потому что FSM (Finite State Ma... Oct 25 2006, 12:57   µµC Цитата(yod @ Oct 25 2006, 16:57) потому ч... Oct 25 2006, 13:14    yod Цитата(µµC @ Oct 25 2006, 20:14) В каком ... Oct 26 2006, 03:33     dxp Цитата(yod @ Oct 26 2006, 10:33) Цитата(µ... Oct 26 2006, 04:17      Dog Pawlowa Цитата(dxp @ Oct 26 2006, 07:17) А само ... Oct 26 2006, 06:06       osnwt Цитата(Dog Pawlowa @ Oct 26 2006, 09:06) ... Oct 26 2006, 06:39     µµC Цитата(yod @ Oct 26 2006, 07:33) "За... Oct 26 2006, 17:30 bodja74 2vod
Смотрел,хорошая оська,незнаю как насчет фунц... Oct 26 2006, 22:05 yod to bodja74
Цитата(bodja74 @ Oct 27 2006, 05... Oct 27 2006, 03:42  bodja74 Цитата(yod @ Oct 27 2006, 06:42) Я пока ... Oct 27 2006, 20:13   trofim .def Zero = rxx ;любой регистр
clr Zero ; в и... Oct 31 2006, 11:16    bodja74 Цитата(trofim @ Oct 31 2006, 14:16) Кто п... Oct 31 2006, 13:02     =GM= Цитата(bodja74 @ Oct 31 2006, 13:02) Цита... Oct 31 2006, 16:30      bodja74 Цитата(=GM= @ Oct 31 2006, 19:30) Цитата(... Oct 31 2006, 16:40       =GM= Цитата(bodja74 @ Oct 31 2006, 16:40) Абсо... Oct 31 2006, 17:41        bodja74 Цитата(=GM= @ Oct 31 2006, 20:41) Ну ладн... Oct 31 2006, 19:27         =GM= GM Ну ладно, при случае(:-). А вы где территориаль... Nov 1 2006, 11:07          bodja74 Цитата(=GM= @ Nov 1 2006, 14:07) GM Ну ла... Nov 1 2006, 16:41           =GM= [quote name='bodja74' date='Nov 1 2006... Nov 1 2006, 18:01           =GM= Цитата(bodja74 @ Nov 1 2006, 16:41) ЗЫ ГЫ... Nov 2 2006, 15:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|