Czym jest system operacyjny?

Pojęcie systemu operacyjnego

System operacyjny to oprogramowanie zarządzające sprzętem komputerowym (czyli software na hardware), tworzy możliwość uruchamiania i kontrolę procesów. System zostaje załadowany do pamięci operacyjnej RAM i wykonywany przez procesor. Za zarządzanie procesami odpowiada jądro systemu operacyjnego, a sposób ich obsługi jest różny dla różnych systemów operacyjnych. W skrócie, jest to pośrednik pomiędzy maszyną a człowiekiem, dostarcza człowiekowi komplet środków umożliwiających projektowanie, kodowanie, uruchamianie i zarządzanie programami.

Funkcje systemu operacyjnego

System operacyjny zajmuje się:

  • planowaniem oraz przydziałem czasu procesora poszczególnym zadaniom (procesom) - jest to zadanie jądra,
  • kontrolą i przydziałem pamięci operacyjnej dla zadań, które uruchamia,
  • synchronizacją zadań i komunikacją pomiędzy zadaniami,
  • obsługugą sprzętu oraz zapewnieniem równolegle wykonywanym zadaniom dostęp do sprzętu bez interferencji (czyli wolne od procesów wykorzystujących ten sam zasób w tym samym czasie),
  • dostarczeniem środowiska dla programów użytku codziennego, np. do pracy,
  • dzieleniem się zasobami wśród wielu użytkowników,
  • sterowaniem urządzeniami wejscie i wyjscia, np. klawiaturą, myszą, skanerem,
  • najbardziej korzystnym wykorzystaniem sprzętu komputerowego,
  • dostarczeniem wygodnego interfejsu dla użytkownika (wiele systemów operacyjnych posiada środowiska graficzne ułatwiające komunikację maszyny z użytkownikiem),
  • ustalanie połączeń sieciowych, zarządzanie plikami (może, ale nie musi się zajmować).

Tryb wyświetlania (tryb karty graficznej):

  • interfejs tekstowy — urządzenie wejściowe to klawiatura, a wyjściowe to drukarka znakowa lub wyświetlacz w trybie znakowym, terminal uruchomiony w trybie tekstowym,
  • interfejs graficzny — wejście to urządzenie wskazujące (np. myszka), a wyjściowe to wyświetlacz graficzny. Obecnie większość komputerów przełącza się w tryb graficzny. Jeżeli system operacyjny pracuje w wierszu poleceń to jest on obecnie często realizowany również w trybie graficznym, a nie jak to miało miejsce dawniej w trybie tekstowym (otwieramy konsolę). Jeżeli system operacyjny pracuje w trybie tekstowym (np. DOS), to pozostaje w tym trybie.

Budowa systemu operacyjnego

3 główne elementy budowy systemu operacyjnego, to:

  • Jądro systemu wykonujące i kontrolujące zadania (plan pracy procesora, które zadanie i jak długo ma być wykonywane, przełączanie i komunikację między zadaniami). W zależnosci od rodzaju, inaczej pracuje.
    • Wyróżniamy jądra monolityczne — najczęściej wykorzystywane w systemie unix, linux, BSD, gdzie wszystkie procesy, którymi zajmuje się jądro traktowane są jako jeden program uruchomiony w tle.
    • Mikrojądro, np MACH, AIX. W przypadku tego jądra, drobne procesy uruchamiane są w tle, dzięki temu łatwiej jest znaleźć błąd i rozwijać oprogramowanie.
    • Jądro hybrydowe — jak nazwa wskazuje, jest to mix powyższych jąder. Pozwala to na wydajniejszą pracę jądra monolitycznego przy jednoczesnym oddzieleniu części procesów od niego.
  • Powłoka – specjalny program komunikujący użytkownika z systemem operacyjnym. Przekierowuje wejście na wyjście, obsługuje wyrażenia regularne, posiada wbudowany język programowania, własną składnię. Powłokę w domyśle rozumiemy, że jest dostępna w trybie tekstowym karty graficznej. Praca w powłoce w trybie graficznym to praca np. w explorator Windows, Aqua Mac, KDE linux xfce bądź GNOME - inaczej mówiąc w managerach plików (ich funkcję może pełnić również przeglądarka internetowa). Problem z graficzną powłoką to problem wydajności pracy, dlatego do pracy używamy powłoki w trybie tekstowym, a przynajmniej symulowanej powłoki do pracy w trybnie tekstowym.
  • System plików – sposób zapisu struktury danych na dysku.

Podział systemów operacyjnych

Najbardziej podstawowym kryterium podziału systemów operacyjnych (podział ten odnosi się do najbardziej podstawowej funkcjonalności systemu operacyjnego jakim jest planowanie i przydział czasu procesora poszczególnym zadaniom ) jest podział na systemy czasu rzeczywistego oraz systemy czasowo niedeterministyczne (inne).

System operacyjny czasu rzeczywistego (ang. Real-Time Operating System – RTOS)

Zadaniem systemu operacyjnego czasu rzeczywistego jest nadanie odpowiedzi (np. sygnałów sterujących) wskutek nastąpienia zdarzeń (zmianie sygnałów). Podstawowym jego zadaniem jest określenie najdłuższego czasu po jakim pojawi się odpowiedź. Ze względu na kryterium czasu, systemy operacyjne czasu rzeczywistego dzielimy na:

  • twarde, które podają najdłuższy czas odpowiedzi, który nie zostanie przekroczony,
  • miękkie, które odpowiadają najszybciej jak tylko mogą, ale nie podają najdłuższego czasu odpowiedzi.

Zastosowanie systemów czasu rzeczywistego

Na systemy czasu rzeczywistego ma zapotrzebowanie technika wojskowa do sterowania rakietami. Poza tym wykorzystuje się je w przemyśle cywilnym, sterują np.: centralami telefonicznymi, lądownikami NASA oraz samochodowy ABS.

Ze względu na sposób realizacji przełączania zadań systemy operacyjne można podzielić na:

  • systemy z wywłaszczaniem zadań (wstrzymanie aktualnie wykonywanego zadania, aby umożliwić działanie innemu.
    • większość uniksów
    • Microsoft Windows (od Windows '95)
    • AmigaOS
    • MorphOS
    • MagiC
  • systemy bez wywłaszczania, gdzie zadania informują , kiedy chcą umożliwić przejście do kolejnych zadań. Taki system zwykle działa bardzo wolno.
    • Microsoft Windows do wersji 3.x
    • Mac OS do wersji 9

Inny rodzaj podziału systemów operacyjnych to podział na systemy:

  • otwarte - uruchamialne na każdej maszynie, np. PC i modyfikowalne,
  • wbudowane (embedded) - systemy określonego przeznaczenia, ukierunkowany na jeden konkretny sprzęt np. pralka.