|
вытясняющая многозадачность, чистый С без ОС |
|
|
|
 |
Ответов
|
Jan 10 2012, 18:57
|
Местный
  
Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197

|
Цитата(Zelepuk @ Nov 29 2011, 12:56)  Хочется найти хорошо расписанный пример написания программы с вытясняющим планировщиком без применения какой-либо ОС на чистом С. Нашёл отличное описание кооперативного планировщика, но хочется разобраться с вытясняющим. Подскажите, кто знает. Во-первых: вытесняющая многозадачность -- стек на каждый поток исполнения. Возможность его переполнения. Во-вторых: оно Вам зачем надо? чтобы параллельно несколько потоков выполнялось? А наверно вы хотите чтоб одни потоки работали бесконечно а другие их вытесняли время от времени? Тогда вам и приоритет поди понадобиться? Дак почему бы не взять простейшую ОС? что сложного то -- несколько доп файлов в проект и всё. В-третьих: на чистом Си вы ничего не получите так как чистый Си предполагает классическую однопоточную модель выполнения программ ибо создавалось это в те времена когда о реалтайме и куче периферийных устройств особо не думали. Без кусочка асма тут ну никак не обойтись Цитата(kolobok0 @ Nov 30 2011, 11:53)  по мне: единственный плюс разработки с юзаньем оси - командная разработка (типа просче дробить, тестировать, изолировать и т.п.), и скорость в счёт качества(подсобрать всякую тучу кривых библиотек и сапотить энным кол-вом работников). всё. Очень такой большой плюс. :-)
--------------------
|
|
|
|
|
Jan 12 2012, 06:25
|
Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491

|
Цитата(SyncLair @ Jan 10 2012, 22:57)  В-третьих: на чистом Си вы ничего не получите так как чистый Си предполагает классическую однопоточную модель выполнения программ ибо создавалось это в те времена когда о реалтайме и куче периферийных устройств особо не думали. Без кусочка асма тут ну никак не обойтись Сорри, но почему не получится? Грубо говоря, нам необходимо в прерывании манипулировать значением program counter. Это, мне кажется, можно сделать и на си...
|
|
|
|
Сообщений в этой теме
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 DpInRock Да вы сначала реализуйте просто по очереди.
Тут вс... Nov 30 2011, 15:36 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   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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|