Passa al contenuto principale

IV. L’NCP - Struttura generale

Consideriamo l’NCP come composto da cinque programmi componenti, diverse tabelle associative e alcune code e buffer.

I programmi componenti (vedi Fig. 4.1)​

1. Il gestore dell’input​

Si tratta di una routine guidata da interrupt. Avvia la trasmissione dall’IMP all’host verso un buffer residente e risveglia l’interprete di input quando la trasmissione è completata.

2. Il gestore dell’output​

Si tratta di una routine di output guidata da interrupt. Avvia la trasmissione dall’host all’IMP da un buffer residente e risveglia lo scheduler dell’output quando la trasmissione è completata.

3. L’interprete di input​

Questo programma stabilisce se l’input è un messaggio ordinario destinato a un utente, un messaggio di controllo di rete, un messaggio dall’IMP all’host oppure un errore. Per ciascuna classe di messaggio questo programma invoca una subroutine che intraprende l’azione appropriata.

4. Lo scheduler dell’output​

All’IMP vengono inviate tre classi di messaggi

  • (a) Messaggi dall’host all’IMP
  • (b) Messaggi di controllo
  • (c) Messaggi ordinari

Riteniamo che tra queste classi debba essere imposta una priorità. La priorità che suggeriamo è l’ordine indicato sopra. Lo scheduler dell’output seleziona il messaggio con la priorità più alta e lo passa al gestore dell’output.

I messaggi dall’host all’IMP vengono elaborati in ordine di arrivo. I messaggi di controllo vengono elaborati singolarmente per host, servendo ogni host a turno. È prevista una coda dei messaggi di controllo per ciascun host remoto. Quando un determinato host viene schedulato per l’output, tutti i comandi di controllo per quell’host che possono starci vengono concatenati in un unico messaggio. I messaggi ordinari vengono elaborati a gruppi per host e link, servendo a turno ogni combinazione distinta.

5. L’interprete delle chiamate di sistema​

Questo programma interpreta le richieste dell’utente. A ogni chiamata di sistema corrisponde una routine che intraprende l’azione appropriata.

I due componenti interessanti sono l’interprete di input e l’interprete delle chiamate di sistema. Sono simili nel senso che l’interprete di input serve le richieste remote e l’interprete delle chiamate di sistema serve le richieste locali.

Il diagramma della Figura 4.1 rappresenta la nostra concezione del Network Control Program. Gli oggetti molli simili ad amebe rappresentano i programmi componenti, i cilindri rappresentano le code e le frecce rappresentano i percorsi dei dati. In questo diagramma semplificato le tabelle non sono mostrate. [Gli oggetti "simili ad amebe" del disegno a mano originale sono ora riquadri rettangolari rigidi: N.d.R.]

Le etichette abbreviate nella figura hanno i seguenti significati:

  • HIQ: Coda dall’host all’IMP
  • OCCQ: Coda dei comandi di controllo in output
  • DQ: Coda dei dati
  • IHBUF: Buffer del gestore dell’input
  • OHBUF: Buffer del gestore dell’output
             ____________
            |    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    |
                              |______________|