2012-01-06 11 views
0

I ont une composante, qui effectue les opérations suivantesDégénérescence due au changement de contexte et au débordement dans le modèle ci-dessous?

  1. accepter un message unique sur le réseau en utilisant un protocole personnalisé construit sur TCP/IP de la source A
  2. traiter le message (faut environ 500 micro secondes)
  3. envoie le message sur le réseau à un autre composant, par exemple point d'extrémité B, en utilisant le protocole personnalisé construit sur tcp/ip
  4. reçoit ACK du point d'extrémité B
  5. envoie ACK à la source a

Rincer et répéter les 5 étapes ci-dessus. Il est important de comprendre que la source A n'enverra pas un deuxième message, jusqu'à ce qu'elle reçoive un ACK pour le message précédent.

Comme vous pouvez le voir le processus est ralenti dans les cas suivants

  1. temps pour la source A envoyer un message via le réseau au composant. La source A et le composant sont dans le même VLAN, ethernet.

  2. Temps nécessaire au composant pour envoyer un message traité au point de terminaison B. Le point de terminaison B se trouve également dans le même VLAN connecté via Ethernet.

  3. temps pour le composant pour recevoir un accusé de réception du point final B.

  4. temps pour le composant d'envoyer un accusé de réception à la source A.

ci-dessus était la description de la responsabilité du composant. Du point de vue du déploiement, j'ai l'intention de faire apparaître 100 de ces composants sur une seule machine à 8 cœurs. Rien d'autre ne fonctionnerait sur la machine. Le point d'extrémité B et la source A se trouvent sur des machines différentes et tout est dans le même réseau Ethernet. Ma question est que le modèle ci-dessus d'engendrer un grand nombre de composants, qui passent le plus clair de leur temps à attendre les E/S du réseau, provoque-t-il le raclement de contexte? Si oui, pourquoi?

Répondre

0

Je ne sais pas pourquoi vous êtes inquiet. D'abord, vous concevez un protocole inefficace, puis vous vous inquiétez de la vitesse à laquelle cela va se passer? Mesurez-le, c'est le seul moyen d'en être sûr.

Je doute qu'un simple 100 threads ou processus entraînera des problèmes avec le taux de changement de contexte.

+0

Tous les composants sont d'abord en Ethernet 1 Gb. Ainsi, même si le composant attend l'E/S réseau, la latence globale introduite en raison du réseau sera de quelques microsecondes. Ainsi, le système d'exploitation va faire beaucoup de travail de commutation de processus sur et en dehors de la file d'attente d'exécution. – Jimm

Questions connexes