Stewdent.eu
▾

Multitasking

Zisti, ako operačný systém zvláda beh viacerých programov súčasne a čo je plánovanie procesov.

Posledná aktualizácia: 4. januára 2026

★★☆☆☆ Stupeň 2computingSústavyoperating-systemsmultitaskingprocessesscheduling4 min čítania

Nahlásiť chybu

Keď počúvaš hudbu, sťahuješ súbor a píšeš správy súčasne, zdá sa, že počítač robí tri veci naraz. V skutočnosti sa jedná o šikovný trik operačného systému nazývaný multitasking.

Čo je multitasking?

Multitasking (viacúlohové spracovanie) je schopnosť operačného systému spúšťať viac programov „súčasne". Ak má počítač jedno jadro CPU, robí to striedaním — veľmi rýchlym prepínaním medzi programami. Pri viac jadrách môže skutočne bežať viac programov naraz (paralelne).

Poznámka

Na jednojadrovom CPU beží v danom okamihu vždy len jeden proces. Ale keďže prepínanie trvá mikrosekundy, pre človeka vyzerá všetko ako súčasne. Tento jav sa nazýva pseudo-paralelizmus.

Procesy a vlákna

Proces je bežiaci program. Každý spustený program je aspoň jeden proces. Proces má:

  • Vlastný pamäťový priestor
  • Vlastné zdroje (otvorené súbory, sieťové spojenia)
  • Aspoň jedno vlákno (thread)

Vlákno je najmenšia jednotka vykonávania v rámci procesu. Jeden proces môže mať viacero vlákien, ktoré zdieľajú pamäť a môžu bežať paralelne na rôznych jadrách.

import threading
import time

def uloha(meno, dlzka):
    print(f"{meno} začal")
    time.sleep(dlzka)
    print(f"{meno} skončil")

# Spustenie dvoch vlákien súčasne
t1 = threading.Thread(target=uloha, args=("Sťahovanie", 3))
t2 = threading.Thread(target=uloha, args=("Prehrávanie hudby", 2))

t1.start()
t2.start()

t1.join()
t2.join()
print("Všetky úlohy dokončené")

Plánovač procesov (Scheduler)

Plánovač je časť OS, ktorá rozhoduje, ktorý proces dostane čas procesora a na ako dlho.

Časové kvantum (Time Slice)

OS rozdelí čas CPU na malé úseky — kvantá (zvyčajne 10–100 ms). Každý proces dostane svoje kvantum, potom sa prepne na ďalší proces.

Čas:    |--10ms--|--10ms--|--10ms--|--10ms--|
Proces: | Hudba  | Prehliadač | Sťahovanie | Hudba |

Stavy procesu

Každý proces môže byť v jednom z troch stavov:

StavPopis
Bežiaci (Running)Práve využíva CPU
Pripravený (Ready)Čaká na pridelenie CPU
Blokovaný (Blocked/Waiting)Čaká na I/O (disk, sieť)
Tip

Keď program čaká na odpoveď z internetu (napr. načítava webovú stránku), je v stave „Blokovaný" a neukladá CPU čas. OS medzitým dá CPU iným procesom — tým sa efektívne využíva výkon počítača.

Priority procesov

Nie všetky procesy sú rovnako dôležité. OS priraďuje procesom priority:

  • Vysoká priorita: systémové procesy, ovládače
  • Stredná: bežné aplikácie (prehliadač, Word)
  • Nízka: procesy na pozadí (zálohovanie, indexovanie)

Procesy s vyššou prioritou dostávajú CPU čas častejšie.

Správca úloh

Správca úloh (Task Manager — Windows, Activity Monitor — macOS) zobrazuje všetky bežiace procesy, ich využitie CPU, RAM a disku. Môžeš tam nájsť a ukončiť zamrznutý program.

Upozornenie

Ak nútene ukončíš proces cez Správcu úloh, stratíš všetky neuložené zmeny v danom programe. Vždy najskôr skús normálne zavrieť program tlačidlom „X". Ak nereaguje, až potom ho ukonči násilne.

Cvičné príklady

Vysvetli rozdiel medzi skutočným paralelizmom (na viacjadrovom CPU) a pseudo-paralelizmom (na jednojadrovom CPU).

Zobraziť odpoveď
Skutočný paralelizmus: viacjadrový CPU môže skutočne vykonávať viac procesov v rovnakom okamihu — každý proces beží na inom jadre. Pseudo-paralelizmus: jednojadrovom CPU môže byť aktívny len jeden proces naraz, ale OS tak rýchlo prepína medzi procesmi (každých 10–100 ms), že pre používateľa vyzerá všetko ako súčasne.

Proces sťahovanie súboru čaká na odpoveď zo servera. V akom stave sa nachádza a čo robí CPU počas tohto čakania?

Zobraziť odpoveď
Proces je v stave 'Blokovaný' (Waiting) — čaká na sieťové I/O. CPU nie je zaháľaný — OS pridelí CPU čas iným procesom, ktoré sú v stave 'Pripravený'. Tým sa maximálne využíva výkon procesora.