Zero-copy (bogstaveligt talt fra engelsk - "nul kopier") - beskriver operationer, hvor processoren ikke udfører opgaven med at kopiere data fra et hukommelsesområde til et andet. Udtrykket bruges til at beskrive teknologier, der har hjulpet med at reducere antallet af kopier mellem mellemliggende buffere [1] .
Nulkopierede versioner af operativsystemelementer såsom enhedsdrivere , filsystemer og netværksprotokolstabler øger i høj grad ydeevnen af visse applikationsprogrammer og bruger systemressourcer mere effektivt. Ydeevnen forbedres ved at give processoren mulighed for at gå videre til andre opgaver, mens dataene kopieres parallelt på en anden del af maskinen. Derudover reducerer nulkopieringsoperationer antallet af tidskrævende skift mellem kerne- og brugertilstande. Systemressourcer bruges mere effektivt, da brug af en kompleks enhed såsom en processor til at udføre kopieringsoperationer, hvilket i sig selv er en ret simpel opgave, er meget spild, hvis andre enklere komponenter i systemet selvstændigt kan udføre kopiering.
Metoder til at skabe nul-kopi-software omfatter brugen af DMA -baseret kopiering og hukommelseskortlægning gennem en hukommelsesstyringsenhed (MMU). Disse funktioner kræver specifik hardwaresupport og inkluderer normalt specifikke krav til hukommelsesallokering.
Zero-copy-protokoller er meget vigtige for højhastighedsnetværk, hvor netværksforbindelseskapaciteten nærmer sig eller overstiger processorens behandlingskapacitet. I dette tilfælde bruger processoren næsten al sin tid på at kopiere de data, der overføres, og bliver dermed en flaskehals, der sætter forbindelseshastighedsgrænsen under dens muligheder. En industritilnærmelse er, at det tager cirka en processor-urcyklus at behandle en bit af indgående data. For eksempel kan en 1 GHz processor håndtere en 1 Gbps netværksforbindelse til normal datakopiering, men den samme processor vil bunde ned på en 10 Gbps forbindelse. Det er grunden til, at kopieringsfri software bliver afgørende. Netværksforbindelser over 1 Gbps og dermed netværkssoftware med nul-kopi-understøttelse er i øjeblikket begrænset til kun at blive brugt i supercomputerklynger , store industrielle (især offentlige, videnskabelige og kommercielle) datacentre (DPC'er) og så videre. Men efterhånden som informationsteknologien udvikler sig, og efterhånden som 1 Gbps, 10 Gbps og endda 100 Gbps netværk bliver mere almindelige, bliver zero-cop-løsninger også mere og mere efterspurgte. , da båndbredden på netværk vokser hurtigere end processorernes ydeevne. .
Zero-copy protokoller har nogle indledende overhead forbundet med at forberede hukommelsesregioner til DMA operationer, så software I/O (PIO) er kun acceptabel for store datapakker eller for store streams og skræddersyet software.
RDMA -protokoller ( Remote Direct Memory Access ) er baseret på nulkopieringsteknikker.
Nogle operativsystemer (inklusive Linux ) understøtter nul-kopi-teknologier til at overføre filer til netværket gennem specifikke API-funktioner, såsom sendfile og sendfile64 , splice , vmsplice .
Oracle Corporation har udviklet og implementeret RDS -protokollen i sine produkter , som i vid udstrækning er baseret på zero-copy-teknologi.