Co oznacza bufor?

Wszędzie widzę słowo"bufor", ale nie jestem w stanie pojąć, co to dokładnie jest.

  1. czy ktoś mógłby mi wyjaśnić czym jest bufor w języku laika?
  2. Kiedy jest używany?
  3. Jak się go stosuje?
Author: SpaceCore186, 2009-03-15

8 answers

Wyobraź sobie, że jesz cukierki z miski. Bierzesz jeden kawałek regularnie. Aby zapobiec wyczerpaniu miski, ktoś może napełnić miskę, zanim zrobi się pusta, tak że gdy chcesz wziąć kolejny kawałek, w misce są cukierki.

Miska działa jak bufor między tobą a torbą ze słodyczami.

Jeśli oglądasz film online, serwis internetowy będzie stale pobierał następne 5 minut do bufora, dzięki czemu Twój komputer nie będzie musiał pobierać film jak go oglądasz (co spowodowałoby powieszenie).

 213
Author: Perchik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-15 18:50:03

Termin "bufor" jest terminem bardzo ogólnym i nie jest specyficzny dla niego lub CS. To miejsce do tymczasowego przechowywania czegoś, w celu złagodzenia różnic między prędkością wejściową i wyjściową. Podczas gdy producent jest szybszy niż konsument, producent może nadal przechowywać dane wyjściowe w buforze. Gdy konsument przyspiesza, może odczytywać z bufora. Bufor jest tam pośrodku, aby wypełnić lukę.


Jeśli uśrednisz definicje na http://en.wiktionary.org/wiki/buffer , myślę, że zrozumiesz.

Aby uzyskać dowód, że naprawdę "musieliśmy przejść 10 mil, aby codziennie iść do szkoły", Zobacz TOPS-10 Monitor Calls Manual Volume 1, sekcja 11.9, "Using Bufored I/O", w zakładce 11-24. Nie czytaj, jeśli masz koszmary.

 76
Author: John Saunders,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-23 01:07:36

Bufor jest po prostu kawałkiem pamięci używanym do przechowywania danych. W najbardziej ogólnym znaczeniu, jest to zwykle pojedyncza plamka pamięci, która jest ładowana w jednej operacji, a następnie opróżniana w jednym lub więcej, na przykład "candy bowl" Perchika. Na przykład w programie C możesz mieć:

#define BUFSIZE 1024
char buffer[BUFSIZE];
size_t len = ;

// ... later
while((len=read(STDIN, &buffer, BUFSIZE)) > 0)
    write(STDOUT, buffer, len);

... która jest minimalną wersją cp (1) . Tutaj tablica buforów jest używana do przechowywania danych odczytywanych przez read (2) do momentu ich zapisania; wtedy bufor jest ponownie używany.

Jest więcej stosuje się skomplikowane schematy buforowe, na przykład Okrągły bufor , w którym używana jest pewna skończona liczba buforów, jeden po drugim; gdy bufory są pełne, indeks "zawija się" tak, że pierwszy z nich jest ponownie używany.

 17
Author: Charlie Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-21 15:14:11

Bufor oznacza "tymczasowe przechowywanie". Bufory są ważne w obliczeniach, ponieważ Połączone urządzenia i systemy rzadko są ze sobą "zsynchronizowane", więc gdy informacje są wysyłane z jednego systemu do drugiego, musi gdzieś poczekać, aż system odbiorcy będzie gotowy.

 7
Author: karim79,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-15 19:22:05

W Zasadzie to zależy od kontekstu w każdym przypadku, ponieważ nie ma jednej definicji - ale mówiąc ogólnie bufor jest miejscem do tymczasowego przechowywania czegoś. Najlepsza analogia ze świata realnego, jaka przychodzi mi do głowy, to poczekalnia. Jednym z prostych przykładów w obliczeniach jest sytuacja, gdy bufor odnosi się do części pamięci RAM używanej do tymczasowego przechowywania danych.

 5
Author: Fraser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-15 18:57:18

Bufor jest tymczasowym elementem zastępczym (zmienne w wielu językach programowania) w pamięci (ram/dysk), na którym dane mogą być zrzucane, a następnie przetwarzane.

Termin "bufor" jest terminem bardzo ogólnym i nie jest specyficzny dla niego lub CS. To miejsce do tymczasowego przechowywania czegoś, w celu złagodzenia różnic między prędkością wejściową i wyjściową. Podczas gdy producent jest szybszy niż konsument, producent może nadal przechowywać dane wyjściowe w buforze. Gdy konsument przyspiesza, może odczytywać z bufora. Bufor jest tam pośrodku, aby wypełnić lukę.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-10 07:46:37

Bufor jest tymczasowym elementem zastępczym (zmienne w wielu językach programowania) w pamięci (ram/dysk), na którym dane mogą być zrzucane, a następnie przetwarzane.

Istnieje wiele zalet buforowania, np. pozwala na równoległe działanie, poprawia wydajność IO itp.

Ma również wiele wad, jeśli nie jest poprawnie użyty, jak przepełnienie bufora,niedopełnienie bufora itp.

C przykład bufora znaków.

Char * buffer1 = calloc (5, sizeof(char));

Char *buffer2 = calloc(15, sizeof (char));

 1
Author: Santosh Gokak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-18 20:20:56

Bufor to obszar danych współdzielony przez urządzenia sprzętowe lub procesy programowe, które działają z różną prędkością lub z różnymi zestawami priorytetów. Bufor pozwala każdemu urządzeniu lub procesowi działać bez zatrzymywania się przez inne. Aby bufor był skuteczny, rozmiar bufora i algorytmy przenoszenia danych do i z bufora.

Bufor jest "środkowym miejscem przechowywania", ale istnieje nie tyle, aby przyspieszyć szybkość działania, co wspierać koordynacja odrębnych działań.

Termin ten jest używany zarówno w programowaniu, jak i w sprzęcie. W programowaniu buforowanie czasami oznacza konieczność ekranowania danych z docelowego miejsca, aby można je było edytować lub w inny sposób przetwarzać przed przeniesieniem do zwykłego pliku lub bazy danych.

 1
Author: Ailayna Entarria,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-11 04:51:53