>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

Spróbuj przetrwać jako harmonogram zadań

Jesteśmy przyzwyczajeni do przeklinania systemu operacyjnego, gdy interfejs się zawiesza lub aplikacja milczy z komunikatem "Brak odpowiedzi". Wydaje się, że rozdzielanie czasu procesora i pamięci między tuzin programów to trywialne zadanie. Ale co, jeśli to ty siedzisz przy menedżerze zadań?

Projekt You’re the OS! autorstwa developera Pier-Luca Braulta zamienia podstawowe koncepcje informatyczne w hardcore’ową grę arcade. Tutaj dosłownie stajesz się jądrem systemu. Twoim celem jest ręczne alokowanie pamięci, przełączanie kontekstów procesów i obsługa przerwań I/O. Kilka sekund spóźnienia — i zdenerwowany użytkownik wciśnie przycisk Reset.

Zrzut ekranu z gry

Jak działa rozgrywka

Kolejki systemowe nieprzerwanie kręcą się na ekranie. Każdy proces potrzebuje czasu procesora, bloku w RAM lub odpowiedzi z dysku.

Musisz śledzić jednocześnie kilka parametrów:

  • Obciążenie kolejek wątków gotowych do uruchomienia.
  • Alokacja i zwalnianie stron pamięci RAM.
  • Żądania I/O blokujące wykonanie programu.
  • Miernik cierpliwości użytkownika, który opróżnia się z każdym cyklem bezczynności.

Jeśli zostawisz zadanie w trybie oczekiwania zbyt długo, proces zaczyna się "gotować". Gdy tylko cierpliwość użytkownika się wyczerpie, gra kończy się awaryjnym restartem.

Dlaczego programista powinien grać w system operacyjny

Poza czystą ekscytacją z gry, projekt daje praktyczne zrozumienie rzeczy, które zwykle traktujemy jako abstrakcje w podręcznikach Tanenbauma.

1. Praktyczne zrozumienie planowania

W czasie rzeczywistym odczuwasz, dlaczego algorytmy takie jak Round Robin czy Fair Share są zaprojektowane tak, a nie inaczej. Spróbuj ręcznie uniknąć sytuacji zagłodzenia, gdy ciężki wątek w tle całkowicie zapycha pipeline, podczas gdy małe interaktywne kliknięcia użytkownika wiszą bez odpowiedzi.

2. Piaskownica dla niestandardowych scenariuszy

Repozytorium zawiera tryb piaskownicy. Możesz opisać własny profil obciążenia w Pythonie: ustawić intensywność generowania zadań, wymagane ilości pamięci i typy operacji I/O. To zamienia grę w narzędzie do testowania obciążeniowego.

3. API do automatyzacji i pisania botów

Najciekawsza część wersji desktopowej to możliwość kontrolowania systemu nie rękami, lecz kodem. Repozytorium zawiera moduł 2, przez który możesz podłączyć własny skrypt harmonogramu.

Pisziesz algorytm alokacji zasobów w Pythonie, uruchamiasz symulację i sprawdzasz, ile cykli Twój własny harmonogram wytrzyma w starciu z generatorem zdarzeń gry.

Uruchomienie i szczegóły techniczne

Projekt jest napisany w Pythonie z użyciem biblioteki Pygame, a wersja webowa jest kompilowana do WebAssembly. Możesz grać bezpośrednio w przeglądarce na GitHub Pages lub itch.io.

Jeśli chcesz pisać boty przez API automatyzacji, musisz uruchomić projekt lokalnie.

W repozytorium podano ścisłe wymagania dotyczące wersji: autor używa Pythona 3.14 i menedżera pakietów 3. Do izolacji najlepiej od razu użyć 4:

0

Aby zbudować niestandardową konfigurację piaskownicy, wystarczy utworzyć plik w katalogu 5 i uruchomić polecenie:

1

Czy warto poświęcić czas

Jeśli uczysz podstaw systemów operacyjnych, szukasz sposobu na ćwiczenie mózgu w weekendy lub chcesz napisać własnego bota-harmonogram w Pythonie, projekt zdecydowanie jest wart uruchomienia na pół godziny. Szybko谦 cię i jasno wyjaśnia, dlaczego tworzenie niezawodnych menedżerów zadań kiedyś zajmowało inżynierom dekady.

Powiązane projekty