Zero-copy (szó szerint angolul - „nulla másolatok”) - olyan műveleteket ír le, amelyek során a processzor nem hajtja végre az adatok másolását egyik memóriaterületről a másikra. A kifejezést olyan technológiák leírására használják, amelyek segítettek csökkenteni a köztes pufferek közötti másolatok számát [1] .
Az operációs rendszer elemeinek , például eszközillesztőknek , fájlrendszereknek és hálózati protokollveremeknek a másolás nélküli verziói nagymértékben növelik bizonyos alkalmazásprogramok teljesítményét, és hatékonyabban használják fel a rendszererőforrásokat. A teljesítményt javítja, ha lehetővé teszi a processzor számára, hogy más feladatokra lépjen, miközben az adatokat párhuzamosan másolják a gép másik részén. Ezenkívül a nulla másolati műveletek csökkentik a kernel és a felhasználói módok közötti időigényes váltások számát. A rendszer erőforrásait hatékonyabban használják fel, mivel egy bonyolult eszköz, például processzor használata másolási műveletek végrehajtására, ami önmagában is meglehetősen egyszerű feladat, nagyon pazarló, ha a rendszer más egyszerűbb komponensei önállóan képesek másolni.
A másolásmentes szoftver létrehozásának módszerei közé tartozik a DMA -alapú másolás és a memóriakezelő egységen (MMU) keresztül történő memórialeképezés. Ezek a szolgáltatások speciális hardver támogatást igényelnek, és általában speciális memóriafoglalási követelményeket tartalmaznak.
A nulla másolati protokollok nagyon fontosak a nagy sebességű hálózatok számára, ahol a hálózati kapcsolat kapacitása megközelíti vagy meghaladja a processzor feldolgozási kapacitását. Ilyenkor a processzor szinte minden idejét az átvitt adatok másolásával tölti, és így szűk keresztmetszetté válik, a kapcsolati sebességkorlátot a lehetőségei alá állítva. Iparági közelítés szerint körülbelül egy processzor órajel-ciklust vesz igénybe egy bit bejövő adat feldolgozásához. Például egy 1 GHz -es processzor képes kezelni az 1 Gbps-os hálózati kapcsolatot normál adatmásolással, de ugyanaz a processzor lefagy a 10 Gbps-es kapcsolaton. Ezért válik elengedhetetlenné a másolat nélküli szoftver. Az 1 Gbps feletti hálózati kapcsolatok és ennek következtében a nulla másolati támogatással rendelkező hálózati szoftverek jelenleg csak szuperszámítógép - fürtökben, nagy ipari (különösen kormányzati, tudományos és kereskedelmi) adatközpontokban (DPC-k) stb. használhatók. Az információtechnológia fejlődésével , valamint az 1 Gbps, 10 Gbps, sőt 100 Gbps sebességű hálózatok elterjedésével a zero-cop megoldások is egyre keresettebbek, mivel a hálózatok sávszélessége gyorsabban nő, mint a processzorok teljesítménye. .
A nulla másolati protokollok kezdeti többletköltséggel járnak a memóriaterületek DMA-műveletekhez való előkészítésével kapcsolatban, így a szoftver I/O (PIO) csak nagy adatcsomagokhoz vagy nagy adatfolyamokhoz és személyre szabott szoftverekhez elfogadható.
Az RDMA ( Remote Direct Memory Access ) protokollok nulla másolási technikákon alapulnak .
Egyes operációs rendszerek (beleértve a Linuxot is ) támogatják a nulla másolati technológiát a fájlok hálózatra való átviteléhez meghatározott API-funkciókon keresztül, mint például a sendfile és sendfile64 , splice , vmsplice .
Az Oracle Corporation kifejlesztette és bevezette termékeiben az RDS protokollt , amely nagyrészt nulla másolati technológián alapul.