Nadzoruje i koordynuje posługiwanie się sprzętem komputerowym przez różne programy użytkowe, które pracują dla użytkownika
Tworzy środowisko (ang. emironment) w którym inne programy mogą wykonywać zadania
Rozdziela zasoby systemu komputerowego
Sygnalizuje błędy
Ułatwia tworzenie i uruchamianie innych programów