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

 
 
> вытясняющая многозадачность, чистый С без ОС
Zelepuk
сообщение Nov 29 2011, 08:56
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Хочется найти хорошо расписанный пример написания программы с вытясняющим планировщиком без применения какой-либо ОС на чистом С. Нашёл отличное описание кооперативного планировщика, но хочется разобраться с вытясняющим.
Подскажите, кто знает.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DpInRock
сообщение Nov 30 2011, 15:36
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Да вы сначала реализуйте просто по очереди.
Тут все просто как в зоопарке.

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

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

Вот и вся ОС.
Наращивать и усложнять алгоритм подсовывания нужного адреса - это развлечение на всю жизнь.
Мой опыт говорит, что мегагерцы растут быстрее, чем разум разработчика, посему можно сильно не париться, а взять проц по-быстрее... Конечно, и быстрый можно затормозить...





--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Zelepuk   вытясняющая многозадачность   Nov 29 2011, 08:56
- - dxp   Цитата(Zelepuk @ Nov 29 2011, 15:56) Хоче...   Nov 29 2011, 12:48
|- - Zelepuk   Цитата(dxp @ Nov 29 2011, 16:48) А чем, п...   Nov 29 2011, 13:10
- - MrYuran   Автомат на прерываниях с разрешением вложенности.   Nov 29 2011, 13:47
|- - Zelepuk   Цитата(MrYuran @ Nov 29 2011, 17:47) Авто...   Nov 29 2011, 13:55
|- - MrYuran   Цитата(Zelepuk @ Nov 29 2011, 17:55) спас...   Nov 30 2011, 04:42
|- - Dog Pawlowa   Цитата(MrYuran @ Nov 30 2011, 08:42) Преи...   Nov 30 2011, 05:25
|- - Zelepuk   Цитата(MrYuran @ Nov 30 2011, 07:42) Кажд...   Nov 30 2011, 08:25
|- - MrYuran   Цитата(Zelepuk @ Nov 30 2011, 12:25) не п...   Nov 30 2011, 08:52
||- - Zelepuk   Цитата(MrYuran @ Nov 30 2011, 11:52) 1. з...   Nov 30 2011, 09:01
|- - Warlockwolf   Цитата(Zelepuk @ Nov 30 2011, 12:25) похо...   Nov 30 2011, 10:02
|- - Zelepuk   Цитата(Warlockwolf @ Nov 30 2011, 14:02) ...   Nov 30 2011, 13:12
- - AHTOXA   Цитата(Zelepuk @ Nov 29 2011, 14:56) Хоче...   Nov 29 2011, 14:22
- - DpInRock   У меня работает сферический конь в вакууме. Все, ...   Nov 29 2011, 15:26
|- - Сергей Борщ   QUOTE (DpInRock @ Nov 29 2011, 18:26) У м...   Nov 29 2011, 20:23
|- - _Pasha   Цитата(DpInRock @ Nov 29 2011, 19:26) Но ...   Nov 29 2011, 22:18
- - Zelepuk   А вообще, когда становится понятно, что нужно горо...   Nov 29 2011, 17:40
|- - kolobok0   Цитата(Zelepuk @ Nov 29 2011, 21:40) А во...   Nov 30 2011, 07:53
- - AHTOXA   Цитата(DpInRock @ Nov 29 2011, 21:26) У м...   Nov 29 2011, 17:55
|- - Zelepuk   Цитата(AHTOXA @ Nov 29 2011, 21:55) Дык, ...   Nov 29 2011, 17:59
|- - toweroff   Цитата(Zelepuk @ Nov 29 2011, 21:59) а ес...   Nov 29 2011, 18:18
|- - AHTOXA   Цитата(Zelepuk @ Nov 29 2011, 23:59) а ес...   Nov 29 2011, 18:43
- - DpInRock   Вообще-то в большинстве случае проц в единственном...   Nov 29 2011, 18:34
- - sigmaN   Посмотрите AVR учебный курс на http://easyelectron...   Nov 29 2011, 20:15
- - DpInRock   ЦитатаИ где тут вытесняющая многозадачность? Перек...   Nov 30 2011, 02:23
- - Zelepuk   система должна принимать данные от АЦП, обробатыва...   Nov 30 2011, 04:27
- - DpInRock   Суперлуп организовывать труднее. Так чтоб он работ...   Nov 30 2011, 09:59
- - Rst7   QUOTE А как же setjmp/longjmp ? Катит только для ...   Nov 30 2011, 10:18
- - Warlockwolf   хидер Кодtypedef void (*pFunction)(v...   Nov 30 2011, 17:47
|- - Zelepuk   Цитата(Warlockwolf @ Nov 30 2011, 21:47) ...   Nov 30 2011, 19:23
- - Warlockwolf   приоритет задается постановкой в очередь. либо в к...   Nov 30 2011, 20:08
|- - Zelepuk   Цитата(Warlockwolf @ Dec 1 2011, 00:08) п...   Dec 1 2011, 05:38
- - Warlockwolf   Я ж писал, - реал тайм -при возникновении прерыван...   Dec 1 2011, 08:03
- - Zelepuk   понятно, вобщем кольцевая очередь низкоприоритетны...   Dec 1 2011, 08:26
- - _Ivana   Цитата(kolobok0 @ Nov 30 2011, 10:53) буд...   Jan 10 2012, 17:56
|- - Zelepuk   Цитата(_Ivana @ Jan 10 2012, 20:56) Спаси...   Jan 11 2012, 05:03
||- - SyncLair   Цитата(Zelepuk @ Jan 11 2012, 09:03) а ка...   Jan 11 2012, 20:10
||- - Zelepuk   Цитата(SyncLair @ Jan 11 2012, 23:10) А к...   Jan 12 2012, 05:15
|- - kolobok0   Цитата(_Ivana @ Jan 10 2012, 21:56) ... б...   Jan 11 2012, 09:08
- - SyncLair   Цитата(Zelepuk @ Nov 29 2011, 12:56) Хоче...   Jan 10 2012, 18:57
|- - SpyBot   Цитата(SyncLair @ Jan 10 2012, 22:57) В-т...   Jan 12 2012, 06:25
|- - demiurg_spb   Цитата(SpyBot @ Jan 12 2012, 09:25) Сорри...   Jan 12 2012, 06:49
|- - SpyBot   Цитата(demiurg_spb @ Jan 12 2012, 10:49) ...   Jan 12 2012, 07:10
|- - demiurg_spb   Цитата(SpyBot @ Jan 12 2012, 10:10) Напри...   Jan 12 2012, 07:39
- - _Pasha   Да простит меня MrYuran, который забадался уже чит...   Jan 11 2012, 10:15


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 05:21
Рейтинг@Mail.ru


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