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

Wielozadaniowość 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 nie oferują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

Systemami wielozadaniowymi są:

Nie są nimi natomiast np.:

  • CP/M,
  • DOS (może być uruchmiony więcej niż jeden proces, ale tylko jeden będzie wykonywany).

Zobacz też