2. Contenuti
● Introduzione
● Uso di buffer per RT performance
requirements
● Cenni dimensionamento buffer
● Problematiche di gestione
● Tecniche di buffer management
○ Data copying
○ Offset management
○ Scatter/Gather
● Comparazione
2/11
3. Introduzione
● Media continui
Vincoli temporali da rispettare
● Stream continuo periodic tasks with
deadlines
● Esempio: playback di video
Datarate tale da evitare starvation
Ma:
Reperimento di dati è bursty
3/11
4. Uso di buffer
● La sfida è fornire dati a sufficienza per
evitare starvation. Ma come?
Uso di buffer
● Buffer visto come rappresentazione
spaziale del tempo
● Quando grande?
● Quali sono le conseguenze di un
dimensionamento non ottimo?
4/11
5. Cenni sul
dimensionamento buffer
● Se sovradimensionato:
○ Previene starvation device ma aumenta latenza
● No starvation vs Minimo spazio e latenza
5/11
6. Problematiche di gestione
● Virtual memory o Real memory?
● Conviene usare la memoria?
● Cosa succede con switch tra user space e
kernel space? Shared memory
6/11
7. Tecniche di buffer
management (1/4)
● Tre tecniche principali:
○ Data copying
○ Offset management
○ Scatter / Gather
7/11
8. Data copying (2/4)
● Dati spostati fisicamente da uno spazio a un
altro
○ Es. Da application buffer a Transport Layer Buffer
Ma TLB è in kernel space!
Protezione dei dati e rispettivi headers
Richiede tempo
Possibile
violazione di
vincoli temporali!
8/11
9. Offset management (3/4)
● L'application layer riserva spazio per dati e
anche per i rispettivi header
No perdite di tempo in copia! Ma:
Guadagno significativo di efficienza
App layer deve conoscere gli altri layer!
Overhead in app layer
9/11
10. Scatter / Gather (4/4)
● Prevede condivisione di tabella S/G
● Ogni layer inserisce i propri APDU nel
proprio buffer e inserisce un puntatore in
tabella condivisa
Efficente, copia solo quando spedisce
Overhead minimo
Ogni protocollo deve conoscere
posizione della tabella
Meccanismo di sharing 10/11