Zero-copie

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 25 decembrie 2021; verificările necesită 5 modificări .

Zero-copy (literal din  engleză  -  „zero copies”) - descrie operațiuni în timpul cărora procesorul nu îndeplinește sarcina de a copia date dintr-o zonă de memorie în alta. Termenul este folosit pentru a descrie tehnologiile care au contribuit la reducerea numărului de copii între tampoanele intermediare [1] .

Prezentare generală

Versiunile zero-copy ale elementelor sistemului de operare, cum ar fi driverele de dispozitiv , sistemele de fișiere și stivele de protocoale de rețea, măresc foarte mult performanța anumitor programe de aplicație și utilizează resursele sistemului mai eficient. Performanța este îmbunătățită permițând procesorului să treacă la alte sarcini în timp ce datele sunt copiate în paralel pe o altă parte a mașinii. În plus, operațiunile de zero copiere reduc numărul de comutări consumatoare de timp între modurile kernel și utilizator. Resursele de sistem sunt utilizate mai eficient, deoarece utilizarea unui dispozitiv complex, cum ar fi un procesor pentru a efectua operațiuni de copiere, care în sine este o sarcină destul de simplă, este foarte risipitoare dacă alte componente mai simple ale sistemului pot efectua în mod independent copierea.

Metodele pentru crearea de software fără copiere includ utilizarea copierii bazate pe DMA și maparea memoriei printr- o unitate de gestionare a memoriei (MMU). Aceste caracteristici necesită suport hardware specific și de obicei includ cerințe specifice de alocare a memoriei.

Protocoalele zero-copy sunt foarte importante pentru rețelele de mare viteză, unde capacitatea de conectare la rețea se apropie sau depășește capacitatea de procesare a procesorului. În acest caz, procesorul își petrece aproape tot timpul copiend datele transferate și, astfel, devine un blocaj, stabilind limita de viteză a conexiunii sub capacitățile sale. O aproximare a industriei este că este nevoie de aproximativ un ciclu de ceas al procesorului pentru a procesa un bit de date primite. De exemplu, un procesor de 1 GHz poate gestiona o conexiune de rețea de 1 Gbps pentru copierea normală a datelor, dar același procesor se va bloca la o conexiune de 10 Gbps. De aceea, software-ul zero-copy devine esențial. Conexiunile de rețea de peste 1 Gbps și, în consecință, software-ul de rețea cu suport zero-copy sunt în prezent limitate la utilizarea numai în clustere de supercomputere , centre de date mari industriale (în special guvernamentale, științifice și comerciale) (DPC) și așa mai departe. Cu toate acestea, pe măsură ce tehnologia informației avansează și pe măsură ce rețelele de 1 Gbps, 10 Gbps și chiar 100 Gbps devin mai comune, soluțiile zero-cop devin, de asemenea, din ce în ce mai solicitate, pe măsură ce lățimea de bandă a rețelelor crește mai repede decât performanța procesoarelor. .

Protocoalele zero-copy au o suprasarcină inițială asociată cu pregătirea regiunilor de memorie pentru operațiunile DMA, astfel încât I/O software (PIO) este acceptabilă numai pentru pachete mari de date sau pentru fluxuri mari și software adaptat.

Protocoalele RDMA ( Remote Direct Memory Access )  se bazează pe tehnici de zero-copy.

Unele sisteme de operare (inclusiv Linux ) acceptă tehnologii zero-copy pentru transferul fișierelor în rețea prin funcții API specifice, cum ar fi sendfile și sendfile64 , splice , vmsplice .

Implementări și exemple de utilizare

Oracle Corporation a dezvoltat și implementat protocolul RDS în produsele sale , care se bazează în mare parte pe tehnologia zero-copy.

Note

  1. Transfer eficient de date cu zero copie . IBM (17 februarie 2009). Consultat la 26 noiembrie 2013. Arhivat din original la 2 decembrie 2013.

Vezi și

Link -uri