Si è già visto come una rete sia caratterizzabile in termini di nodi e connessioni fra di essi. Delle caratteristiche e peculiarità di ciascun singolo nodo si è già parlato durante i corsi di Architetture e Sistemi Operativi.
Si vuole, invece, approfondire gli aspetti che determinano il funzionamento degli eleaboratori come facenti parte di una struttura più complessa che prende il nome di rete di elaboratori il cui intento è quello di fornire servizi analogamente a quanto accade per un singolo elaboratore (ad esempio, mainframe).
Introduciamo, allora, il concetto di sistema come astrazione di un sistema di calcolo considerandone le sue caratteristiche salienti che sono, come è noto, i processi e le risorse. Possiamo dare la seguente definizione.
Si dice sistema un qualunque insieme di processi e risorse il cui scopo è quello di consentire ai processi di esistere utilizzando un insieme base di risorse fornite come hardware.
Senza perdita di generalità possiamo suppore di associare a ciascuna risorsa un processo, il gestore della risorsa, per il suo corretto utilizzo. In questo modo l'accesso alla risorsa deve essere realizzato per esplicita richiesta al suo gestore.
E' noto che i processi sono programmi in esecuzione e che, per questo, necessitano di uno spazio di memoria centrale (CM) in cui caricare l'immagine del loro eseguibile e di una unità di elaborazione (CPU). In generale, poi, bisogna disporre di ulteriore memoria per caricare e manipolare i dati del programma. Per mantenere permanentemente i prgrammi e i relativi dati è necessario, infine, disporre di spazio su disco (HD). L'eventuale comunicazione col mondo esterno è ottenuta mediante opportuni dispositivi (console, terminali alfanumerici e grafici, ecc...) che indicheremo brevemente con TTY.
Esistono ovviamente altri tipi di periferiche, come stampanti, scanner, lettori di CD-ROM, lettori nastro, ecc... ma queste verranno volutamente ignorate senza, per questo, inficiare il discorso. A questo punto definiamo i nodi come particolari aggregazioni di processi e risorse del sistema. Specificatamente,
Si dice nodo un qualunque sottoinsieme del sistema assegnato comprendente, quindi, sia processi che risorse, in grado di autosostenersi.
Col termine autosostenersi si intende la capacità del nodo a gestire opportunamente le proprie risorse in modo da permettere ai suoi processi un corretto ambiente di funzionamento. Questo è possibile se il nodo è formato dalle risorse hardware < MC, CPU, HD, TTY >, di cui le prime due sono assolutamente necessarie mentre le rimanenti sono facoltative purchè, come vedremo, il nodo faccia parte di una rete. Ad essi si devono aggiungere i relativi gestori che sono, come è noto il kernel per le prime due e il file-system per la terza. Relativamente all'ultima si parla genericamente di driver.
A seconda degli impieghi specifici del nodo, su di esso sono realizzate ulteriori risorse e relativi gestori (processi) fino all'interfaccia realmente visibile dall'eventuale utente umano. Tale insieme di processi e risorse che gestiscono il corretto funzionamento del nodo prende il nome di sistema operativo. Piuttosto che indicare l'insieme delle risorse hardware di un singolo nodo con la quadrupla < CPU, CM, HD, TTY > si può utilizzare il seguente schema grafico
nel quale è stato evidenziato
Diremo sistema a risorse concentrate qualunque sistema che possa ridursi ad un singolo nodo.
Se un sistema non può ridursi ad un singolo nodo vuol dire che sono presenti risorse hardware in numero maggiore, sempre organizzate in aggregati < MC, CPU, HD, TTY > le quali, in virtù degli opportuni gestori, forniscono isolatamente l'appropriato ambiente di esecuzione per i processi di quel nodo.
La differenza fondamentale fra un sistema a nodo singolo rispetto ad un sistema costituito da più nodi è che, nel primo caso, ogni coppia di processi è potenzialmente in grado di cooperare mediante scambio di opportune informazioni che possono essere segnali temporali (semafori) o veri e propri messaggi (porte e mailbox). Questo è reso possibile dal fatto che tutti i processi in esecuzione su un nodo possono utilizzare la memoria centrale (CM) come mezzo trasmissivo delle informazioni.
Ciò non è possibile nel caso di più nodi a meno che questi non vengano immersi in un opportuno mezzo trasmissivo e siano dotati dei dispositivi di accesso del caso. Nelle situazioni in cui non è richiesto un'elevata velocità di trasferimento di dati è possibile utilizzare la connessione di periferica TTY, ad esempio, la porta RS232. La situazione è quella che appare nella figura,
nella quale è stata evidenziato, oltre al bus interno che connette i vari dispositivi hardware propri del nodo,
Vale la pena ossevare che il NAC è un dispositivo facilmente identificabile all'interno dell'elaboratore e prende il nome di "scheda di rete". Un esempio tipico è la scheda ETHERNET che realizza il protocollo di connessione 802.3.
L'architettura di una rete di elaboratori deve essere in grado di permettere la comunicazione e la cooperazione fra due processi indipendentemente dal modo con cui sono realizzate le connessione fra i diversi nodi costituenti la rete (topologia) e dalle convenzioni utilizzate per il trasferimento dei dati (protocolli).
Per raggiungere questo scopo, l'Organizzazione Internazionale per la Standardizzazione (ISO) ha proposto un modello a strati, genericamente definito come Interconnessione fra Sistemi Aperti (OSI), nel quale il problema della comunicazione fra processi in un sistema a risorse distribuite, viene affrontato su diversi livelli ciascuno dei quali affronta un aspetto specifico della comunicazione.
La scelta di una tale suddivisione e, in particolare, l'OSI propone ben & livelli, è dovuta alla complessa problematicità coinvolta nei meccanismi di comunicazione fra processi, in esecuzione su elaboratori diversi, di per sè già complessi presi isolatamente.
I livelli introdotti sono quelli riportati nella figura
tenendo presente che la definizione di ciascun livello prevede l'introduzione di protocolli ed interfacce con i livelli adiacenti in modo che la comunicazione vista a quel livello sia autoesplicativa. Questo significa che si deve poter parlare delle funzionalità di ciascun livello senza fare riferimento agli altri livelli in modo da nasconderne i dettagli implementativi che, invece, compaiono passando da un livello all'altro quando si tratta di realizzare effettivamente l'interfaccia.
Poichè la scelta del sistema ISO-OSI non è stata puramente tecnico-scientifica ma ha tenuto conto delle architetture di rete proprietarie già esistenti, viene riportata di seguito una tabella che fa il confronto fra il sistema OSI, la rete Internet, la rete IBM su architettura SNA e la rete DIGITAL fase V, l'unica che attualmente si conforma allo standard OSI.
A conclusione di argomento si può dire che, mentre l'architettura OSI (Open System Interconnection) è lo standard "de iure" in via di completamento nell'ambito ISO, l'architettura definita come Internet Protocol Suite, ma meglio nota come TCP/IP, è la rete dei sistemi UNIX e rappresenta uno standard "de facto" attualmente impiegato per la rete Internet di estensione mondiale. Quest'ultima si contrappone alle architetture proprietarie SNA (System Network Architecture) e DNA (Digital Network Architecture), rispettivamente, degli elaboratori IBM e Digital Equipment Corporation.