И программирование задач реального времени
Программа представляет собой описание объектов — констант и переменных —1 и операций, совершаемых над ними. Таким образом, программа — это чистая формация. Ее можно записать на какой-либо носитель, например на бумагу или на дискету.
Программы можно создавать и анализировать на нескольких уровнях абстракции (детализации) с помощью соответствующих приемов формального описания переменных и операций, выполняемых на каждом уровне. На самом нижнем уровне используется непосредственное описание — для каждой переменной указывается ее размер и адрес в памяти. На более высоких уровнях переменные имеют абстрактные имена, а операции сгруппированы в функции или процедуры. Программист, работающий на высоком ypoвне абстракции, не должен думать о том, по каким реальным адресам памяти хранятся переменные, и о машинных командах, генерируемых компилятором.
Последовательное программированиеявляется наиболее| распространенным способом написания программ. Понятие "последовательное" подразумевает, что операторы программы выполняются в известной последовательности один за другим. Целью последовательной программы является преобразование входных данных, заданных в определенной форме, в выходные данные, имеющие другуюформу, в соответствии с некоторым алгоритмом — методом решения (рис.1).
Таким образом, последовательная программа работает как фильтр для исходных данных. Ее результат и характеристики полностью определяются входными данными и алгоритмом их обработки, при этом временные показатели играют, как правило, второстепенную роль. На результат не влияют ни инструментальные (язык программирования), ни аппаратные (быстродействие ЦП) средства: от первых зависят усилия и время, затраченные на разработку и характеристики исполняемого кода, а от вторых — скорость выполнения программы, но в любом случае выходные данные будут одинаковыми.
Программирование в реальном времениотличается от последовательного программирования — разработчик программы должен постоянно иметь в виду среду, в которой работает программа, будь то контроллер микроволновой печи или устройство управления манипулятором робота. В системах реального времени внешние сигналы, как правило, требуют немедленной реакции процессора. В сущности, одной из наиболее важных особенностей систем реально го времени является время реакции на входные сигналы, которое должно удовлетворять заданным ограничениям.
Специальные требования к программированию в реальном времени, в частности необходимость быстро реагировать на внешние запросы, нельзя адекватно реализовать с помощью обычных приемов последовательного программирования. Насильственное последовательное расположение блоков программы, которые должны выполняться параллельно, приводит к неестественной запутанности результирующего кода и вынуждает связывать между собой функции, которые по сути являются самостоятельными
В большинстве случаев применение обычных приемов последовательного программирования не позволяет построить систему реального времени. В таких системах независимые программные модули или задачи должны быть активными одновременно, т. е. работать параллельно, при этом каждая задача выполняет свои специфические функции. Такая техника известна под названием параллельного программирования. В названии делается упор на взаимодействие между отдельными программными модулями. Параллельное исполнение может осуществляться на одной или нескольких ЭВМ, связанных распределенной сетью. В этой главе будут рассмотрены принципиальные вопросы, относящиеся к обоим случаям.
Дата добавления: 2016-02-09; просмотров: 1061;