Главная  Системы коммутации 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [ 74 ] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103]

счислоиия, а мнемоника ассемблерных команд вполне привычно сочеталась с кириллицей.

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

Для управляемого ЭУМ «Нева» импульсно-временного транзитного узла ИВТУ, также рассмотренного в главе 6, был выбран-«ди-ный цикл сканирования всех комплектов, равный 10 мс. Результаты сканирования использовались для формирования очередей к программам обработки вызовов. При этом смысловое содержание вводимой из периферийныхуправляюших устройств (ПУУ) информации определялось по таблицам решений, которые составлялись для всех типов АТС, связанных с ИВТУ, и в которых учитывались способ передачи сигналов, скорость этой передачи и ряд других факторов. Проблемы реального времени обусловили разработку специализированной телефонной операционной системы (ТОС), основной частью которой являлась подсистема приоритетного обслуживания, определявшая последовательность вызова программ, к которым в данный момент имеются запросы. Все программы были распределены по абсолютным и относительным уровням приоритета. При этом программы сканирования и ввода вызывались на нулевом (высшем) уровне приоритета по расписанию, те. через заданные интервалы времени. Система приоритетного обслуживания проектировалась таким образом, чтобы, с одной стороны, обеспечить необходимую последовательность выполнения отдельных программ и, с другой, -сократить до минимума затраты времени на переключение программ, а вместе с тем и минимизировать объем памяти, необходимой для хранения отложенных программ.

Система прерывания содержала поле для запоминания сигналов прерывания, делившихся на 17 абсолютных приоритетных уровней, из которых наивысшим приоритетным уровнем обладал единственный аппаратный уровень; остальные 16 были программными. На каждом из абсолютных приоритетных уровней было предусмотрено до 256 относительных приоритетов, которые не вызывали прерывания текуших программ, но определяли порядок обслуживания программ данного уровня. Для определения оптимального числа уровней прерывания, распределения всех программ по абсолютным и относительным приоритетным уровням, определения размеров циклических массивов очередей заявок и решения других задач телефон мои опсрациомиои системы последняя должна была быть тщагель



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

Концептуально иные подходы к решению тех же задач программирования в реальном времени были разработаны для архитектуры программного обеспечения 1ESS. Время выполнения программ в процессоре 1 ESS распределяется между классами программ, которые отвечают за ввод/вывод с запуском от таймера, обработку вызовов и техническое обслуживание системы. Распределение времени процессора между этими тремя классами программ весьма подробно рассмотрено в книге Р.Томпсона [200]. Там указано, что сканирование свободных абонентских линий в 1 ESS производится каждые 100 мс, и что такая частота вызовов соответствует, в среднем, одному новому вызову во временном интервале опроса при интенсивности потока вызовов, составляющей 36000 вызовов в ЧНН. Если бы эти вызовы были распределены во времени строго равномерно (что невероятно), распределение рабочего времени процессора междутремя классами программ в интервале, равном 1 минуте, было бы гладким, равномерным и неизменным. В реальных условиях поток вызовов имеет случайный характер, а распределение рабочего времени процессора определяет усредненная величина - интенсивность нагрузки

На рис. 9.2 показано, как распределяется между тремя классами программ рабочее время процессора в зависимости от интенсивности телефонной нагрузки в системе. На оси у показано рабочее время процессора, а на осих- интенсивность телефонной нагрузки в системе. В левой стороне рис. 9.2 состояние системы соответствует 3 часам ночи, когда телефонная нагрузка практически равна 0. В правой стороне рисунка состояние системы соответствует часам наибольшей нагрузки, когда процессор с ней едва справляется. Цифры на рис. 9.2 условны, для простоты предполагается, что распределение рабочего времени процессора является линейной функцией интенсивности нагрузки.

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



и пр. в левой части рис. 9.2, которая соответствует нулевой телефонной нагрузке и отсутствию заявок, общее рабочее время процессора складывается только из времени опроса. Предположим, что программы опроса расходуют на каждое исполнение, в среднем, на 50% больше рабочего времени процессора при телефонной нагрузке 1, чем на их же исполнение при телефонной нагрузке 0. В таком случае рабочее время процессора, выделяемое программам опроса, в правой части рис. 9.2 возрастает до 60%.

50% 1

Реальное время

Опрос

Техобслуживание

Обработка вызовов

0.5 Т„

Интенсивность нагрузки

Рис. 9.2 Распределение рабочего времени управляющего процессора при разной интенсивности телефонной нагрузки на примере 1ESS

Расходование 40-60% рабочего времени только на поиск заявок может показаться неэффективным. Но лучшим показателем эффективности служит рабочее время процессора, затрачиваемое на обслуживание найденной заявки. Пусть п -среднее число заявок, найденных программами опроса в типовом 5-миллисекундном интервале времени. Если нагрузка мала, программы опроса расходуют 2 миллисекунды (40%) из 5 миллисекунд интервала и, возможно, находят только п=1 заявку. На одну найденную заявку расходуется 2 мс. Если нагрузка большая, программы опроса расходуют 3 мс (60%) из 5 миллисекунд интервала, но могут найти и п=60 заявок. На одну найденную заявку, в среднем, израсходуется 0.05 мс. В том случае, когда ввод/вывод запускается прерыванием, и на каждое прерывание расходуется дополнительно 0.1 мс рабочего времени, одна задача расходует 0.1 мс, а 60 задач расходуют 6 мс. Таким образом, ввод/ вывод с запуском от прерывания может быть в 20 раз эффективней ввода/вывода с запуском от таймера при малой телефонной нагрузке, но при высокой телефонной нагрузке он вдвое менее эффективен. Поскольку архитектуру определяет ситуация с высокой интенсивностью телефонной нагрузки - эффективность важна только для загруженной системы программного управления, а когда интенсивность телефонной нагрузки невысока - рабочее время управляющего процессора экономить незачем, потому что у процессора все равно моммог о рабогы



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [ 74 ] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103]

0.001