Transcript Buforowanie - Lucjan Miciuk
Slide 1
Buforowanie
Definicja
Slide 2
Bufor
To obszar pamięci służący do
przechowywania danych do komunikacji
pomiędzy dwoma systemami, np. bufor karty
sieciowej przechowuje pakiety, które mają
zostać wysłane, a bufor karty graficznej – to co
ma zostać wyświetlone na ekranie.
Slide 3
Bufory
Bufory umożliwiają asynchroniczną komunikację
między systemami.
W niektórych językach programowania, np. w PHP,
są funkcje, które działają jedynie przed wysłaniem
czegokolwiek do odbiorcy. Jeśli potrzebne jest
wywołanie funkcji po wysłaniu informacji do odbiory z
pomocą przychodzi bufor. Podczas kompilacji zbiera
wszystkie informacje wysyłane do odbiorcy i
zapamiętuje je, a następnie pod sam koniec skryptu
wyświetla zebrane informacje.
Slide 4
Buforowanie
Jest to technologia polegająca na
stosowaniu buforów programowych lub
sprzętowych, stosowana najczęściej w celu
wyrównania różnic prędkości przesyłania
danych między różnymi urządzeniami.
Slide 5
Wpływ buforowania danych
Gdy średnie prędkości procesora i urządzeń
wejścia-wyjścia są takie same, wówczas
buforowanie danych pozwala procesorowi nieco
wyprzedzać urządzenia lub pozostawać z nimi
nieco w tyle, a jednocześnie przetwarzać
wszystko z pełną prędkością.
Slide 6
Czynność buforowania danych
Należy do obowiązków systemu
operacyjnego. Monitor rezydujący lub programy
obsługi urządzeń zawierają systemowe bufory
wejścia-wyjścia dla każdego urządzenia
zewnętrznego.
Wywołania programów obsługi urządzeń
przez programy użytkowe powodują zazwyczaj
przesyłanie danych do lub z bufora
systemowego
Slide 7
Czynność buforowania danych
Rzeczywista operacja wejścia-wyjścia albo
jest już wykonana, albo zostanie wykonana
później – wtedy, kiedy urządzenie będzie
dostępne
Slide 8
Wpływ buforowania danych
Buforowanie pomaga głównie wygładzać
wahania czasu zużywanego na przetworzenie
rekordu.
Slide 9
Bufory
Bufory występują również w przenośnych
odtwarzaczach CD. Płyta CD w takim urządzeniu nie
jest stabilna, co skutkuje przerwami w odczycie danych
z płyty. Przerwom w odtwarzaniu dźwięku zapobiega
bufor, który przechowuje odczytane z wyprzedzeniem
fragmenty nagrania. W momencie zerwania kontaktu
pomiędzy głowicą odczytującą a płytą CD do
odtworzenia przesyłane są dane z bufora.
Podobny mechanizm stosowany jest w
odtwarzaczach MP3, bowiem nie da się dokładnie
przewidzieć czasu dekodowania formatu MP3.
Slide 10
Bufor cykliczny
Jest to bufor zorganizowany w ten sposób, że dane
są przechowywane w tablicy, a dodatkowo
przechowywane są dwa wskaźniki lub indeksy tablicy
pokazujące pierwszy i ostatni element (albo pierwszy i
puste miejsce za ostatnim). Dopisywanie nowych
danych wymaga inkrementacji wskaźnika na ostatni
element. W przypadku dojścia do końca tablicy jest on
przemieszczany na początek.
Podobnie wskaźnik odczytu po dojściu do końca
tablicy przemieszcza się na początek. Bufor na ogół
reprezentuje kolejkę FIFO, można też zaimplementować
na nim bufor, w którym dane mogą być dopisywane i
czytane z obydwu stron.
Slide 11
Bufor cykliczny
To między innymi bufor na PC. Mieści do
15 dwubajtowych kodów przycisków (keycode)
kolejno naciśniętych przez użytkownika.
Przekroczenie maksymalnej pojemności
sygnalizowane jest przez charakterystyczny
dźwięk oznaczający przepełnienie bufora
klawiatury.
Slide 12
Zalety bufora cyklicznego
prostota konstrukcji,
szybki dostęp,
oszczędność czasu przepisywania danych.
Slide 13
Wady bufora cyklicznego
ograniczenie z góry wielkości bufora przez
wielkość tablicy
Slide 14
Przykłady bufora cyklicznego
bufor klawiatury (wydzielony obszar pamięci
obsługiwanej przez BIOS. W buforze przechowywana
jest informacja o naciśniętych klawiszach do czasu jej
odczytania przez aplikacje lub system operacyjny) w
PC
Slide 15
Przepełnienie bufora
To błąd programistyczny polegający na pobraniu do
wyznaczonego obszaru pamięci (bufora) większej ilości
danych, niż zarezerwował na ten cel programista.
Taka sytuacja może często prowadzić do
zamazania danych znajdujących się w pamięci
bezpośrednio za buforem, a w rezultacie do błędnego
działania programu. W wielu sytuacjach, zwłaszcza gdy
dane, które wpisywane są do bufora podlegają kontroli
osoby o potencjalnie wrogich intencjach, może dojść do
nadpisania struktur kontrolnych programu w taki
sposób, by zaczął on wykonywać operacje określone
przez atakującego.
Buforowanie
Definicja
Slide 2
Bufor
To obszar pamięci służący do
przechowywania danych do komunikacji
pomiędzy dwoma systemami, np. bufor karty
sieciowej przechowuje pakiety, które mają
zostać wysłane, a bufor karty graficznej – to co
ma zostać wyświetlone na ekranie.
Slide 3
Bufory
Bufory umożliwiają asynchroniczną komunikację
między systemami.
W niektórych językach programowania, np. w PHP,
są funkcje, które działają jedynie przed wysłaniem
czegokolwiek do odbiorcy. Jeśli potrzebne jest
wywołanie funkcji po wysłaniu informacji do odbiory z
pomocą przychodzi bufor. Podczas kompilacji zbiera
wszystkie informacje wysyłane do odbiorcy i
zapamiętuje je, a następnie pod sam koniec skryptu
wyświetla zebrane informacje.
Slide 4
Buforowanie
Jest to technologia polegająca na
stosowaniu buforów programowych lub
sprzętowych, stosowana najczęściej w celu
wyrównania różnic prędkości przesyłania
danych między różnymi urządzeniami.
Slide 5
Wpływ buforowania danych
Gdy średnie prędkości procesora i urządzeń
wejścia-wyjścia są takie same, wówczas
buforowanie danych pozwala procesorowi nieco
wyprzedzać urządzenia lub pozostawać z nimi
nieco w tyle, a jednocześnie przetwarzać
wszystko z pełną prędkością.
Slide 6
Czynność buforowania danych
Należy do obowiązków systemu
operacyjnego. Monitor rezydujący lub programy
obsługi urządzeń zawierają systemowe bufory
wejścia-wyjścia dla każdego urządzenia
zewnętrznego.
Wywołania programów obsługi urządzeń
przez programy użytkowe powodują zazwyczaj
przesyłanie danych do lub z bufora
systemowego
Slide 7
Czynność buforowania danych
Rzeczywista operacja wejścia-wyjścia albo
jest już wykonana, albo zostanie wykonana
później – wtedy, kiedy urządzenie będzie
dostępne
Slide 8
Wpływ buforowania danych
Buforowanie pomaga głównie wygładzać
wahania czasu zużywanego na przetworzenie
rekordu.
Slide 9
Bufory
Bufory występują również w przenośnych
odtwarzaczach CD. Płyta CD w takim urządzeniu nie
jest stabilna, co skutkuje przerwami w odczycie danych
z płyty. Przerwom w odtwarzaniu dźwięku zapobiega
bufor, który przechowuje odczytane z wyprzedzeniem
fragmenty nagrania. W momencie zerwania kontaktu
pomiędzy głowicą odczytującą a płytą CD do
odtworzenia przesyłane są dane z bufora.
Podobny mechanizm stosowany jest w
odtwarzaczach MP3, bowiem nie da się dokładnie
przewidzieć czasu dekodowania formatu MP3.
Slide 10
Bufor cykliczny
Jest to bufor zorganizowany w ten sposób, że dane
są przechowywane w tablicy, a dodatkowo
przechowywane są dwa wskaźniki lub indeksy tablicy
pokazujące pierwszy i ostatni element (albo pierwszy i
puste miejsce za ostatnim). Dopisywanie nowych
danych wymaga inkrementacji wskaźnika na ostatni
element. W przypadku dojścia do końca tablicy jest on
przemieszczany na początek.
Podobnie wskaźnik odczytu po dojściu do końca
tablicy przemieszcza się na początek. Bufor na ogół
reprezentuje kolejkę FIFO, można też zaimplementować
na nim bufor, w którym dane mogą być dopisywane i
czytane z obydwu stron.
Slide 11
Bufor cykliczny
To między innymi bufor na PC. Mieści do
15 dwubajtowych kodów przycisków (keycode)
kolejno naciśniętych przez użytkownika.
Przekroczenie maksymalnej pojemności
sygnalizowane jest przez charakterystyczny
dźwięk oznaczający przepełnienie bufora
klawiatury.
Slide 12
Zalety bufora cyklicznego
prostota konstrukcji,
szybki dostęp,
oszczędność czasu przepisywania danych.
Slide 13
Wady bufora cyklicznego
ograniczenie z góry wielkości bufora przez
wielkość tablicy
Slide 14
Przykłady bufora cyklicznego
bufor klawiatury (wydzielony obszar pamięci
obsługiwanej przez BIOS. W buforze przechowywana
jest informacja o naciśniętych klawiszach do czasu jej
odczytania przez aplikacje lub system operacyjny) w
PC
Slide 15
Przepełnienie bufora
To błąd programistyczny polegający na pobraniu do
wyznaczonego obszaru pamięci (bufora) większej ilości
danych, niż zarezerwował na ten cel programista.
Taka sytuacja może często prowadzić do
zamazania danych znajdujących się w pamięci
bezpośrednio za buforem, a w rezultacie do błędnego
działania programu. W wielu sytuacjach, zwłaszcza gdy
dane, które wpisywane są do bufora podlegają kontroli
osoby o potencjalnie wrogich intencjach, może dojść do
nadpisania struktur kontrolnych programu w taki
sposób, by zaczął on wykonywać operacje określone
przez atakującego.