Wszędzie widzę słowo „BUFOR” , ale nie jestem w stanie pojąć, co to właściwie jest.
- Czy ktoś mógłby wyjaśnić, czym jest bufor w języku laika ?
- Kiedy jest używany?
- Jak to jest używane?
Wszędzie widzę słowo „BUFOR” , ale nie jestem w stanie pojąć, co to właściwie jest.
Odpowiedzi:
Wyobraź sobie, że jesz cukierki z miski. Regularnie bierzesz jedną sztukę. Aby zapobiec wyczerpaniu się miski, ktoś może napełnić miskę, zanim się opróżni, więc gdy chcesz wziąć kolejny kawałek, w misce są cukierki.
Miska działa jak bufor między tobą a torebką ze słodyczami.
Jeśli oglądasz film online, usługa internetowa będzie stale pobierać następne 5 minut do bufora, dzięki czemu komputer nie musi pobierać filmu podczas oglądania (co mogłoby spowodować zawieszenie).
Termin „bufor” jest terminem bardzo ogólnym i nie jest specyficzny dla IT ani CS. Jest to miejsce do tymczasowego przechowywania czegoś w celu złagodzenia różnic między prędkością wejściową a wyjściową. Podczas gdy producent jest szybszy niż konsument, producent może nadal przechowywać dane wyjściowe w buforze. Gdy konsument przyspieszy, może odczytać z bufora. Bufor znajduje się pośrodku, aby wypełnić lukę.
Jeśli uśrednisz definicje na http://en.wiktionary.org/wiki/buffer , myślę, że zrozumiesz pomysł.
Dowód na to, że naprawdę „musieliśmy codziennie chodzić 10 mil, myśląc o śniegu, aby iść do szkoły”, zobacz TOPS-10 Podręcznik wywołań monitora, tom 1 , sekcja 11.9, „Korzystanie z buforowanych wejść / wyjść”, zakładka 11-24. Nie czytaj, jeśli masz koszmary.
Bufor to po prostu fragment pamięci używany do przechowywania danych. W najogólniejszym sensie jest to zwykle pojedyncza kropla pamięci, która jest ładowana podczas jednej operacji, a następnie opróżniana w co najmniej jednej misce z cukierkami Perchika. Na przykład w programie w języku 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óry jest minimalną wersją cp (1) . Tutaj tablica buforów jest używana do przechowywania danych odczytanych przez read (2), dopóki nie zostaną zapisane; następnie bufor jest ponownie używany.
Stosowane są bardziej skomplikowane schematy buforów, na przykład bufor cykliczny , w którym używana jest skończona liczba buforów, jeden po drugim; gdy wszystkie bufory są pełne, indeks „zawija się”, tak że pierwszy z nich jest ponownie używany.
Naprawdę zależałoby to od kontekstu w każdym przypadku, ponieważ nie ma jednej definicji - ale mówiąc ogólnie, bufor to miejsce, w którym można coś tymczasowo zatrzymać. Najlepsza analogia do świata rzeczywistego, jaką przychodzi mi do głowy, to poczekalnia. Prostym przykładem w obliczeniach jest sytuacja, w której bufor odnosi się do części pamięci RAM używanej do tymczasowego przechowywania danych.
Bufor to tymczasowy symbol zastępczy (zmienne w wielu językach programowania) w pamięci (ram / dysk), na który można zrzucić dane, a następnie przeprowadzić ich przetwarzanie.
Buforowanie ma wiele zalet, na przykład pozwala na równoległe działanie, poprawia wydajność we / wy itp.
Ma również wiele wad, jeśli nie jest używany poprawnie, jak przepełnienie bufora, niedomiar bufora itp.
C Przykład bufora znaków.
char * buffer1 = calloc (5, sizeof (char));
char * buffer2 = calloc (15, sizeof (char));
Bufor to obszar danych współdzielony przez urządzenia sprzętowe lub procesy programowe, które działają z różnymi prędkościami lub z różnymi zestawami priorytetów. Bufor pozwala każdemu urządzeniu lub procesowi działać bez utrzymywania go przez inne. Aby bufor był efektywny, rozmiar bufora i algorytmy przenoszenia danych do i z bufora.
bufor jest „miejscem zatrzymania w środku”, ale istnieje nie tyle w celu przyspieszenia tempa działania, ile w celu wspierania koordynacji oddzielnych działań.
Termin ten jest używany zarówno w programowaniu, jak i sprzęcie. W programowaniu buforowanie czasami pociąga za sobą konieczność odsiewania danych od ich ostatecznego zamierzonego miejsca, aby można je było edytować lub w inny sposób przetwarzać przed przeniesieniem do zwykłego pliku lub bazy danych.
Bufor to tymczasowy symbol zastępczy (zmienne w wielu językach programowania) w pamięci (ram / dysk), na który można zrzucić dane, a następnie przeprowadzić ich przetwarzanie.
Termin „bufor” jest terminem bardzo ogólnym i nie jest specyficzny dla IT ani CS. Jest to miejsce do tymczasowego przechowywania czegoś w celu złagodzenia różnic między prędkością wejściową a wyjściową. Podczas gdy producent jest szybszy niż konsument, producent może nadal przechowywać dane wyjściowe w buforze. Gdy konsument przyspieszy, może odczytać z bufora. Bufor znajduje się pośrodku, aby wypełnić lukę.