КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример алгоритма, реализующего процесс сканирования
Итак, существует ряд алгоритмов, выполняющих процессы сканирования. Более подробно этот вопрос изложен в [9, 10, 40], где приведены описания алгоритмов, которые представлены в других разделах данной главы. Ниже даны обобщенные выводы из указанных источников, соответствующие максимально строгим требованиям по обслуживанию вызовов. Алгоритм сканирования приведен на рис. 4. На этом рисунке приняты обозначения: R — предыдущие состояния точек опроса линейки; R— последующие состояния точек опроса линейки; R— состояния линейки в таблице блокировки для опроса линейки. Остальные переменные R,R,R,R вычисляются в процессе работы алгоритма и поясняются по ходу его рассмотрения. Верхний индекс в алгоритме означает текущий номер обслуживаемой линейки, который изменяется в соответствии с оператором 20 этого алгоритма. Алгоритм начинается с периодического запуска таймера. В данном случае выбран период запуска 10 мс, что гарантирует чтение наиболее короткого сигнала (импульса дискового набора номера) от 2 до 3 раз. Многократный опрос в дальнейшем позволяет отличить реальный сигнал от помехи. В начале алгоритма выполняются операторы 1-7, обрабатывающие буфер заявок, поступивших от уже начавшихся процессов. Такой приоритет в обработке позволяет не ставить на обслуживание новые заявки, чтобы избежать перегрузки алгоритмов обработки. Данный участок алгоритма определяет наличие сигналов, которые ожидает остановленный после перехода процесс. Алгоритм при этом доставляет в процесс сигнал ВХОД. Второй участок содержит операторы 8-12, выявляющие наличие изменений в состоянии внешней среды. Принцип его работы заключается в том, что сопоставляются предыдущее состояние линеек R1 и последующее R2 и определяется, есть ли изменения по сравнению с предыдущим моментом времени. Например, если в некоторый десятимиллисекундный цикл к: R= 00101101, a R= 10010101, то R= R R= 10111000. Разряды результата, равные единице, говорят о наличии изменения, при этом следует обратить внимание на то, что отмечены два типа перехода — из 1 в 0 и из 0 в 1. Рис. 4 Алгоритм сканирования
При многих процессах важна не только информация о наличии изменения, необходимо также различать его тип. Например, переход из 0 в 1 обозначает «вызов», а обратный переход — «отбой». При приеме номера фиксация цифры может происходить по переднему или заднему фронту. В связи с этим производятся следующие действия. Для определения перехода из 1 в 0 проводится операция поразрядного умножения R3 и R: R3 = 10111000 R1 = 00101101 R4 = R3 & R1= 00101000. Из этого результата должны быть исключены заблокированные точки. Формируется массив блокировок R0.. Одно слово из этого массива считывается. В нем 0 означает, что точка сканирования заблокирована, а 1 — что она находится в работе. Для исключения блокированных точек R4 логически умножается на R0. После чего получается массив R5, содержащий незаблокированные точки сканирования, которые изменили свои состояния из 1 в 0. R4 = 00101000 R0= 11001111 R5 = R4&R0 = 0000 1000 Единичное значение разрядов указывает на переход из 1 в 0. Далее определяются разряды, изменившие свое состояние из 0 в 1. Для этого выполняется операция сложения по модулю 2 над числами R4 и R3: R4 = 0010 1000 R3= 1011 1000 R6=R4 R3= 1001 0000 Исключая блокированные точки получаем массив R7: R6=1001 0000 R0= 1100 1111 R7 = R6 &R0= 1000 0000 Результат сканирования содержится в словах R5 (переход из 1 в 0) и R7 (переход из 0 в 1). Следующие операторы (13-18) обеспечивают получение координат комплектов, в которых произошли изменения. После этого каждому слову массива предыдущих состояний присваивается значение текущего, чтобы подготовить последующие циклы (оператор 19). Дальнейшие действия (операторы 20 и 21) связаны с переходом к следующей строке сканирования или завершением процесса при проверке последней линейки. Алгоритм завершается переходом в исходное состояние.
Дата добавления: 2014-01-14; Просмотров: 566; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |