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

[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]

Предположим, что программы обработки вызовов, регулярно выполняемые вне зависимости от наличия или отсутствия телефонной нагрузки, расходуют 10% рабочего времени процессора, а сама обработка вызовов занимает дополнительно 30% рабочего времени процессора, что соответствует точке Т. В левой части рис. 9.2, где интенсивность телефонной нагрузки равна О, и обрабатываемых вызовов нет, общее рабочее время процессора, выделяемое для обработки вызовов, составляет только 10% рабочего времени, занимаемого регулярными программами. В правой части рис. 9.2, где интенсивность телефонной нагрузки равна Т, обработка вызовов занимает 40% рабочего времени процессора.

Заметим, что при интенсивности телефонной нагрузки Т опрос и обработка вызовов вместе занимают 100% рабочего времени процессора. Поскольку свободного рабочего времени не остается, интенсивность телефонной нагрузки Т определяют как предельную. Если интенсивность нагрузки превысит Т, процессор не сможет выполнить необходимый объем работы и перейдет в режим кратковременной перегрузки.

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

Рассмотрим интенсивность нагрузки, равную половине максимальной величины. В результате интерполяции между двумя крайними точками на рис. 9.2 получим, что опрос занимает 50% рабочего времени процессора, обработка вызовов - 25% этого времени, а 25% остается для техобслуживания. Хотя рис. 9.2 хорошо иллюстрирует зависимость распределения рабочего времени процессора от интенсивности телефонной нагрузки, он не показывает поведение программ в реальном времени. В 1 ESS и в машинах «Нева» оно определяется приоритетами.

В 1 ESS имеются приоритеты базового уровня, обозначаемые буквами от А до Е и I. Для предотвращения перегрузки периодическому сканированию абонентских линий назначается низкий приоритет D. В условиях обычной нагрузки сканирование абонентских линий выполняется каждые 100 мс Когда процессор очень занят, время между двумя чапускпми программ приоритета D может достигать



700 мс, и при этом экономятся шесть циклов сканирования. Единственная расплата за такую экономию -малозаметная задержка сигнала ответа станции при перегрузке системы.

Практически такое же решение было реализовано в конце 80-х годов в АТС DX-200, а затем и в АТСЦ-90, после того как лавиной телефонных поздравлений по случаю 8 Марта была остановлена одна из первых цифровых АТС в стране. Эффект, который дает это решение, иллюстрирует рис. 9.3.

с управлением нагрузкой


Поступающая нагрузка Рис. 9.3 Эффект программного управления нагрузкой АТС

И все же разработчики 1 ESS не только сильно недооценили трудности разработки программного обеспечения, но и сильно переоценили производительность своего процессора 1Е. Эти два важнейших вопроса, конечно, тесно связаны - если программа оказывается длиннее, чем ожидалось, время ее выполнения, по-видимому, становится больше, и требуется больше рабочего времени процессора, чем ожидалось. Хотя было обещано, что процессор 1Е будет управлять коммутационной станцией емкостью несколько сотен тысяч абонентских линий, первоначально процессор 1Е с трудом обслуживал несколько тысяч абонентских линий и вскоре был заменен более быстродействующим процессором 1 А. В отличие от этого, все процессоры «Нева» в до сих пор успешно работающих междугородных АМТС «Кварц», как и в выпущенном всего в единственном экземпляре транзитном узле ИВТУ, не достигли предельных значений производительности. Разные судьбы машин 1ESS и машин «Нева» были обусловлены отнюдь не техническими решениями



9.4 Технологические аспекты разработки программного обеспечения АТС

1ESS и ИВТУ были новаторскими работами, обобщенный опыт которых дал начало современной теории проектирования программного обеспечения реального времени.

Независимо от используемой теоретической модели, жизненный цикл программного обеспечения системы коммутации разделяется на четыре фазы:

• разработка,

• тестирование,

• внедрение,

• сопровождение,

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

Одной из ранних моделей разработки программного обеспечения является модель водопада (waterfall model), или, иначе, - каскадная модель, представленная на рис. 9.4. Дальнейшая эволюция этой модели, обусловленная, вчастности, рассматриваемыми в следующей главе требованиями надежности и эффективности эксплуатационного управления системами коммутации, а также необходимостью оперативного ввода новых телекоммуникационных услуг на основе их быстрого макетирования, привел к V-модели, являющейся развитием каскадной модели и представленной на рис. 9.5.

Функциональные спецификации АТС

Определение требований к ПО

Спецификации ПО

Программирование

Интеграция ПО в АТС и функциональное тестирование

Рис 9 4 Кос кадная модель разработки ПО



[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.0009