Wielozadaniowość
Wielozadaniowość – cecha systemu operacyjnego umożliwiająca równoczesne wykonywanie więcej niż jednego procesu (programu). Zwykle za poprawną realizację wielozadaniowości odpowiedzialne jest jądro systemu operacyjnego.
Implementacja
edytujWielozadaniowość zapewniona jest między innymi przez planistę, czyli część systemu operacyjnego realizującą algorytm szeregowania zadań w kolejce do przyznania czasu przetwarzania na procesorze.
Równoczesność realizowania wielozadaniowości jest pozorna, gdy system komputerowy ma dostępnych mniej wątków sprzętowych niż procesów (programów) wykonywanych jednocześnie. Wówczas dla uzyskania wrażenia wykonywania wielu zadań w tym samym czasie, konieczne staje się zastosowanie mechanizmu podziału czasu, którego działanie polega na przydzielaniu każdemu procesowi określonego przedziału czasowego, w którym może być on przetwarzany przez wątek sprzętowy (procesor).
Systemy wielozadaniowe można podzielić na oferujące i nieoferujące wywłaszczanie. W systemach z wywłaszczaniem może nastąpić przerwanie wykonywania procesu, czyli niejako „odebranie” mu procesora, i przekazanie sterowania do planisty. Pełne wywłaszczanie zapewniają tylko mechanizmy sprzętowe działające niezależnie od oprogramowania (np. dołączanie wywłaszczania do procedury obsługi przerwania zegarowego). W systemach bez wywłaszczania procesy powinny same dbać o sprawiedliwy podział czasu, co często uzyskuje się pośrednio – proces dokonując wywołania systemowego oddaje sterowanie procesowi jądra lub jednemu z procesów systemowych i w ten sposób „zrzeka” się procesora. Program niewykonywany pozostaje „w uśpieniu” do momentu, gdy znów zostanie mu przydzielony czas procesora.
Systemy
edytujSystemami wielozadaniowymi są:
- AmigaOS (zadania pracują z uprawnieniami systemu operacyjnego, więc mogą zatrzymać wywłaszczenie),
- Amoeba,
- AtheOS,
- BeOS,
- Mac OS i jego następca OS X,
- Atari TOS (bez wywłaszczania i ograniczony do tzw. akcesoriów; maksymalnie sześć)
- MagiC,
- FreeMiNT,
- OS/2,
- ReactOS,
- Syllable,
- SkyOS,
- Symbian,
- Bada OS,
- systemy z rodziny Uniksów (np. GNU/Linux),
- systemy z rodziny Microsoft Windows (np. Windows 7),
- MorphOS,
- AROS.
Nie są nimi natomiast np.: