Вырождение от переключения контекста к побеждению в приведенной ниже модели? - PullRequest
0 голосов
/ 06 января 2012

У меня есть компонент, который выполняет следующие действия:

  1. Принять одно сообщение по сети, используя пользовательский протокол, построенный по tcp / ip из источника A
  2. Обработка сообщения (занимает примерно500 микросекунд)
  3. Отправляет сообщение по сети в другой компонент, скажем, в конечную точку B, используя пользовательский протокол, построенный по протоколу tcp / ip
  4. Получает ACK от конечной точки B
  5. ОтправляетПодтвердите источник A

Промойте и повторите 5 вышеуказанных шагов.Важно понимать, что источник A не будет отправлять второе сообщение, пока не получит ACK для предыдущего сообщения.

Как вы можете видеть, процесс бездействует в следующих случаях

  1. Время, когда источник A отправит компоненту одно сообщение по сети.И источник A, и компонент находятся в одной VLAN, Ethernet.

  2. Время, в течение которого компонент отправляет обработанное сообщение в конечную точку B. Конечная точка B также находится в той же VLAN, подключенной через Ethernet.

  3. Время, в течение которого компонент получает ACK от конечной точки B.

  4. Время, в течение которого компонент отправляет ACK в источник A.

Выше было описание ответственности компонента.С точки зрения развертывания я планирую создать 100 таких компонентов на одном 8-ядерном компьютере.Ничто другое не будет работать на машине.И конечная точка B, и источник A находятся на разных компьютерах, и все находится в одном и том же Ethernet.Мой вопрос заключается в том, что приведенная выше модель порождения большого количества компонентов, которые проводят большую часть своего времени в ожидании ввода-вывода в сети, вызывает перегрузку контекста?Если да, то почему?

1 Ответ

0 голосов
/ 06 января 2012

Я не уверен, почему вы беспокоитесь. Сначала вы разрабатываете неэффективный протокол, а потом беспокоитесь о его скорости?

Измерь, это единственный способ быть уверенным.

Я сомневаюсь, что только 100 потоков или процессов вызовут какие-либо проблемы со скоростью переключения контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...