I Unix finns det två huvudtyper av buffring:
1. Filbuffring :Detta är standardtypen av buffring och den används när du läser från eller skriver till filer. När man använder filbuffring läses data från eller skrivs till filen i block av en viss storlek, kallad "buffertstorlek". Detta kan förbättra prestandan genom att minska antalet systemsamtal som behöver göras.
2. Rörbuffring :Denna typ av buffring används vid läsning från eller skrivning till rör. Rör används för att kommunicera mellan olika processer och de implementeras vanligtvis med hjälp av en cirkulär buffert. När man använder rörbuffring skrivs data till röret eller läses från röret i bitar av en viss storlek, kallat "pipe buffer size". Detta kan hjälpa till att undvika dödlägen och förbättra prestandan genom att minska den tid som processer behöver vänta på varandra.
Utöver dessa två huvudtyper av buffring finns det även ett antal andra buffringsmekanismer som kan användas i Unix. Dessa inkluderar:
* Terminalbuffring :Denna typ av buffring används när man läser från eller skriver till en terminal. När man använder terminalbuffring läses data från eller skrivs till terminalen i bitar av en viss storlek, kallad "terminalbuffertstorlek". Detta kan bidra till att förbättra prestandan genom att minska antalet gånger som terminaldrivrutinen behöver avbrytas.
* I/O-buffring :Denna typ av buffring används när du läser från eller skriver till en enhet. När man använder I/O-buffring läses data från eller skrivs till enheten i bitar av en viss storlek, kallad "I/O-buffertstorlek". Detta kan bidra till att förbättra prestandan genom att minska antalet gånger som enhetsdrivrutinen behöver avbrytas.
Valet av vilken buffertmekanism som ska användas beror på den specifika applikationen och prestandakraven.