Głębiej
Wybór wpływa na izolację, wydajność i tryby awarii:
- Procesy izolują pamięć; crash nie zabija innych procesów.
- Wątki są tańsze w tworzeniu i przełączaniu, ale współdzielą pamięć.
- IPC między procesami jest droższe niż synchronizacja wewnątrz procesu.
- Granice bezpieczeństwa łatwiej utrzymać procesami.
Przykłady
Model serwera:
Wiele procesów: lepsza izolacja, większa pamięć
Wiele wątków: mniejsza pamięć, większe ryzyko współdzielenia stanu
Typowe pułapki
- Założenie, że wątki zawsze są szybsze od procesów.
- Współdzielenie stanu bez synchronizacji.
- Używanie wątków dla izolacji (nie dają jej).
Pytania uzupełniające na rozmowie
- Kiedy wybierasz multi-process zamiast multi-thread?
- Jak unikasz bugów współdzielonego stanu?
- Jak OS planuje wątki vs procesy?