Real-time e reti di comunicazione Flashcards
Problematica del real-time su reti di calcolatori (sistemi distribuiti)
- In sistemi distribuiti ci sono varie macchine che si dividono i processi da eseguire
- Devono comunicare tra loro
- Tempo di comunicazione diventa importante per garantire real-time
- Se un processo è prioritario rispetto ad un altro, e questi due processi vengono eseguiti su CPU diverse, va considerato anche il tempo di comunicazione
Modi di commutazione e considerazioni sul real-time
- Commutazione di circuito: due host bloccano il mezzo trasmissivo (BUS) per tutta la durata della comunicazione (scambio di messaggi).
Non adatto al real time, perché il bus può essere occupato per un tempo arbitrariamente lungo e impredicibile - Commutazione di messaggio: mezzo trasmissivo bloccato per tutta la durata di un messaggio.
Non adatto al real-time, anche in questo caso bus occupato per un tempo arbitrariamente lungo - Commutazione di pacchetto: blocco del mezzo trasmissivo per la durata di un pacchetto (porzione di messaggio di lunghezza determinata).
Adatto al real time
Protocollo di accesso al mezzo trasmissivo e considerazioni real-time
- Il protocollo ethernet standard basato su CSMA-CD non è adatto ai sistemi real-time distribuiti: se si rileva collisione viene aspettato un tempo casuale prima della ritrasmissione, quindi non predicibile a priori
Topologia rete e considerazioni real-time
- Topologia a bus non adatta
- Si usa topologia a stella o albero con switch.
Switch riceve pacchetti e li inoltra solo verso il destinatario. In questo modo divide la rete in molti piccoli domini di collisione
Protocollo di trasporto e considerazioni real-time
- TCP: protocollo di scambio sicuro, garantisce consegna corretta dei pacchetti, ma prevede pacchetti più grandi e pacchetti di servizio per riscontro della ricezione, e ciò lo rende lento.
- UDP: protocollo non sicuro, ma pacchetti più piccoli e non sono presenti pacchetti di riscontro, più veloce.
- Nei sistemi real-time, poiché non c’è vera necessità di avere un protocollo sicuro, si privilegia la velocità del UDP.
Applicazioni industriali: tipi di reti e tecnologie relative
- reti di campo, usate per collegare sensori e attuatori, usano tecnologia foundation fieldbus
- Reti di controllo, collegano controllori, usano tecnologia industrial ethernet
- Rete informatica, usata dai supervisori, usa ethernet classica
Industrial ethernet: caratteristiche
1) Collegamento dati con commutazione di pacchetto
2) Topologia a stella/albero con switch
3) UDP al posto del TCP
Ruolo dello switch nell’industrial ethernet
- Riceve in ingresso pacchetti e li memorizza
- Per ogni uscita è presente un buffer che contiene una pila di pacchetti diretti verso un’uscita
- Data una pila, lo switch schedula i pacchetti in uscita in base a criteri che tengono conto della deadline di consegna e del tempo necessario per la consegna
- Necessari quindi algoritmi di scheduling di pacchetti sugli switch
Scheduling di pacchetti su rete
Formulazione simile a quella di un problema di scheduling classico
- Discretizzazione del tempo: quanto di tempo corrisponde al tempo di trasmissione di un singolo pacchetto (125 micro s ad esempio su ethernet)
- Comunicazioni tra host
- Durata della comunicazione (espressa in quanti di tempo)
- Deadline: deve considerare anche il numero di trasmissioni necessarie per raggiungere la destinazione - > in ogni nodo deadline differenti
Calcolo deadline su rete
Dato un pacchetto p con tempo di consegna massimo Tp:
1) dp = # numero di trasmissioni per arrivare al nodo corrente / # numero di trasmissioni totali * Tp
(non considera la congestione sul link)
2) (media pesata sulla congestione)
dp = # ∑(link attraversati) canali per link / # ∑(link totali) canali per link * Tp
Problema della sincronizzazione: modellazione matematica del clock e clock standard
Ad ogni istante di tempo t,
un generico clock restituisce il tempo C(t)
il clock standard restituisce il tempo UTC Cs(t)
si ha quindi Cs(t) = t Vt
Problema della sincronizzazione: correttezza del clock
Un clock è corretto a meno di un ε se
| C(t) - Cs(t) | < = ε Vt
Problema della sincronizzazione: deriva del clock
Si stabilisce deriva massima ρ tale che :
max(t) |dC(t)/d(t) - 1| < = ρ
Se non c’è deriva: dC(t)/dt = dCs(t)/dt = 1
Clock al quarzo: deriva massima ρ = 10^-5
Può perdere o guadagnare 1 micro s/s = 1 s/giorno
Sincronizzazione esterna e interna: definizioni
Sincronizzazione esterna: sistema funziona sincronizzato con un ente di riferimento esterno in rapporto 1:1
Sincronizzazione interna: singoli host connessi tra loro devono battere all’unisono, senza ente esterno di sincronizzazione
Aggiornamento del clock
- Quando C(t) = r intervengo sul clock
- Chiamo E(r) = ε errore introdotto dalla sincronizzazione
- Chiamo E(t) errore del clock ad un certo istante t
- Ad un istante di tempo t > = r si ha
E(t) = E(r) + (C(t) - r)*ρ - Impongo E(t) < = BOUND cioè ε + (C(t) - r)*ρ < = BOUND
- Questo impone un tempo massimo tra un aggiornamento e l’altro:
C(t) - r < = (BOUND - ε)/ρ - Ad esempio: ρ = 10^-5 , ε = 0,5 s , BOUND = 1 s
- > tempo massimo tra aggiornamenti circa 14 ore