System operacyjny
System operacyjny (ang. operating system, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.Budowa systemu operacyjnego
Przyjęto podział na trzy główne elementy budowy systemu operacyjnego:
- jądro systemu wykonujące i kontrolujące ww. zadania.
- powłoka – specjalny program komunikujący użytkownika z systemem operacyjnym,
- system plików – sposób zapisu struktury danych na nośniku.
Jądro składa się z następujących elementów funkcjonalnych:
- planisty czasu procesora, ustalającego które zadanie i jak długo będzie wykonywane,
- przełącznika zadań, odpowiedzialnego za przełączanie pomiędzy uruchomionymi zadaniami,
- Dodatkowo:
- modułu zapewniającego synchronizacje i komunikację pomiędzy zadaniami,
- modułu obsługi przerwań i zarządzania urządzeniami,
- modułu obsługi pamięci, zapewniającego przydział i ochronę pamięci.
- innych zależnie od funkcji i przeznaczenia systemu.
Podział systemów operacyjnych
Najszerszym, ale najbardziej podstawowym kryterium podziału systemów operacyjnych jest podział na:
- system operacyjny czasu rzeczywistego (RTOS)
- systemy operacyjne czasowo niedeterministyczne
Podział ten odnosi się do najbardziej podstawowej funkcjonalności systemu operacyjnego jakim jest planowanie i przydział czasu procesora poszczególnym zadaniom.
Ze względu na sposób realizacji przełączania zadań systemy operacyjne można podzielić na:
- systemy z wywłaszczaniem zadań
- systemy bez wywłaszczania.
Inny rodzaj podziału to podział na:
- otwarte systemy operacyjne
- wbudowane systemy operacyjne.
Systemy otwarte można uruchomić na dowolnej maszynie wskazanego rodzaju np. PC i w określonym stopniu modyfikować. Systemy wbudowane jak sama nazwa wskazuje są zaszyte (wbudowane) wewnątrz urządzeń użytkowych, maszyn pojazdów itp. Aby uzyskać wysoką niezawodność pracy minimalizuje się w takich przypadkach możliwość dokonywania zmian w konfiguracji systemu operacyjnego.
Pod względem środowiska użytego do implementacji systemu można wprowadzić podział na:
- programowe
- sprzętowe.
Sprzętowe systemy operacyjne to: sprzętowo programowe rozwiązania integrowane z wybraną architekturą procesora. W takim przypadku sprzętowa część systemu przyśpiesza wybrany zakres czynności wykonywanych przez system (przykładowo przełączania zadań i zachowywanie ich kontekstu).
Można ustalić pewną relację pomiędzy wymienionymi kryteriami podziału. Zazwyczaj jako otwarte systemy operacyjne spotyka się systemy w pełni programowe, czasowo niedeterministyczne stosujące wywłaszczenie przy przełączaniu zadań. Wbudowane systemy operacyjne są najczęściej czasowo deterministyczne, zazwyczaj nie stosują wywłaszczenia zadań, bywa, że są realizowane również w sprzęcie.
System operacyjny jako interfejs pomiędzy maszyną a człowiekiem
Aby można było mówić, że system operacyjny tworzy środowisko niezbędne do uruchamiania i kontroli zadań musi on udostępniać interfejs pozwalający na wykonanie pewnych operacji. Przykładowo musi dostarczać metody pozwalające na uruchomienie lub zatrzymanie wskazanego zadania. Zazwyczaj system operacyjny udostępnia w tym celu zestaw funkcji zwanych API lub wywołań systemowych. Programista aplikacyjny może skorzystać z tych funkcji w celu uzyskania żądanego efektu, przykładowo odczytu danych z pliku dyskowego (o ile system operacyjny posiada system plików).
Jakąkolwiek czynność na sprzęcie chcą wykonać zadania użytkownika, korzystają zawsze z interfejsu systemu. Ma to tę zaletę, że o szczegółach obsługi sprzętu jest poinformowany tylko i wyłącznie system operacyjny a same zadania nie muszą znać specyfiki obsługi urządzeń. Ułatwia to zadanie programistom aplikacyjnym oraz rozwiązuje potencjalne problemy.
Innym rodzajem interfejsu jest interfejs użytkownika. Dzięki niemu możliwa jest bezpośrednia interakcja użytkownika z komputerem, choćby tak trywialna jak bezpieczne wyłączenie maszyny. Należy przy tym zwrócić uwagę, że o ile interfejs programowy (API lub wywołania systemowe) jest elementem koniecznym to interfejs użytkownika jest elementem opcjonalnym.