Co to jest problem śpiącego fryzjera?

W świecie komputerów problem śpiącego fryzjera to wymyślna nazwa używana do identyfikacji sytuacji, w której procesy są obecnie w stanie wstrzymania, czekając na zasoby do osiągnięcia pewnego rodzaju rozwiązania. Odniesienie do śpiącego fryzjera ma związek z brakiem produktywności, którego doświadcza fryzjer, gdy w sklepie nie ma klientów oczekujących na strzyżenie. To gra na starym stereotypie fryzjera, który śpi na swoim krześle, dopóki przez drzwi nie wejdzie klient, który chce się ostrzyc. Zgodnie z tą analogią, fryzjer natychmiast budzi się ze snu, gdy klient go obudzi, strzyży włosy i natychmiast wraca do snu, gdy klient wychodzi za drzwi, tylko po to, by budzić się, gdy wchodzi następny klient. Jeśli chodzi o funkcje komputera, dotyczy to zasobów, które są w stanie uśpienia, dopóki nie będą potrzebne dla procesu, a następnie powracają do tego samego stanu do momentu zainicjowania następnego procesu, tworząc opóźnienie między procesami, które może obniżyć ogólną wydajność.

Obraz używany do opisania problemu śpiącego fryzjera dotyczy fryzjera, który ma tylko okazjonalnego klienta, zwykle kończy z jednym przed przybyciem następnego klienta lub przynajmniej dociera do drugiego klienta z minimalnym czasem oczekiwania. Dopóki liczba klientów oczekujących w kolejce jest ograniczona do minimum i nikt się nie zniecierpliwi i nie wyjdzie, można powiedzieć, że nie ma problemu, a samotny fryzjer nadąża za popytem. Jednocześnie, jeśli w sklepie zalewają się klienci proszący o strzyżenie, ale fryzjer jest już zajęty, to istnieje duże prawdopodobieństwo, że niektórzy z tych klientów nie będą czekać i odejdą.

Ten sam rodzaj problemu ze śpiącym fryzjerem można zaobserwować w różnych sytuacjach przetwarzania obejmujących technologię komputerową, która wymaga pewnego rodzaju modernizacji, aby poradzić sobie ze wzrostem popytu. Na przykład, jeśli call center dla firmy jest zalewane telefonami przychodzącymi od klientów, którzy chcą teraz pomocy, ale liczba przedstawicieli obsługi klienta jest niewystarczająca, aby nadążyć za popytem, ​​część tych klientów zrezygnuje z połączeń i ewentualnie szukać relacji z konkurentem. W podobny sposób, w systemach przetwarzania sieci komputerowej, jeśli zasoby przeznaczone na terminowe przetwarzanie zadań są niewystarczające dla liczby zadań, które są zaangażowane, niektóre z tych procesów będą podlegać tak zwanemu przekroczeniu limitu czasu, a być może nawet zakończyć. Efektem końcowym jest utrata wydajności, która z kolei może spowolnić inne procesy, które zostały zaplanowane jako następujące po przekroczeniu limitu czasu.

Nie ma jednego właściwego sposobu na poradzenie sobie ze śpiącym fryzjerem. W zależności od konfiguracji używanego sprzętu komputerowego mogą istnieć sposoby na wdrożenie nowych podejść, które pomogą w realokacji zasobów tak, aby można było zarządzać zadaniami z większą wydajnością. Na przykład rekonfiguracja usług automatycznej recepcjonistki dla centrum obsługi telefonicznej może skutkować oszczędnością czasu dzięki automatycznemu przekierowaniu następnego połączenia w kolejce oczekującej do przedstawiciela bez konieczności ręcznego odbierania przez tego przedstawiciela kolejnej oczekującej linii. Tak jak dodanie dodatkowych fryzjerów do sklepu ułatwiłoby obsługę klientów szukających fryzury, dodanie większej ilości zasobów w zakresie linii przychodzących i stanowisk obsługi klienta do obsługi wolumenu połączeń również ułatwiłoby obsługę wolumenu bez powodowania wielu opóźnień . W podobny sposób rozszerzenie zasobów w sieci w celu obsługi dodatkowych funkcji i procesów może również pomóc zminimalizować problem ze śpiącym fryzjerem i umożliwić bardziej wydajną pracę systemu.