Buffer (datalogi)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 25. januar 2020; checks kræver 7 redigeringer .

I datalogi buffer (fra engelsk  buffer ), pl. h. buffer [1] [2] , buffere [3] [4]  er et hukommelsesområde , der bruges til midlertidig lagring af data under input eller output. Dataudveksling (input og output) kan forekomme både med eksterne enheder og med processer i computeren . Buffere kan implementeres i hardware eller software , men langt de fleste buffere er implementeret i software. Buffere bruges, når der er forskel mellem hastigheden, hvormed data modtages, og hastigheden, hvormed de behandles, eller når disse hastigheder er variable, f.eks. når udskrivning er spoolet.

Buffer og cache

Disse udtryk udelukker ikke hinanden, og deres funktioner er ofte forvirrede, men der er forskel på deres formål. En buffer er et midlertidigt lager, hvor store datablokke flettes eller opdeles i dele. Dette er nødvendigt for at interagere med en lagerenhed, der arbejder med store datablokke, eller når data overføres i en anden rækkefølge end den, de er dannet i, og det er kun ønskeligt, når brug af små blokke er ineffektivt. Det er fordelagtigt at bruge en buffer, selvom de bufferlagrede data kun skrives til og læses fra bufferen én gang.

Til gengæld indebærer brugen af ​​en cache , at data vil blive læst fra cachen oftere end skrevet der. Dens formål er at reducere antallet af hukommelsesadgange, ikke at gøre dem mere effektive.

Brug af buffere

Metoden til at organisere dataudveksling mellem enheder eller processer ved hjælp af en buffer kaldes buffering . Et af de bedst kendte eksempler for pc -brugere på denne brug af bufferen er udklipsholderen i Microsoft Windows .

Buffere bruges også i programmering til at modtage data fra funktioner . Windows API - funktioner , der resulterer i en strengværdi (f.eks. MultiByteToWideChar ), tager som et af argumenterne en pointer til bufferen, der skal udlæses. Her er et eksempel på et kildekodestykke af et C -program , der konverterer strengen "Hello, World!" i Unicode :

// kildestreng CHARtext[] = "Hej verden!"; // buffer for at få resultatet WCHAR buffer[256]; // konverter streng til Unicode MultiByteToWideChar(CP_ACP, 0, tekst, strlen(tekst) + 1, buffer, sizeof(buffer)/sizeof(WCHAR));

Se også

Noter

  1. Stor forklarende ordbog over det russiske sprog / Ch. udg. S. A. Kuznetsov. - Sankt Petersborg. : Norint, 1998.
  2. Ordet "buffer" på webstedet gramota.ru . Hentet 25. januar 2020. Arkiveret fra originalen 22. oktober 2020.
  3. Buffer // Akademisk forklarende ordbog for det russiske sprog / red. L. P. Krysina. — Institut for det russiske sprog. V. V. Vinogradov RAN, 2016. - T. 2.
  4. Vaulina E. Yu. Buffer // Informatik. Forklarende ordbog .. - M . : Eksmo, 2005. - 480 s. - (Skoleordbøger). — ISBN 5-699-10277-9 .