Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

4.4 Алгоритмы работы с таблицей

Лекция



Привет, Вы узнаете о том , что такое алгоритмы работы с таблицей, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое алгоритмы работы с таблицей , настоятельно рекомендую прочитать все из категории Телекоммуникационные сервисы и устройства.

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

 

Таблица соответствий содержит переходы, записанные в виде чисел. Алгоритм работы с таблицей заключается в том, что выполняются две задачи.

 
  1. По заданной паре ВХОД-СОСТОЯНИЕ найти нужную строку таблицы соответствия.
  2. Выполнить действия в том порядке, который указан в строке, и в соответствии с содержанием установленного в ней номера.
 

Эти алгоритмы достаточно просты и далее не приводятся. Можно только отметить, что стремление оптимизации объема таблиц и их записи в памяти могут усложнить эти алгоритмы.

 
Многозадачность

Особенностью программного обеспечения устройств телекоммуникаций является необходимость реализации многозадачного режима. Даже при децентрализованном управлении один процессор выполняет попеременно несколько задач, т. е. в управляющем устройстве АТС существуют сразу несколько процессов. Еще одна особенность — время старта этих задач непредсказуемо и зависит от внешних причин. Эта проблема решается следующим способом, применяемым для систем с многозадачной обработкой. Для каждого процесса, который обозначается в общем случае как "обработка вызова", отводится область памяти. В каждой из областей записывается глобальное состояние вызова. Оно не зависит от этапа, на котором находится вызов и которое обозначается, как мы видели, локальным состоянием, и отражает только этапы обработки. Он может принимать следующие значения: "свободно", "работа", "ожидание", "блокировка".

 

Состояние "свободно" присваивается, если область не занята вызовом.

 

Состояние "работа" — при выполнении процесса.

 

Состояние "ожидание" отмечает ожидание поступления внешнего сигнала.

 
4.4 Алгоритмы работы с таблицей

Рис. 4.5. Последовательность значений глобальных состояний вызова
 

Состояние "блокировка" отмечает аварийные процессы.

 

Система работает, изменяя состояния в порядке, показанном на рис. 4.5.

 
  1. Фаза ввода. На этом этапе проводится опрос внешних объектов (см. алгоритм сканирования). При поступлении сигнал ВХОД из внешней среды или другой сигнал записываются в специальные зоны памяти, называемые областями памяти процессов, в которую записывается этот сигнал3. В этой фазе глобальное состояние "свободно" (точнее, отсутствие записи в области "состояние") заменяется глобальным состоянием "ожидание" и переводится в очередь на выполнение.
  2. Фаза выполнения. При обращении к очереди областей памяти процессов, ожидающих обслуживания, процессор выбирает одну из них. Затем области памяти процесса присваивается глобальное состояние "работа" Обработка входного сигнала, как уже было рассмотрено ранее, заключается в выполнении перехода в соответствии со значением поступившего входного сигнала и локального состояния вызова, этапом обработки вызова. Об этом говорит сайт https://intellect.icu . Здесь имеются в виду локальные состояния, например "набор номера", "ожидание отбоя".
 

По этой паре выполняется обработка строки табличным алгоритмом с присвоением ему в конце работы локального состояния. После чего действие приостанавливается в ожидании нового входного сигнала.

 

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

 

При аварийном завершении, например если поступил сигнал превышения времени выполнения перехода или другой аварийный таймер, процесс переводится в состояние "блокировка". При восстановлении системы область памяти процесса, как правило, освобождается и ей присваивается состояние "свободно".

 

Согласно рассмотренному порядку, действия по обработке вызова можно представить в виде работы с тремя очередями (рис. 4.6).

 

На этом рисунке условно показаны порядок обработки областей памяти, организованных в виде очередей.

 

Очередь свободных процессов — это резерв всех свободных областей памяти, которые могут быть использованы для "порождаемых" процессов. Остальные соответствуют определениям фаз.

 

Очередь процессов, ожидающих сигнала, — области памяти, которые выполнили действия, установили следующее состояния и ожидают введения нового сигнала ВХОД.

 

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

 

Порядок обработки вызова следующий. При поступлении входного сигнала диспетчер ввода, в качестве которого выступает программа сканирования, распределяет его в одну из двух очередей.

 
4.4 Алгоритмы работы с таблицей

Рис. 4.6. Порядок многозадачной обработки процессов и взаимодействие очередей
 

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

 

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

 

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

 

Основные операции работы с очередью

Для установки в очередь, снятия, перевода в другую очередь используются стандартные процедуры работы со списком [3]. При этом можно применять операции со списками или с особым видом списка — очередью. Очередь — это список, в котором элементы добавляются с одного (конец очереди), а удаляются с другого конца (начало очереди), что несколько упрощает алгоритмы работы с ними.

 

Для работы со списками применяют следующие операции:

 
  • ВСТАВИТЬ В СПИСОК,
  • УДАЛИТЬ ИЗ СПИСКА,
  • ПЕРЕВЕСТИ ИЗ СПИСКА….. В СПИСОК …,
  • НАЙТИ.....
 

Для установки в список используется процедура ВСТАВИТЬ В СПИСОК, показанная на рис. 4.7.

 

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

 

На рис. 4.7б показан новый список со вставленным четвертым элементом. По исходным данным, содержащим адрес предыдущего элемента (элемент 3) и номер нового (элемент 4), понадобилось два действия:

 
  • изменить поле ("адрес") предыдущего в очереди элемента (это элемент 2);
  • в новом элементе (элемент 4) присвоить ячейке "адрес" число — адрес ссылки предыдущего элемента. Он равен адресу элемента, который теперь будет следовать за новым элементом (ссылка на элемент с адресом 3).
 
4.4 Алгоритмы работы с таблицей

Рис. 4.7. Принцип установки в список а) Исходный список; б) Список, после проведения операции "вставить"
 

Операция УДАЛИТЬ состоит в присвоении адресу ссылки предыдущего элемента адреса ссылки удаляемого элемента. Пример операцииУДАЛИТЬ — элемент 2 из очереди, показанной на рис. 4.8. Этот процесс приведен на рис. 4.7. В примере адрес ссылки удаляемого элемента 2 присвоен адресу ссылки элемента 1, стоящему перед ним.

 

Перенос вызова из одного списка в другой содержит в себе обе операции ( УДАЛИТЬ — ВСТАВИТЬ ).

 

Как уже было сказано, очередь — это специальный вид списка. Работа с очередью характеризуется выбранной дисциплиной обслуживания очереди. Простейшая и массовая дисциплина — "первым вошел — первым вышел".

 

При этой стратегии элементы списка нумеруются согласно порядку их поступления. Первый поступивший вызов в начале очереди получает номер 1, последний в конце получает номер в соответствии с длиной очереди.

 
4.4 Алгоритмы работы с таблицей

Рис. 4.8. Принцип удаления из списка
 

Для удобства работы с очередью вводится два указателя:

 
НАЧАЛО ОЧЕРЕДИ
КОНЕЦ ОЧЕРЕДИ
 

Для того чтобы ВСТАВИТЬ новый элемент в очередь, надо увеличить указатель КОНЕЦ СПИСКА на 1 ( КОНЕЦ ОЧЕРЕДИ:= КОНЕЦ ОЧЕРЕДИ+1) и его ВСТАВИТЬ В СПИСОК с полученным значением КОНЕЦ ОЧЕРЕДИ. Тогда новый элемент будет вставлен в конец очереди с очередным номером.

 

Для того чтобы УДАЛИТЬ ЭЛЕМЕНТ (взять его в обработку), надо увеличить указатель НАЧАЛО ОЧЕРЕДИ на 1 ( НАЧАЛО ОЧЕРЕДИ:= НАЧАЛО ОЧЕРЕДИ +1 ). Тогда, следующий элемент станет первым (продвинется в начало очереди).

 

Разность между номерами КОНЕЦ ОЧЕРЕДИ и НАЧАЛО ОЧЕРЕДИ показывает ДЛИНУ ОЧЕРЕДИ.

 

Поскольку увеличение номеров не должно быть бесконечным, то для списка длины l принято считать, что элемент, следующий за элементом с номером (l —1), имеет номер 0.

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

создано: 2016-04-01
обновлено: 2021-03-13
132437



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Телекоммуникационные сервисы и устройства

Термины: Телекоммуникационные сервисы и устройства