Лекция
Привет, Вы узнаете о том , что такое алгоритмы работы с таблицей, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое алгоритмы работы с таблицей , настоятельно рекомендую прочитать все из категории Телекоммуникационные сервисы и устройства.
Таблица дает возможность разработать программную шину или универсальную программу в указанном математикой смысле, т. е. она позволяет кодировать и декодировать номера алгоритмов, которые могут быть записаны и допустимы на языке SDL. Это дает большие преимущества и, в частности, то, что выполнение заданного алгоритма не программируется, а кодируется и вносится как данные для программы обработки таблицы. Поэтому их выполнение не нужно записывать в операторах языка программирования, на котором выполнена программа работы с таблицей, Она имеет и другие, уже упомянутые преимущества, которые предоставляет программная шина.
Таблица соответствий содержит переходы, записанные в виде чисел. Алгоритм работы с таблицей заключается в том, что выполняются две задачи.
Эти алгоритмы достаточно просты и далее не приводятся. Можно только отметить, что стремление оптимизации объема таблиц и их записи в памяти могут усложнить эти алгоритмы.
Особенностью программного обеспечения устройств телекоммуникаций является необходимость реализации многозадачного режима. Даже при децентрализованном управлении один процессор выполняет попеременно несколько задач, т. е. в управляющем устройстве АТС существуют сразу несколько процессов. Еще одна особенность — время старта этих задач непредсказуемо и зависит от внешних причин. Эта проблема решается следующим способом, применяемым для систем с многозадачной обработкой. Для каждого процесса, который обозначается в общем случае как "обработка вызова", отводится область памяти. В каждой из областей записывается глобальное состояние вызова. Оно не зависит от этапа, на котором находится вызов и которое обозначается, как мы видели, локальным состоянием, и отражает только этапы обработки. Он может принимать следующие значения: "свободно", "работа", "ожидание", "блокировка".
Состояние "свободно" присваивается, если область не занята вызовом.
Состояние "работа" — при выполнении процесса.
Состояние "ожидание" отмечает ожидание поступления внешнего сигнала.
Состояние "блокировка" отмечает аварийные процессы.
Система работает, изменяя состояния в порядке, показанном на рис. 4.5.
По этой паре выполняется обработка строки табличным алгоритмом с присвоением ему в конце работы локального состояния. После чего действие приостанавливается в ожидании нового входного сигнала.
При успешном выполнении этих действий вызову присваивается снова состояние "ожидание" (на рис. 4.5 возможность возврата указывается двухсторонней стрелкой), и он возвращается в очередь ожидающих процессов. Если этот переход был завершающим для процесса (например, "разъединение"), то область памяти освобождается и ей присваивается значение "свободно".
При аварийном завершении, например если поступил сигнал превышения времени выполнения перехода или другой аварийный таймер, процесс переводится в состояние "блокировка". При восстановлении системы область памяти процесса, как правило, освобождается и ей присваивается состояние "свободно".
Согласно рассмотренному порядку, действия по обработке вызова можно представить в виде работы с тремя очередями (рис. 4.6).
На этом рисунке условно показаны порядок обработки областей памяти, организованных в виде очередей.
Очередь свободных процессов — это резерв всех свободных областей памяти, которые могут быть использованы для "порождаемых" процессов. Остальные соответствуют определениям фаз.
Очередь процессов, ожидающих сигнала, — области памяти, которые выполнили действия, установили следующее состояния и ожидают введения нового сигнала ВХОД.
Очередь процессов, ожидающих обработки, — это области памяти, в которые записан входной сигнал, и они ожидают процедуры обработки строки табличного алгоритма.
Порядок обработки вызова следующий. При поступлении входного сигнала диспетчер ввода, в качестве которого выступает программа сканирования, распределяет его в одну из двух очередей.
Если это первичный сигнал, то занимается одна из областей памяти процессов в очереди свободных процессов, устанавливается вместо состояния "свободно" состояние "ожидание" и процесс переводится в очередь процессов, ожидающих обработки.
Если этот процесс уже существует, что определяется заявкой на сканирование (см. "Алгоритмы отдельных функций, выполняемые в станциях с программным управлением" — "Алгоритмы сканирования"), то после записи поступившего входного сигнала процесс переводится в очередь процессов, ожидающих обработки. В нем записывается состояние "ожидание".
После того как процесс будет выбран из очереди, выполняются программы выбора и обработки одного процесса (записывается состояние "работа"). В случае успешного окончания обработки процесс может быть помещен в очередь ожидающих с установкой заявки на сканирование очередного входного сигнала либо в очередь свободных процессов (при окончании обслуживания).
Для установки в очередь, снятия, перевода в другую очередь используются стандартные процедуры работы со списком [3]. При этом можно применять операции со списками или с особым видом списка — очередью. Очередь — это список, в котором элементы добавляются с одного (конец очереди), а удаляются с другого конца (начало очереди), что несколько упрощает алгоритмы работы с ними.
Для работы со списками применяют следующие операции:
Для установки в список используется процедура ВСТАВИТЬ В СПИСОК, показанная на рис. 4.7.
На рис. 4.7а показана реализация списка. Поле "элемент" содержит информацию об объекте, записанном в список. Поле "адрес" позволяет проводить операции с элементами списка. Каждый предыдущий элемент содержит ссылку (адрес) на последующий. Там же показана необходимость вставки четвертого элемента между вторым и третьим. Место указано произвольно, и, как мы увидим, процедура одинакова для всех мест и не зависит от длины списка.
На рис. 4.7б показан новый список со вставленным четвертым элементом. По исходным данным, содержащим адрес предыдущего элемента (элемент 3) и номер нового (элемент 4), понадобилось два действия:
Операция УДАЛИТЬ состоит в присвоении адресу ссылки предыдущего элемента адреса ссылки удаляемого элемента. Пример операцииУДАЛИТЬ — элемент 2 из очереди, показанной на рис. 4.8. Этот процесс приведен на рис. 4.7. В примере адрес ссылки удаляемого элемента 2 присвоен адресу ссылки элемента 1, стоящему перед ним.
Перенос вызова из одного списка в другой содержит в себе обе операции ( УДАЛИТЬ — ВСТАВИТЬ ).
Как уже было сказано, очередь — это специальный вид списка. Работа с очередью характеризуется выбранной дисциплиной обслуживания очереди. Простейшая и массовая дисциплина — "первым вошел — первым вышел".
При этой стратегии элементы списка нумеруются согласно порядку их поступления. Первый поступивший вызов в начале очереди получает номер 1, последний в конце получает номер в соответствии с длиной очереди.
Для удобства работы с очередью вводится два указателя:
НАЧАЛО ОЧЕРЕДИ КОНЕЦ ОЧЕРЕДИ
Для того чтобы ВСТАВИТЬ новый элемент в очередь, надо увеличить указатель КОНЕЦ СПИСКА на 1 ( КОНЕЦ ОЧЕРЕДИ:= КОНЕЦ ОЧЕРЕДИ+1) и его ВСТАВИТЬ В СПИСОК с полученным значением КОНЕЦ ОЧЕРЕДИ. Тогда новый элемент будет вставлен в конец очереди с очередным номером.
Для того чтобы УДАЛИТЬ ЭЛЕМЕНТ (взять его в обработку), надо увеличить указатель НАЧАЛО ОЧЕРЕДИ на 1 ( НАЧАЛО ОЧЕРЕДИ:= НАЧАЛО ОЧЕРЕДИ +1 ). Тогда, следующий элемент станет первым (продвинется в начало очереди).
Разность между номерами КОНЕЦ ОЧЕРЕДИ и НАЧАЛО ОЧЕРЕДИ показывает ДЛИНУ ОЧЕРЕДИ.
Поскольку увеличение номеров не должно быть бесконечным, то для списка длины l принято считать, что элемент, следующий за элементом с номером (l —1), имеет номер 0.
В заключение, эта статья об алгоритмы работы с таблицей подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое алгоритмы работы с таблицей и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Телекоммуникационные сервисы и устройства
Комментарии
Оставить комментарий
Телекоммуникационные сервисы и устройства
Термины: Телекоммуникационные сервисы и устройства