System operacyjny (ang. skrót OS Operating System) - program komputerowy bądź zbiór programów, który zarządza sprzętem oraz aplikacjami komputera. Podstawą wszystkich systemów operacyjnych jest wykonywanie podstawowych zadań takich jak: kontrolowanie i przypisywanie pamięci, przydział czasu procesora, obsługa urządzeń, ustalanie połączeń sieciowych oraz zarządzanie plikami. Wiele systemów operacyjnych posiada środowiska graficzne ułatwiające ich obsługę.
Określenie to jednak nie jest w pełni ścisłe. Czasem potocznie[potrzebne źródło] mówi się tak mając na myśli całość oprogramowania dostarczanego z zakupionym komputerem (zobacz: dystrybucja), czasem samo jądro systemu operacyjnego, czasem bootloader, czasem z kolei chodzi o całą rodzinę systemów operacyjnych (np. Microsoft Windows).
Zadania systemu operacyjnego [edytuj]
zarządzanie zasobami komputera, m.in.: procesorem (a dokładniej czasem procesora), pamięcią, urządzeniami peryferyjnymi oraz przydzielanie zasobów procesom,
koordynacja pracy ww. urządzeń poprzez obsługę przerwań oraz odpowiednie na nie reagowanie,
ochrona danych i pamięci - tak aby jeden proces, w wyniku błędu lub zamierzonego działania nie mógł zniszczyć lub pozyskać danych innego procesu,
automatyzacja najczęściej wykonywanych funkcji
ukrywanie przed aplikacjami skomplikowania sprzętu komputerowego przez tworzenie abstrakcji, np
zbiory zapisanych klastrów na dysku widziane są jako pliki o symbolicznych nazwach
abstrakcja równoległości wykonywania programów
jednolity sposób dostępu do urządzeń
System operacyjny jest ładowany do pamięci na początku pracy komputera. Program ten ma bardzo specyficzny charakter: w przeciwieństwie do programów użytkowych (aplikacji) nie korzysta z żadnych gotowych funkcji, tylko sam je udostępnia, a więc od niego zależą rzeczywiste możliwości wykorzystania sprzętu komputerowego.
Systemy operacyjne ze względu na sposób przetwarzania można podzielić na:
Systemy przetwarzania bezpośredniego - systemy interakcyjne gdzie występuje bezpośrednia interakcja pomiędzy użytkownikiem a systemem i wykonywanie zadania użytkownika rozpoczyna się zaraz po przedłożeniu,
Systemy przetwarzania pośredniego - systemy wsadowe gdzie występuje znacząca zwłoka czasowa między przedłożeniem a rozpoczęciem wykonywania zadania i niemożliwa jest ingerencja użytkownika w wykonywanie zadania.
Ze względu na dopuszczalną liczbę zadań systemy dzielimy na:
Systemy jednozadaniowe gdzie niedopuszczalne jest rozpoczęcie wykonywania następnego zadania użytkownika przed zakończeniem poprzedniego,
Systemy wielozadaniowe gdzie dopuszczalne jest istnienie jednocześnie wielu zadań (procesów), którym zgodnie z pewną strategią przydzielany jest procesor. Zwolnienie procesora następuje w wyniku: żądania przydziału dodatkowego zasobu, zainicjowania operacji wejścia/wyjścia, przekroczenia ustalonego limitu czasu (kwantu czasu).
Wielozadaniowe systemy operacyjne można podzielić na oferujące i pozbawione wywłaszczania. W systemie z wywłaszczaniem jest możliwe przerwanie wykonywania procesu i przeniesienie go z powrotem do kolejki kontrolowanej przez algorytm szeregowania. W systemie bez wywłaszczania zadania muszą przełączać się dobrowolnie. Proces aktywny (wykonujący się) jest przenoszony do kolejki procesów oczekujących tylko wtedy, gdy sam przerwie (wstrzyma, zawiesi) swoje działanie a dopóki tego nie uczyni (lub nie zakończy działania), żaden inny proces nie otrzyma dostępu do procesora.
Natomiast biorąc pod uwagę liczbę użytkowników systemy operacyjne można podzielić na:
Systemy dla jednego użytkownika gdzie zasoby przeznaczone są dla jednego użytkownika (np. w przypadku komputerów osobistych), nie ma mechanizmów autoryzacji dostępu, a mechanizmy ochrony informacji są ograniczone,
Systemy wielodostępne gdzie wielu użytkowników może korzystać z zasobów systemu komputerowego, a system operacyjny gwarantuje ich ochronę przed niepowołaną ingerencją.
Budowa systemu operacyjnego [edytuj]
Przyjęto podział na trzy główne elementy budowy systemu operacyjnego:
jądro systemu wykonujące ww. zadania,
system plików - sposób zapisu struktury danych na nośniku.