
52

Każdy w życiu miał do czynienia z jakąś "zawieszką" komputera. Zazwyczaj działa się ona akurat wtedy, gdy potrzebowaliśmy go najbardziej... Przypadek? Nie sądzę. :) Niewiele osób w takiej sytuacji zastanawia się nad tym, co musi zrobić system operacyjny, by wyjść z tej opresji. Od niedawna można się o tym przekonać w bardzo ciekawy sposób, bowiem powstała... gra, w której stajemy się właśnie Windowsem, Linuksem czy Makiem.
W grze znajdują się wątki procesora oraz procesy (które możemy umownie nazwać programami, choć wiadomo, że każdy program nie musi odpowiadać tylko jednemu procesowi). Bezczynne procesy możemy przypisać do wątku, a aktywne procesy z niego "wyrzucać", zwalniając miejsce dla kolejnego programu. Nie możemy jednak zwlekać zbyt długo z realizacją oczekujących procesów, bo każdy z nich ma swój czasowy limit, wyrażany w emoji i kolorkach. Jeśli czas danego procesu minie, użytkownik go "zabije" (tak jak wyrzucamy program, gdy się zawiesi, przez Ctrl+Alt+Delete ;)). 10 takich "zabójstw" = restart systemu = game over.
To jednak nie wszystko. Niektóre procesy, które dodajemy do procesora, mogą czekać na obsługę przez wejście/wyjście (na przykład pobieranie danych z dysku, wprowadzanie czegoś z klawiatury...), przez co blokują nam procesor i miejsce dla innych programów, które moglibyśmy wykonać szybciej i mieć je "z głowy". Trzeba wtedy je "wyrzucać" i dodawać właśnie te mniejsze procesy. Z czasem pojawia się też więcej programów, co sprawia, że gra staje się trudniejsza. W niektórych przypadkach procesy mogą zajmować więcej miejsca niż jest dostępne w RAM-ie (na zrzucie wyżej), przez co trzeba je przenieść na dysk... Niełatwa, jak widać, jest robota systemu w takich sytuacjach ;)
Oczywiście ta gra nie symuluje w całości tego, co Windows czy Linux musi zrobić, gdy dojdzie do "zawieszki". Jest to bardzo duże uproszczenie, które jednak moim zdaniem może przybliżyć taką sytuację wielu ludziom, którzy niekoniecznie chcą studiować budowę systemu operacyjnego "od środka" :)
źródło: Pier-Luc Brault, autor gry