Гл1_06 (1031650), страница 8

Файл №1031650 Гл1_06 (Раздаточный материал к курсовому проекту) 8 страницаГл1_06 (1031650) страница 82017-12-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

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

Позже мы еще раз рассмотрим этот механизмввиду его важности для систем управления. Существуют и другие способы фиксации внешних событий диспетчером процессов, но для нас пока это особого значения не имеет.Все события можно разделить на локальные,имеющие значение только для данного потока, и сисСобытиетемные (рис.1. 22). Системные события каких либопроцессов (потоков) участвуют в инициализации действий в других процессах или потоках.

Иначе говоря, соПрограммноеВнешнеебытие данного потока, или какое либо внешнее по отношение к управляющей программе событие (непосредственно не вычисляемое в ней), является системным, если оно обрабатывается ядром операционнойЛокальноеСистемноесистемы (диспетчером процессов) и может участвоватьв перераспределении вычислительных ресурсов междуРис. 1.

22.потоками. На рис.1.22 показано, что внешнее событиене может быть локальным. Прерывание, предусмотренное для фиксации внешнего события,всегда запускает подпрограмму обслуживания этого прерывания, в результате чего перераспределяются вычислительные ресурсы микроконтроллера. Если, конечно прерывание не запрещено, но тогда и внешнего события для системы управления не будет.Процесс в нашем понимании, это совокупность событий и действий, объединенныхобщей природой и причинно-следственными связями и направленных на достижения поставленной цели. С принятой в стандарте POSIX (Portable Operation System Interface Exchange)Рябов Владимир Тимофеевич.

Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru34точки зрения, процесс – это исполняемый программный код, расположенный в физическизащищенном объеме памяти.Последовательный процесс или поток (нить - thread) – это последовательность связанных событий и действий. Каждое событие является следствием предыдущих действий иинициатором последующих. Рассмотренный в примере с роботом автоматный граф являетсятиповым последовательным процессом или потоком. Событиями являются переходы из состояния в состояние, когда система задерживается в одном из состояний, осуществляютсядействия.Я в тексте часто смешиваю понятия «процесс» и «поток».

Мне пока «режет ухо» выражение «поток нагрева» и я по привычке говорю и пишу «процесс нагрева», если проблемыраспределения и защиты памяти не существенны.С точки зрения программиста, обмен и взаимодействие между потоками внутри процесса может осуществляться либо через глобальные переменные, либо, при переходе к вложенной подпрограмме, через стековый механизм обмена с использованием локальных переменных. Причем, второй способ предпочтительнее и рекомендован к использованию длялучшей структуризации программ и автономности потоков и процедур, используемых в них.Обмен между процессами (точнее потоками разных процессов) может осуществлятьсятолько через посылку сообщений. Это делает потоки максимально автономными. Каждыйпоток может осуществляться на различных микроконтроллерах, может быть автономно запущен и отлажен.

Конечно, потоки влияют друг на друга. Так в приведенном примере с установкой диффузионной сварки процессы нагрева и откачки связаны тем, что нагрев инициирует газовыделение, ухудшает вакуум и не должен привести к выходу давления за установленные пределы. Но процесс нагрева может быть запущен автономно даже без откачки, еслиэмулировать сообщения о давлении при его запросах.

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

Организованный таким образом интерфейс взаимодействия потоков (процессов) способствует их автономности.Рассмотрим и обсудим введенные нами понятия на примере потока или процесса регулирования температуры. Написан он на некотором паскалеподобном языке и носит учебныйхарактер.

Процесс управляет подъемом температуры в печи от исходной до максимальнойTmax с градиентом dT/20 градусов в секунду.Циклически повторяющийся каждые 20 секунд, квант регулирования температурыописан внутри оператора while T<Tmax do. В каждом проходе цикла встречается операторdelay_t(20,4), передающий управление диспетчеру процессов с указанием, включить этотквант в очередь на исполнение с задержкой в 20 секунд и приоритетом 4. Диспетчер процессов ведет очередь всех квантов и запускает их на исполнение, как только условия запуска будут выполнены.Рябов Владимир Тимофеевич.

Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru35thread NAGREV;Var T, Tmax, dT ,Tf, Up, Tint, Tdif: real;{T, Tmax Заданная, максимальная и }{приращение температуры, Tf -фактическая температура,}{Up - управление, Tint, Tdif - постоянные времени.}Temp, Nagr : Channal;{Аппаратные переменные, связанные}{с датчиком температуры и регулятором напряжения.}beginwhile T<Tmax do {Пока заданная температура меньше максимальной,}beginT:=T+dT;{рассчитать заданную температуру,}Tf:=control(Тemp);{измерить фактическую по каналу,}Up:=PID(T,Tf, Tint, Tdif);{рассчитать управление по ПИД- }regulir(Up, nagr);{закону и выдать значение Up по каналу nagr}delay_t(20,4){передать управление диспетчеру процессов}end;{ с указанием (Ждать 20 секунд с приоритетом 1)}Start(STAB_T, 0, 0) {запустить процесс стабилизации температуры}Start(SQUEEZING, 0.001, 1){запустить процесс сжатия образцов}через миллисекунду с приоритетом 0 }Stop{Окончить процесс нагрева, когда температура достигнута.}end.По времени, Выполнение кванта этого потока (участка кода внутри оператораwhile T<Tmax, ограниченного оператором delay_t()), займет менее миллисекунды и повторяется квант с периодичностью в 20 секунд.

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

В приведенном примере операторStart(STAB_T, 0, 0) поставит в очередь диспетчеру процессов поток стабилизации температуры STAB_T с временем запуска, равным моменту исполнения оператора Start и приоритетом0, а оператор Start(SQUEEZING, 0.001, 0) - процесс сжатия свариваемых образцов. Время запуска этого потока определено через миллисекунду после исполнения оператора Start также снулевым приоритетом. Приоритет говорит о том, что если времена запуска у различныхквантов совпадут, диспетчер выберет квант с максимальным приоритетом. Здесь квант с нулевым приоритетом считается самым «важным», хотя в других операционных системах илисредах исполнения жесткого реального времени (ОСРВ) может быть и иначе.

Например, всистеме Neutrino, чем показатель приоритета выше, тем процесс приоритетнее. Если совпадут времена запуска и приоритеты квантов, выполняется обычно квант, ранее поставленный вочередь. Существуют и другие алгоритмы и даже стратегии ведения очереди потоков иликвантов.Оператор delay_t(20,4) передает управление диспетчеру процессов и ставит квантпроцесса NAGREV в очередь с временем исполнения на 20 секунд большим, чем момент завершения delay_t() и приоритетом 4. Таким образом, завершение оператора delay_t() такжеопределяет системное событие.Критерий окончания указывает, что поток более не нужен и может не рассматриваться диспетчером процессов.

Здесь это оператор stop. После выполнения этой системной проРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru36цедуры поток NAGREV будет исключен из очереди диспетчера процессов. Его дескриптор, вкотором хранится контекст, адрес первой команды кода и условия запуска процесса, будетуничтожен, чтобы не перегружать диспетчер излишней работой. Далее процесс нагрева втехнологическом цикле не нужен.Помимо критериев начала и окончания, каждый поток характеризуется управляющими, управляемыми и контролируемыми переменными.Управляемая переменная характеризует качество ведения процесса. В нашем примередиффузионной сварки управляемой переменной процесса или потока нагрева является температура изделия. Эта переменная в кванте управления процессом представлена значением Tfв формате реального числа.Управляющей переменной, определяющей мощность, выделяющуюся на нагревателепечи, является значение Up, рассчитанное в процедуре закона регулированияPID(T,Tf,Tint,Tdif) в зависимости от требуемой температуры Т, или уставки, фактическойтемпературы Tf и постоянных интегрирования Tint (задержки) и дифференцирования Tdif(опережения).

Из курса «Управление в технических системах» вы должны знать, чем определены и как выбираются эти параметры.В нашем примере управляемую переменную, определяющую качество процесса можнонепосредственно контролировать, поэтому температура Tf является одновременно и контролируемой переменной. Ее значение формируется функцией control(Тemp), которая преобразуетнормированный аналоговый сигнал с термопары, расположенной вблизи зоны сварки, в формат реального числа. При этом сигнал с термопары фильтруется (очищается от помех). Как этоделается, мы будем рассматривать далее (пример такой функции приведен в гл.5.3.Г).Кванты потоков, используемых в САУ разделяют на синхрокванты, запускаемые илиперезапускаемые по времени, как в рассмотренном ранее примере программы нагрева и кванты, запускаемые внешними событиями - интеркванты.

Характеристики

Тип файла
PDF-файл
Размер
1021,52 Kb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
261
Средний доход
с одного платного файла
Обучение Подробнее