Noll kopia

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 25 december 2021; kontroller kräver 5 redigeringar .

Zero-copy (bokstavligen från  engelska  -  "noll kopior") - beskriver operationer under vilka processorn inte utför uppgiften att kopiera data från ett minnesområde till ett annat. Termen används för att beskriva teknologier som har hjälpt till att minska antalet kopior mellan mellanbuffertar [1] .

Översikt

Nollkopierade versioner av operativsystemelement som enhetsdrivrutiner , filsystem och nätverksprotokollstaplar ökar avsevärt prestandan för vissa applikationsprogram och använder systemresurserna mer effektivt. Prestandan förbättras genom att låta processorn gå vidare till andra uppgifter medan data kopieras parallellt på en annan del av maskinen. Dessutom reducerar operationer med nollkopiering antalet tidskrävande växlar mellan kärn- och användarlägen. Systemresurser används mer effektivt, eftersom att använda en komplex enhet som en processor för att utföra kopieringsoperationer, vilket i sig är en ganska enkel uppgift, är mycket slöseri om andra enklare komponenter i systemet kan utföra kopiering självständigt.

Metoder för att skapa programvara med noll kopiering inkluderar användningen av DMA -baserad kopiering och minnesmappning genom en minneshanteringsenhet (MMU). Dessa funktioner kräver specifikt hårdvarustöd och inkluderar vanligtvis specifika minnesallokeringskrav.

Nollkopieringsprotokoll är mycket viktiga för höghastighetsnätverk, där nätverksanslutningskapaciteten närmar sig eller överstiger processorns bearbetningskapacitet. I det här fallet ägnar processorn nästan all sin tid åt att kopiera de data som överförs, och blir därmed en flaskhals, som sätter anslutningshastighetsgränsen under dess kapacitet. En industriapproximation är att det tar ungefär en processorklockcykel att bearbeta en bit av inkommande data. Till exempel kan en 1 GHz- processor hantera en 1 Gbps nätverksanslutning för normal datakopiering, men samma processor kommer att köra fast på en 10 Gbps-anslutning. Det är därför som programvara med nollkopia blir viktig. Nätverksanslutningar över 1 Gbps och, följaktligen, nätverksprogramvara med noll-kopieringsstöd är för närvarande begränsade till att endast användas i superdatorkluster , stora industriella (särskilt statliga, vetenskapliga och kommersiella) datacenter (DPC) och så vidare. Men i takt med att informationstekniken går framåt , och när nätverk på 1 Gbps, 10 Gbps och till och med 100 Gbps blir vanligare, blir nollpolislösningar också mer och mer efterfrågade. , eftersom nätverkens bandbredd växer snabbare än processorernas prestanda. .

Protokoll med nollkopiering har viss initial overhead för att förbereda minnesregioner för DMA-operationer, så att mjukvaru- I/O (PIO) endast är acceptabelt för stora datapaket, eller för stora strömmar och skräddarsydd programvara.

RDMA -protokoll ( Remote Direct Memory Access )  är baserade på nollkopieringstekniker.

Vissa operativsystem (inklusive Linux ) stöder nollkopieringsteknik för att överföra filer till nätverket genom specifika API-funktioner, såsom sendfile och sendfile64 , splice , vmsplice .

Implementeringar och användningsexempel

Oracle Corporation har utvecklat och implementerat RDS - protokollet i sina produkter , som till stor del är baserat på nollkopieringsteknik.

Anteckningar

  1. Effektiv dataöverföring med noll kopia . IBM (17 februari 2009). Hämtad 26 november 2013. Arkiverad från originalet 2 december 2013.

Se även

Länkar