Zero-copy (doslova z angličtiny - „zero copy“) - popisuje operace, během kterých procesor neprovádí úlohu kopírování dat z jedné oblasti paměti do druhé. Tento termín se používá k popisu technologií, které pomohly snížit počet kopií mezi mezilehlými buffery [1] .
Verze s nulovými kopiemi prvků operačního systému , jako jsou ovladače zařízení , systémy souborů a zásobníky síťových protokolů , výrazně zvyšují výkon určitých aplikačních programů a efektivněji využívají systémové prostředky. Výkon je vylepšen tím, že procesor může přejít k jiným úlohám, zatímco jsou data paralelně kopírována do jiné části stroje. Kromě toho operace nulového kopírování snižují počet časově náročných přepínání mezi režimem jádra a uživatelským režimem. Systémové prostředky jsou využívány efektivněji, protože použití složitého zařízení, jako je procesor, k provádění operací kopírování, což je samo o sobě poměrně jednoduchý úkol, je velmi plýtvání, pokud jiné jednodušší součásti systému mohou nezávisle provádět kopírování.
Metody pro vytváření softwaru s nulovou kopií zahrnují použití kopírování založeného na DMA a mapování paměti prostřednictvím jednotky správy paměti (MMU). Tyto funkce vyžadují specifickou hardwarovou podporu a obvykle zahrnují specifické požadavky na přidělení paměti.
Protokoly s nulovou kopií jsou velmi důležité pro vysokorychlostní sítě, kde se kapacita síťového připojení blíží nebo překračuje kapacitu procesoru. V tomto případě procesor tráví téměř všechen čas kopírováním přenášených dat a stává se tak úzkým hrdlem, nastavuje limit rychlosti připojení pod své možnosti. Průmyslová aproximace je taková, že zpracování jednoho bitu příchozích dat trvá přibližně jeden takt procesoru. Například 1 GHz procesor zvládne síťové připojení o rychlosti 1 Gbps pro běžné kopírování dat, ale stejný procesor uvízne při připojení 10 Gbps. To je důvod, proč se software s nulovou kopií stává nezbytným. Síťová připojení nad 1 Gbps a následně i síťový software s podporou nulových kopií jsou v současnosti omezeny na použití pouze v superpočítačových clusterech, velkých průmyslových (zejména vládních, vědeckých a komerčních) datových centrech (DPC) a tak dále. S pokrokem informačních technologií a se stále běžnějšími sítěmi 1 Gb/s, 10 Gb/s a dokonce 100 Gb/s se však stále více poptávají i řešení s nulovým počtem policistů. , protože šířka pásma sítí roste rychleji než výkon procesorů. .
Protokoly s nulovým kopírováním mají určitou počáteční režii spojenou s přípravou paměťových oblastí pro operace DMA, takže softwarové I/O (PIO) jsou přijatelné pouze pro velké datové pakety nebo pro velké toky a přizpůsobený software.
Protokoly RDMA ( Remote Direct Memory Access ) jsou založeny na technikách nulových kopií.
Některé operační systémy (včetně Linuxu ) podporují technologie zero-copy pro přenos souborů do sítě prostřednictvím specifických funkcí API, jako je sendfile a sendfile64 , splice , vmsplice .
Společnost Oracle Corporation vyvinula a implementovala do svých produktů protokol RDS , který je z velké části založen na technologii zero-copy.