Библиотечная функция sleep() библиотека unistd.h

-Почему- потому?
_Патаму патаму
Внимательно почитайте выше
Нет. У меня тож квант, Слава шыдулеру, форкнулся
Хотяяя, осознал, что вы занимаетесь межпроцессной битвой за ресурс
При этом магическим способом вычисляете
максимальную частоту переключений
между двумя процессами.
измеряя скорость записи в ресурс
ivand
Нет. У меня тож квант, Слава шыдулеру, форкнулся
Хотяяя, осознал, что вы занимаетесь межпроцессной битвой за ресурс
При этом магическим способом вычисляете
максимальную частоту переключений
между двумя процессами.
измеряя скорость записи в ресурс

Зачем этот сленг? Если Вы в этой проблеме ничего не понимаете то не стоит писать
разные глупости ради того чтобы написать.
Мне не нужна бессмысленная полемика, а я прошу у людей помощи для решения конкретной
задачи. Как я писал у меня задача управление устройством в реальном времени. И для этого мне
необходимо чтобы процесс который в данный момент уже выполнил свою работу заснул. И разбудить
его должен другой процесс когда потребуется работа первого процесса.
И никто здесь не вычисляет скорость записи в ресурс, а время работы процесса.
Жопа - это есть абсолютно универсальный интерфейс.
Ибо через жопу можно сделать абсолютно всё!
Да, прикладнику тяжко понять
Но и тут очевидна ущербность вашего проекта--
Однопроцессорная, одноядерная платка иДва управляющих процесса
в мягоньком реалтайме -- не реально на ваших требованиях, вы ж видите
Купите плк
Предложено перейти в однопроцесс(исключив перещелкивание контекста, бывает дорогой) и ознакомиться с критическими реализациями ко времени участков кода на ассме
Предложено nice -40, потом уже кернель спейс- там еще 100 приоритетов, но там уровень ядра
Ну и ОС hard rt для армов найдете
Зачем этот сленг?
Хотите об этом поговорить?
Не хотел писать, но вижу, что тема заходит в тупик и страсти накаляются.
Вообще то такие задачи для компьютеров данного типа решаются совершенно по другому.
Компьютер Raspberry Pi (читай далее компьютеры данного типа) плохо приспособлен для взаимодействия с другими техническими приборами. И, как правило, при использовании данного компьютера при взаимодействии с другими приборами, особенно в робототехнике, используют дополнительные платы расширения, этих плат много — у каждой свое назначение, в зависимости от начинки самого компьютера.
В твоем случае, возможно, (не уверен, нужно смотреть характеристики) подойдет GPIO-плата, так называемая Gertboard.
Можешь поискать другие платы, но не уверен, что найдешь что то дельное в интернете — в данном случае лучше обратится к знакомым спецам в этом деле, а лучше в почтовые ящики по этому профилю. Знаю точно, что имеются такие платы расширения под малогабаритные шаговые двигатели, используемые в космосе. Но, думаю тебе подойдут и попроще.

PS...........Если, конечно, я правильно вьехал в тему.
Ошибки не исчезают с опытом - они просто умнеют
Плата расширения по русски и, оказывается, таких статей в интернете больше, чем я думал.
Ошибки не исчезают с опытом - они просто умнеют
vasek
Плата расширения по русски и, оказывается, таких статей в интернете больше, чем я думал.

Спасибо за информацию. Ситуация следующая:
На фирме есть станок который управляется контролером на ATMEGA32 и программу к которому я писал.
Руководство решило сделать контролер для этого станка на базе RaspberryPi. Была разработана и изготовлена плата расширителя портов.
Но возникла проблема не нашлось программистов которые могут работать с железом в реальном времени в многозадачной среде Линукса.
Мне поручили изучить эту проблему и по возможности решить. Тактовая частота процессора ATMEGA32 - 16MГц против 700МГц RaspberryPi.
Я это к чему, к тому, что по быстродействию новый процессор в 43 раза мощнее, имеет намного больше оперативной памяти. Должен бы
с данной задачей справится не напрягаясь. Но возникли проблемы по работе в реальном времени многозадачной системы.
Частота обработки датчика шпинделя 1600Гц. - обрабатываю по прерыванию с этим проблем нет. В программе есть много процессов которые
формируют импульсы определенной частоты и длительности (например шаговый двигатель частота 1КГц длительность 200 микросекунд).
Получается что процесс отработав 200 микросекунд дальше попусту тратит процессорное время ждет окончания тайминга. Если процесс сам
по окончанию работы заснет и передаст тайминг другому процессу то в таком случае мы получим большой выиграш в скорости обслуживания
событий. Тайминг можно уменшить сделав новую сборку ядра, но это не снимает вопроса работы коротких процессов.
[Вот почему я так пристал к этой команде Sleep()]
Возможно кто то посоветует другие алгоритмы обработки таких событий или системы которые поддерживаются на RaspberryPi.
Если системы то они должны иметь время загрузки не более 15 секунд (желательно до 10сек).
Проблема понятна, но, без обид будет сказано, решать ее здесь просто так никто не будет. Эта тема выходит за рамки форума. Профи здесь много, но большинство из них даже и не высовывается. Да и эра сейчас другая. Все отвыкли работать за спасибо. Вероятность, что кто то откликнется помочь, мала. Но надежда умирает последней.
Попробуй применить операционную систему реального времени QNX, предназначенную специально для управления технологическими процессами (сайт для скачки , статья для ознакомления. Прога бесплатна, деньги берут только за сопровождение. Фирма Ваша, похоже, не богатая, поэтому вопрос о заключении договора на подгонку операционки под вашу задачу стоять не будет? Хотя это лучший выход, но если не будет - придется осваивать самому.
Но только, похоже, на RaspberryPi эту систему не установить, хоть она и не очень требовательна. Посмотри.

PS.......... имеются и другие операционки реального времени - FreeRTOS, VxWorks, OSE, RTLinux, LynxOS
Ошибки не исчезают с опытом - они просто умнеют
Даю еще одну ссылку на интересную статью - FreeRTOS. Операционная система реального времени для микроконтроллеров - может пригодится
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.