Passa al contenuto principale

1. Introduzione

Se si lavora per sviluppare metodi di comunicazione all'interno di una rete di calcolatori, ci si può dedicare a una di due attività. Si può lavorare con altri, costruendo davvero una rete di calcolatori, subendo influenze e forse influenzando i colleghi. Oppure si può costruire una posizione intellettuale su come le cose dovrebbero essere fatte in una rete ideale, migliore di quella alla cui costruzione si sta contribuendo, e poi presentare tale posizione ai progettisti delle reti future perché la studino. L'autore ha passato gli ultimi due anni dedicandosi alla prima attività. Questo articolo nasce da una recente partecipazione alla seconda attività.

"Una rete di calcolatori con condivisione di risorse è definita come un insieme di sistemi di calcolatori autonomi e indipendenti, interconnessi in modo da consentire a ciascun sistema di calcolatori di utilizzare tutte le risorse degli altri sistemi di calcolatori, all'incirca come chiamerebbe normalmente un sottoprogramma." Questa definizione di rete e l'opportunità di una tale rete sono esposte da Roberts e Wessler in [9].

L'atto stesso della condivisione di risorse può essere compiuto in due modi: in maniera estemporanea (ad hoc) tra tutte le coppie di sistemi di calcolatori della rete, oppure secondo uno standard sistematico valido per tutta la rete. Questo articolo sviluppa un possibile sistema, valido per tutta la rete, per la condivisione di risorse.

Ritengo naturale considerare le risorse come associate a processi<1> e disponibili soltanto attraverso la comunicazione con tali processi. Considero quindi il problema fondamentale della condivisione di risorse come il problema della comunicazione tra processi. Condivido inoltre il punto di vista di Carr, Crocker e Cerf [2], secondo cui la comunicazione tra processi su una rete è un caso particolare della comunicazione tra processi in generale in un ambiente multiprogrammato.

Queste opinioni mi hanno portato a svolgere uno studio in due parti. La prima costruisce un insieme di operazioni che consentono la comunicazione tra processi all'interno di un singolo sistema time-sharing. Questo insieme di operazioni scarta molte delle tecniche di comunicazione tra processi attualmente in uso nei sistemi time-sharing -- come la comunicazione attraverso memoria condivisa -- e si affida invece a tecniche che si generalizzano facilmente per permettere la comunicazione tra processi remoti. La seconda parte dello studio presenta una tale generalizzazione. Viene inoltre discusso l'impiego di questo sistema generalizzato sulla rete di calcolatori ARPA [9].

Le idee sviluppate in questo articolo provengono da molte fonti. Particolarmente influenti sono stati -- 1) un primo abbozzo di un protocollo Host per la rete ARPA di S. Crocker dell'UCLA e W. Crowther di Bolt Beranek and Newman Inc. (BBN); 2) l'articolo di Ackerman e Plummer sul sistema time-sharing PDP-1 del MIT [1]; e 3) le discussioni con W. Crowther e R. Kahn di BBN sul protocollo Host, sul controllo di flusso e sull'instradamento dei messaggi per la rete ARPA. Spero vi siano anche alcune idee originali in questa nota. Sono io solo responsabile della raccolta di tutte queste idee nel sistema qui descritto, e sono quindi responsabile di qualsiasi incoerenza o difetto del sistema.

Va sottolineato che questo articolo non rappresenta una posizione ufficiale della BBN sul protocollo Host per la rete di calcolatori ARPA.