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

Czym jest context switching i dlaczego jest kosztowny?

Tagi
#context-switch#scheduler#performance
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Context switching to przełączenie CPU między wątkiem/procesem. Jest kosztowny, bo OS zapisuje/odtwarza rejestry, przełącza mapowania pamięci i wpływa na cache/TLB.

Odpowiedź zaawansowana

Głębiej

Przełączanie dodaje narzut i psuje lokalność danych:

  • Zapis/odczyt rejestrów i wskaźników stosu.
  • Efekty TLB i cache obniżają wydajność CPU.
  • Decyzje scheduler’a dodają latencję pod obciążeniem.
  • Częste przełączenia obniżają throughput dla zadań CPU-bound.

Przykłady

Scenariusz z dużą liczbą wątków:

1000 runnable threads -> częste przełączenia -> gorszy cache hit rate -> wolniejszy throughput

Typowe pułapki

  • Za dużo wątków dla pracy CPU-bound.
  • Blokujące I/O bez puli wątków.
  • Mylenie context switch z forkiem procesu.

Pytania uzupełniające na rozmowie

  • Jak mierzysz narzut context switch?
  • Kiedy wybierasz async I/O zamiast wątków?
  • Jak cache i TLB wpływają na wydajność?

Powiązane pytania

Systemy operacyjne
Wyjaśnij wirtualną pamięć i stronicowanie.
#virtual-memory#paging#performance
JavaScript
Czym są debounce i throttle i kiedy ich używać?
#performance#debounce#throttle
MongoDB
Indeksy tekstowe: kiedy ich użyć i jakie mają ograniczenie?
#mongo#text-index
#search
MongoDB
`$lookup`: co robi i jaka jest typowa pułapka?
#mongo#lookup#aggregation
PostgreSQL
Materialized view vs view: jaka jest różnica?
#postgres#views#materialized-view