Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/Systemy operacyjne
Systemy operacyjnemedium

Jak działa planowanie CPU (preemptive vs cooperative)?

Tagi
#scheduling#cpu#priorities
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Preemptive pozwala OS przerywać zadania dla sprawiedliwości i responsywności. Cooperative opiera się na dobrowolnym oddawaniu CPU, co może prowadzić do głodzenia.

Odpowiedź zaawansowana

Głębiej

Scheduler równoważy latencję, sprawiedliwość i throughput:

  • Preemptive używa time-slice i polityk priorytetów.
  • Cooperative jest prostszy, ale niebezpieczny dla nieufnych zadań.
  • Real-time priorytetyzuje deadline’y ponad fairness.
  • Koszt context switch wpływa na długość kwantu.

Przykłady

Time-slicing:

Uruchom A na 5ms -> preempt -> uruchom B -> powtarzaj

Typowe pułapki

  • Założenie, że wyższy priorytet zawsze zwiększa throughput.
  • Cooperative dla mieszanych workloadów.
  • Ignorowanie priority inversion.

Pytania uzupełniające na rozmowie

  • Jak zapobiegasz starvation?
  • Czym jest priority inversion i jak je ograniczasz?
  • Kiedy używasz real-time scheduling?

Powiązane pytania

Spring
`@Scheduled`: fixedRate vs fixedDelay vs cron — jaka jest różnica?
#spring#scheduling#cron