Aller au contenu principal

IV. Le NCP - Structure générale

Nous considérons que le NCP comporte cinq programmes composants, plusieurs tables associatives, ainsi que des files d'attente et des tampons.

Les programmes composants (voir Fig. 4.1)​

1. Le gestionnaire d'entrée​

Il s'agit d'une routine pilotée par interruptions. Elle lance la transmission IMP-vers-hôte dans un tampon résident et réveille l'interpréteur d'entrée lorsque la transmission est terminée.

2. Le gestionnaire de sortie​

Il s'agit d'une routine de sortie pilotée par interruptions. Elle lance la transmission hôte-vers-IMP à partir d'un tampon résident et réveille l'ordonnanceur de sortie lorsque la transmission est terminée.

3. L'interpréteur d'entrée​

Ce programme détermine si l'entrée est un message ordinaire destiné à un utilisateur, un message de contrôle réseau, un message IMP-vers-hôte ou une erreur. Pour chaque classe de message, ce programme invoque une sous-routine chargée d'entreprendre l'action appropriée.

4. L'ordonnanceur de sortie​

Trois classes de messages sont envoyées à l'IMP

  • (a) Messages hôte-vers-IMP
  • (b) Messages de contrôle
  • (c) Messages ordinaires

Nous estimons qu'une priorité devrait être imposée entre ces classes. La priorité que nous suggérons est l'ordre ci-dessus. L'ordonnanceur de sortie sélectionne le message de plus haute priorité et le transmet au gestionnaire de sortie.

Les messages hôte-vers-IMP sont traités selon l'ordre d'arrivée (premier arrivé, premier servi). Les messages de contrôle sont traités individuellement par hôte, chaque hôte étant pris à tour de rôle. Une file de messages de contrôle est prévue pour chaque hôte distant. Lorsqu'un hôte donné est ordonnancé pour la sortie, autant de commandes de contrôle destinées à cet hôte qu'il est possible d'en loger sont concaténées en un seul message. Les messages ordinaires sont traités par groupes selon l'hôte et le lien, chaque combinaison unique étant prise à tour de rôle.

5. L'interpréteur des appels système​

Ce programme interprète les requêtes de l'utilisateur. Chaque appel système dispose d'une routine correspondante qui entreprend l'action appropriée.

Les deux composants intéressants sont l'interpréteur d'entrée et l'interpréteur des appels système. Ils sont similaires en ce que l'interpréteur d'entrée traite les requêtes distantes et l'interpréteur des appels système traite les requêtes locales.

Le diagramme de la Figure 4.1 représente notre conception du programme de contrôle du réseau. Les objets mous en forme d'amibe représentent les programmes composants, les cylindres représentent les files d'attente et les flèches représentent les chemins de données. Dans ce diagramme simplifié, les tables ne sont pas représentées. [Les objets « en forme d'amibe » du dessin original à main levée sont désormais des rectangles pleins : Éd.]

Les libellés abrégés de la figure ont les significations suivantes :

  • HIQ: File hôte-vers-IMP
  • OCCQ: File des commandes de contrôle de sortie
  • DQ: File de données
  • IHBUF: Tampon du gestionnaire d'entrée
  • OHBUF: Tampon du gestionnaire de sortie
             ____________
            |    USER    |    STRUCTURE OF THE NETWORK CONTROL PROGRAM
            |____________|
               ^      |                      Fig. 4.1
          _____|______V____
         |                 |
         |     System      |
         |      Call       |
         |   Interpreter   |
         |_________________|              _____________
            ^  |      |                  |             |
            |  |      |  +---------------|    Input    |
            |  |      |  |         +-----| Interpreter |
            |  |      |  |         |     |             |
            |  V      V  V         V      -------------
          |======| |=========| |=======|     |      ^
          | D Q  | | O C C Q | | H I Q |     |      |
          |======| |=========| |=======|     |      |
            |  ^        |          |         |      |
            |  |        |          |         |      |
            |  +--------)----------)---------+      |
            |           |          |                |
            +-------+   |   +------+                |
                  __V___V___V__                     |
                 |             |                    |
                 |   Output    |                    |
                 |  Scheduler  |                    |
                 |_____________|                    |
                        |                           |
                        V                           |
                  (===========)               (===========)
                  ( O H B U F )               ( I H B U F )
                  (===========)               (===========)
                        |                           ^
                  ______V______               ______|______
                 |             |             |             |
                 |   Output    |             |    Input    |
                 |   Handler   |             |   Handler   |
                 |             |             |             |
                  -------------               -------------
                        |                           ^
                        |                           |
                        +----------+    +-----------+
                                   |    |
                               ____V____|____
                              |              |
                              |     I M P    |
                              |______________|