Dataczwartek, 13 sierpnia 2026 Czas19:18:08
← Sieci i sprzęt komputerowy

Lekcja 2. System operacyjny — co sprawia, że Twój komputer żyje

Średni

Po co się tego uczymy?

System operacyjny to "niewidzialny" fundament wszystkiego, co robisz na komputerze — od uruchomienia przeglądarki po zapisanie pliku. Zrozumienie procesów, pamięci wirtualnej i uprawnień to teoria wymagana w pisemnej części matury z informatyki oraz przydatna w codziennej pracy z komputerem.

Teoria

System operacyjny (OS) to oprogramowanie, które POŚREDNICZY między sprzętem a programami: przydziela zasoby (czas procesora, pamięć, urządzenia), dba o bezpieczeństwo i kolejność zadań. Bez niego komputer to tylko "pudełko z elektroniką" — kliknięcie "drukuj" wymagałoby ręcznego sterowania silnikiem drukarki.

Architektura warstwowa — od góry: aplikacje (przeglądarka, edytor, gry) → API i biblioteki systemowe → JĄDRO (kernel, "mózg" systemu) → sterowniki urządzeń → sprzęt (CPU, RAM, dysk, GPU).

Proces a wątek — proces to URUCHOMIONY PROGRAM (własny kod, pamięć, dane); wątek to "nitka wykonania" WEWNĄTRZ procesu — kilka wątków może działać równolegle, dzieląc tę samą pamięć. Analogia: proces to kucharz, wątki to jego ręce — jedna miesza zupę, druga kroi marchewkę, ale wszystko w tej samej kuchni (pamięci).

Stany procesu: NEW → READY (gotowy, czeka na CPU) → RUNNING (aktualnie działa) → WAITING (czeka np. na dysk/sieć) → TERMINATED (zakończony).

Planowanie zadań (CPU Scheduling) — procesor NIE wykonuje wszystkich programów naraz, tylko PRZEŁĄCZA je co ułamek sekundy. Algorytmy: FCFS (kto pierwszy, ten lepszy), SJF (krótsze zadania mają priorytet), Round Robin (każdy proces dostaje "kwant" czasu), Priority Scheduling, CFS (nowoczesny planista Linuksa). Każde przełączenie kontekstu (context switch) jest KOSZTOWNE — wymaga zapisania stanu jednego programu i przywrócenia innego.

Pamięć wirtualna — każdy proces "myśli", że ma własny CIĄGŁY blok pamięci, ale w rzeczywistości system TŁUMACZY to na adresy fizyczne (stronicowanie — pamięć dzielona na strony, np. 4 KB; swap — gdy RAM się kończy, system używa dysku). Zalety: większe bezpieczeństwo, praca na dużych danych, IZOLACJA błędów (awaria jednego programu nie psuje całego systemu, bo proces A NIE MOŻE nadpisać danych procesu B).

System plików i uprawnienia — dane organizowane są w drzewie katalogów (Linux/macOS: /home/uczen/..., Windows: C:UsersUczen...). Każdy plik ma nazwę, ścieżkę, rozmiar, daty, właściciela i PRAWA DOSTĘPU (rwx = read/write/execute) dla trzech grup: właściciel (user), grupa (group), inni (others). Przykład: -rwxr-xr-- = właściciel ma pełne prawa, grupa odczyt+uruchomienie, inni tylko odczyt.

Sterowniki (drivers) to "tłumacze" między jądrem a sprzętem — każde urządzenie ma swój "język", a system operacyjny tłumaczy go na wspólny format. Zasada Unix/Linux: "wszystko jest plikiem" — nawet urządzenia (/dev/sda = dysk, /dev/null = "czarna dziura" na dane).

Wirtualizacja i kontenery — maszyna wirtualna (VM) to CAŁY system w systemie (np. Windows na Linuksie) — wolniejsza, ale bardziej odizolowana. Kontener (np. Docker) to lekki, izolowany proces WSPÓŁDZIELĄCY jądro z systemem hosta — szybszy, ale mniej odizolowany.

Typy systemów operacyjnych: jednozadaniowy (stare DOS-y), wielozadaniowy (Linux, Windows), jednodostępny (komputer osobisty), wielodostępny (serwery), rozproszony (chmura, klastry), czasu rzeczywistego (roboty, sterowniki, RTOS).

Schemat

ARCHITEKTURA WARSTWOWA SYSTEMU:
[ Aplikacje: przeglądarka, edytor, gry ]
              │
[ API i biblioteki systemowe ]
              │
[ Jądro (kernel): serce systemu ]
              │
[ Sterowniki urządzeń ]
              │
[ Sprzęt: CPU, RAM, dysk, GPU ]

STANY PROCESU:
[NEW] → [READY] → [RUNNING] → [WAITING] → [TERMINATED]
           ↑___________________|
        (wraca do kolejki, czeka na kolejny przydział CPU)

PRAWA DOSTĘPU: -rwxr-xr--
  właściciel: rwx (pełne)   grupa: r-x (odczyt+uruchom)   inni: r-- (tylko odczyt)

Przykład z życia

Otwierasz jednocześnie przeglądarkę, odtwarzacz muzyki i edytor tekstu — Twój procesor (który fizycznie wykonuje jedną instrukcję na raz na każdy rdzeń) PRZEŁĄCZA się między tymi programami tak szybko (setki razy na sekundę), że masz wrażenie, że wszystkie działają naraz. To właśnie planowanie procesów (CPU Scheduling) w praktyce — Twój system operacyjny nieustannie decyduje, "czyja teraz kolej".

symulacja_planisty.py

# Symulacja planisty - kilka "zadań" wykonuje się na przemian (wątki)
import time, threading

def zadanie(n):
    print(f"Start {n}")
    time.sleep(1)
    print(f"Koniec {n}")

for i in range(3):
    threading.Thread(target=zadanie, args=(i,)).start()

# Efekt: zadania "przeplatają się" - wątki działają równolegle,
# dokładnie tak jak procesor przełącza się między procesami,
# tylko w dużo mniejszej skali czasowej.

Komentarz i wyjaśnienie kodu

Ten przykład URUCHAMIA trzy wątki niemal jednocześnie — każdy wypisuje "Start", czeka sekundę (time.sleep(1)), i wypisuje "Koniec". W wyniku zobaczysz PRZEPLATAJĄCE się komunikaty (nie koniecznie w kolejności 0,1,2), bo system operacyjny sam decyduje, w jakiej kolejności przydzielić im czas procesora — dokładnie ta sama idea co planowanie procesów w prawdziwym systemie, tylko pokazana w małej skali.

Ćwiczenie samodzielne

Jeśli masz dostęp do terminala (Linux/macOS) lub Wiersza poleceń (Windows), sprawdź polecenia: ping google.com, ls/dir (lista plików), ps/tasklist (lista procesów). Zaobserwuj, ile procesów jest aktualnie uruchomionych na Twoim komputerze.

Zadania do pracy własnej

  1. Wyjaśnij własnymi słowami, czym różni się PROCES od WĄTKU. Podaj przykład aplikacji, która mogłaby korzystać z wielu wątków naraz.

  2. Wymień etapy uruchamiania komputera (od włączenia zasilania do pulpitu) i krótko opisz, co dzieje się na każdym etapie (POST → Bootloader → Kernel → Usługi → Pulpit).

  3. Opisz różnicę między maszyną wirtualną a kontenerem (np. Docker) — jakie są zalety i wady każdego z tych podejść pod względem izolacji, wydajności i zużycia zasobów? Podaj przykład sytuacji, w której lepiej użyć maszyny wirtualnej, i sytuacji, gdzie lepszy będzie kontener.

Typowe błędy

Mylenie procesu z wątkiem — proces ma WŁASNĄ pamięć (izolowaną od innych procesów), a wątki WSPÓŁDZIELĄ pamięć w ramach jednego procesu; to fundamentalna różnica wpływająca na bezpieczeństwo i sposób komunikacji.

Przekonanie, że "wielozadaniowość" oznacza dosłownie równoczesne wykonywanie na pojedynczym rdzeniu procesora — w rzeczywistości to bardzo szybkie PRZEŁĄCZANIE między zadaniami (chyba że procesor ma wiele rdzeni, wtedy część zadań faktycznie działa równolegle).

Ignorowanie uprawnień dostępu do plików jako "tylko technicznego detalu" — to jeden z fundamentów bezpieczeństwa systemu: bez odpowiednich uprawnień proces A nie może odczytać ani nadpisać danych należących do procesu B lub innego użytkownika.

Nawiązanie do egzaminu zawodowego

System operacyjny to fundament teorii wymaganej w pisemnej części matury rozszerzonej z informatyki — pytania o procesy, wątki, pamięć wirtualną i uprawnienia pojawiają się regularnie. W kolejnej lekcji poznasz systemy liczbowe — sposób, w jaki dane (w tym te zarządzane przez system operacyjny) są faktycznie reprezentowane w pamięci komputera.