8.20. Алгоритмы параллельного сервера

Опубликовано в Технологии > Серверные технологии

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

  • для формирования ответа требуется выполнение значительного объема операций ввода/вывода;
  • требуемое время обработки запросов резко изменяется от одного запроса к другому;
  • сервер работает на компьютере с несколькими процессорами.

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

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

8.21. Один ведущий и несколько ведомых потоков

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

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

Похожие статьи