W systemie operacyjnym musieliśmy przekazać dane wejściowe procesorowi, a procesor wykonuje instrukcje i ostatecznie podaje dane wyjściowe. Ale był problem z tym podejściem. W normalnej sytuacji mamy do czynienia z wieloma procesami i wiemy, że czas potrzebny na wykonanie operacji we/wy jest bardzo duży w porównaniu do czasu potrzebnego procesorowi na wykonanie instrukcji. Zatem w starym podejściu jeden proces podaje dane wejściowe za pomocą urządzenia wejściowego i w tym czasie procesor znajduje się w stanie bezczynności.
porządek leksykograficzny
Następnie procesor wykonuje instrukcję, a dane wyjściowe są ponownie przekazywane do jakiegoś urządzenia wyjściowego i w tym momencie procesor również znajduje się w stanie bezczynności. Po pokazaniu wyniku, następny proces rozpoczyna wykonywanie. Dlatego przez większość czasu procesor jest bezczynny, co jest najgorszym stanem, jaki możemy spotkać w systemach operacyjnych. Tutaj pojawia się koncepcja buforowania.
Co to jest buforowanie
Buforowanie to proces, podczas którego dane są tymczasowo przechowywane w celu wykorzystania ich i wykonania przez urządzenie, program lub system. Dane są wysyłane i przechowywane w pamięci lub innej pamięci ulotnej, dopóki program lub komputer nie zażąda ich wykonania.
SPOOL to skrót od jednoczesne operacje peryferyjne online . Ogólnie rzecz biorąc, bufor jest utrzymywany w pamięci fizycznej komputera, buforach lub przerwaniach specyficznych dla urządzenia we/wy. Szpula przetwarzana jest w kolejności rosnącej, pracując w oparciu o algorytm FIFO (pierwsze weszło, pierwsze wyszło).
Buforowanie oznacza umieszczanie danych różnych zadań we/wy w buforze. Bufor ten to specjalny obszar w pamięci lub na dysku twardym, do którego mają dostęp urządzenia wejścia/wyjścia. System operacyjny wykonuje następujące czynności związane ze środowiskiem rozproszonym:
- Obsługuje buforowanie danych urządzeń we/wy, ponieważ urządzenia mają różne szybkości dostępu do danych.
- Utrzymuje bufor buforowania, który stanowi stację oczekującą, w której dane mogą odpocząć, podczas gdy wolniejsze urządzenie nadrabia zaległości.
- Utrzymuje obliczenia równoległe ze względu na proces buforowania, ponieważ komputer może wykonywać operacje we/wy w kolejności równoległej. Staje się możliwe, że komputer będzie odczytywał dane z taśmy, zapisywał je na dysku i zapisywał na drukarce taśmowej podczas wykonywania swoich zadań obliczeniowych.
Jak działa buforowanie w systemie operacyjnym
W systemie operacyjnym buforowanie przebiega w następujących krokach, takich jak:
- Buforowanie polega na utworzeniu bufora zwanego SPOOL, który służy do wstrzymywania zadań i danych do czasu, aż urządzenie, w którym utworzono SPOOL, będzie gotowe do użycia i wykonania zadania lub operacji na danych.
- Kiedy szybsze urządzenie wysyła dane do wolniejszego urządzenia w celu wykonania jakiejś operacji, wykorzystuje dowolną podłączoną pamięć dodatkową jako bufor SPOOL. Dane te są przechowywane w SPOOL do czasu, aż wolniejsze urządzenie będzie gotowe do pracy na tych danych. Gdy wolniejsze urządzenie będzie gotowe, dane w SPOOL zostaną załadowane do pamięci głównej w celu wykonania wymaganych operacji.
- Buforowanie traktuje całą pamięć dodatkową jako ogromny bufor, w którym można przechowywać wiele zadań i danych potrzebnych do wielu operacji. Zaletą buforowania jest to, że może utworzyć kolejkę zadań wykonywanych w kolejności FIFO w celu wykonania zadań jedno po drugim.
- Urządzenie może łączyć się z wieloma urządzeniami wejściowymi, co może wymagać pewnych operacji na ich danych. Zatem wszystkie te urządzenia wejściowe mogą umieszczać swoje dane w pamięci dodatkowej (SPOOL), które następnie mogą być wykonywane jedno po drugim przez urządzenie. Dzięki temu procesor nie będzie w żadnym momencie bezczynny. Można więc powiedzieć, że buforowanie jest połączeniem buforowania i kolejkowania.
- Gdy procesor wygeneruje pewne dane wyjściowe, dane wyjściowe są najpierw zapisywane w pamięci głównej. Dane wyjściowe są przesyłane do pamięci dodatkowej z pamięci głównej, a stamtąd dane wyjściowe są wysyłane do odpowiednich urządzeń wyjściowych.
Przykład buforowania
Największym przykładem buforowania jest druk . Dokumenty przeznaczone do druku zapisywane są w SPOOL i następnie dodawane do kolejki do druku. W tym czasie wiele procesów może wykonywać swoje operacje i korzystać z procesora, nie czekając, aż drukarka wykona proces drukowania dokumentów jeden po drugim.
Do procesu buforowania drukowania można także dodać wiele funkcji, takich jak ustawianie priorytetów lub powiadamianie o zakończeniu procesu drukowania lub wybieranie różnych rodzajów papieru do drukowania zgodnie z wyborem użytkownika.
Zalety buforowania
Oto następujące zalety buforowania w systemie operacyjnym, takie jak:
tablica vs lista tablic
- Liczba urządzeń wejścia/wyjścia lub operacji nie ma znaczenia. Wiele urządzeń wejścia/wyjścia może współpracować jednocześnie bez żadnych wzajemnych zakłóceń i zakłóceń.
- Podczas buforowania nie ma interakcji pomiędzy urządzeniami we/wy a procesorem. Oznacza to, że procesor nie musi czekać na wykonanie operacji we/wy. Wykonanie takich operacji zajmuje dużo czasu, więc procesor nie będzie czekał na ich zakończenie.
- Procesor w stanie bezczynności nie jest uważany za bardzo wydajny. Większość protokołów jest tworzona w celu efektywnego wykorzystania procesora w jak najkrótszym czasie. Podczas buforowania procesor jest przez większość czasu zajęty i przechodzi w stan bezczynności dopiero po wyczerpaniu się kolejki. Zatem wszystkie zadania są dodawane do kolejki, a procesor zakończy je i przejdzie w stan bezczynności.
- Pozwala aplikacjom działać z szybkością procesora, jednocześnie obsługując urządzenia we/wy z ich pełną szybkością.
Wady buforowania
W systemie operacyjnym buforowanie ma następujące wady, takie jak:
- Buforowanie wymaga dużej ilości pamięci w zależności od liczby żądań wysyłanych na wejście i liczby podłączonych urządzeń wejściowych.
- Ponieważ SPOOL jest tworzony w pamięci dodatkowej, jednoczesne działanie wielu urządzeń wejściowych może zająć dużo miejsca w pamięci dodatkowej, a tym samym zwiększyć ruch na dysku. Powoduje to, że dysk staje się coraz wolniejszy w miarę zwiększania się ruchu.
- Buforowanie służy do kopiowania i wykonywania danych z wolniejszego urządzenia na szybsze urządzenie. Wolniejsze urządzenie tworzy SPOOL do przechowywania danych w kolejce, a procesor na nich pracuje. Ten proces sam w sobie sprawia, że buforowanie jest bezużyteczne w środowiskach czasu rzeczywistego, w których potrzebujemy wyników w czasie rzeczywistym z procesora. Dzieje się tak dlatego, że urządzenie wejściowe jest wolniejsze i dlatego generuje dane w wolniejszym tempie, podczas gdy procesor może działać szybciej, więc przechodzi do następnego procesu w kolejce. Dlatego też ostateczny wynik lub produkt końcowy jest generowany później, a nie w czasie rzeczywistym.
Różnica między buforowaniem a buforowaniem
Buforowanie i buforowanie to dwa sposoby, dzięki którym podsystemy we/wy poprawiają wydajność i efektywność komputera poprzez wykorzystanie miejsca w pamięci głównej lub na dysku.
Podstawowa różnica między buforowaniem a buforowaniem polega na tym, że buforowanie nakłada się na operacje we/wy jednego zadania z wykonaniem innego zadania. Dla porównania, buforowanie nakłada się na operacje we/wy jednego zadania z wykonaniem tego samego zadania. Poniżej znajduje się kilka dodatkowych różnic między buforowaniem a buforowaniem, takich jak:
Warunki | Buforowanie | Buforowanie |
---|---|---|
Definicja | Buforowanie, akronim od Simultaneous Peripheral Operation Online (SPOOL), umieszcza dane w tymczasowym obszarze roboczym, aby uzyskać do nich dostęp i je przetworzyć przez inny program lub zasób. | Buforowanie to czynność polegająca na tymczasowym przechowywaniu danych w buforze. Pomaga w dopasowaniu prędkości strumienia danych pomiędzy nadawcą a odbiorcą. |
Zapotrzebowanie na zasoby | Buforowanie wymaga mniejszego zarządzania zasobami, ponieważ różne zasoby zarządzają procesem dla określonych zadań. | Buforowanie wymaga lepszego zarządzania zasobami, ponieważ ten sam zasób zarządza procesem tego samego podzielonego zadania. |
Wdrożenie wewnętrzne | Buforowanie nakłada dane wejściowe i wyjściowe jednego zadania na obliczenia innego zadania. | Buforowanie nakłada dane wejściowe i wyjściowe jednego zadania na obliczenia tego samego zadania. |
Wydajny | Buforowanie jest bardziej wydajne niż buforowanie. | Buforowanie jest mniej wydajne niż buforowanie. |
Edytor | Buforowanie może również przetwarzać dane w odległych lokalizacjach. Bufor musi jedynie powiadamiać o zakończeniu procesu w lokalizacji zdalnej, aby buforować następny proces do urządzenia po stronie zdalnej. | Buforowanie nie obsługuje zdalnego przetwarzania. |
Rozmiar w pamięci | Traktuje dysk jako ogromną szpulę lub bufor. | Bufor to ograniczony obszar w pamięci głównej. |