Jądro systemu operacyjnego i jego zadania. Rodzaje jąder SO. Zadania i cechy współczesnych SO

Jądro systemu operacyjnego (ang. kernel, OS kernel)

program komputerowy będący podstawą (rdzeniem) systemu operacyjnego, mający całkowitą kontrolę nad systemem komputerowym. Jest pierwszym uruchamianym programem (zaraz po programie uruchamiającym). Odpowiada za obsługę procesu uruchomienia, obsługę urządzeń wejścia/wyjścia, pracę z pamięcią i pamięcią masową, itd.

Jądro jest warstwą łączącą sprzęt z oprogramowaniem. Realizuje najczęściej wykonywane zadania w systemie operacyjnym, np. wykonanie zapisu pliku, odczyt danych z pamięci, przetwarzanie danych otrzymanych z karty sieciowej itp.

Przykładowe zadania jądra systemu operacyjnego:

  • obsługa procesów (uruchamianie, wstrzymywanie, przełączanie, zatrzymywanie, …) — najważniejsze zadanie jądra,
  • obsługa urządzeń i ich przerwań,
  • zarządzanie zasobami komputera,
  • zarządzanie pamięcią,
  • zarządzanie pamięcią masową,
  • obsługa sieci.

Rodzaje jąder systemów operacyjnych

Ze względu na ich architekturę, jądra można sklasyfikować w trzy główne kategorie.

Jądra monolityczne zawierają wszystkie podstawowe funkcje systemu operacyjnego oraz sterowniki urządzeń. Często pozwalają ładować dodatkowe moduły w trakcie pracy, np. w celu obsługi nowego urządzenia. Znajdziemy je w systemach uniksowych.

Mikrojądra zwykle udostępniają konieczne minimum: obsługę pamięci, procesów. Pozostałe funkcje muszą zostać zaimplementowane jako osobne programy korzystające z jądra. Znajdziemy je w systemach takich, jak BeOS, MINIX; przykładem takiego jądra jest Mach.

Jądra hybrydowe są podobne do mikrojąder, ale zawierają dodatkowy kod w przestrzeni jądra, dzięki czemu programy mogą się wykonywać szybciej niż w normalnym trybie. Łączą cechy obu powyższych. Nie należy ich mylić z monolitycznymi (mogącymi ładować moduły po uruchomieniu). Jądra te znajdziemy m. in. w systemach Windows NT i nowszymi (także Windows 10) czy macOS (jądro nosi nazwę XNU – X is Not Unix).

Cechy jądra systemu

Wielozadaniowość – możliwość jednoczesnego uruchamiania więcej niż jednego programu (procesu).

Wielowątkowość – obsługa sytuacji, w której jeden proces wykonuje kilka niezależnych wątków (swoich „mniejszych” programów, oczekując na ich rezultat).

Wywłaszczalność – możliwość przerwania wykonywania procesu, odebrania mu czasu procesora, i przekazania możliwości wykonywania innemu procesowi. Zadanie to realizuje planista – program szeregujący procesy w kolejce do wykonania; ustala ich kolejność oraz czas, w którym mogą się wykonać.

Skalowalność – możliwość rozwoju sprzętu lub jego miniaturyzacji. Można je uprościć lub rozwinąć, w zależności od potrzeb.

Zadania systemu operacyjnego

Zarządzanie zasobami maszyny. System optymalizuje wykorzystanie sprzętu dostępnego w systemie komputerowych oraz steruje nimi dzięki sterownikom.

Sterownik

oprogramowanie umożliwiające komputerowi komunikację ze sprzętem i urządzeniami peryferyjnymi.

Gromadzenie danych na dyskach i zarządzanie nimi. System jest wyposażony w instrukcje obsługi co najmniej jednego systemu plików - sposobu fizycznego zapisywania danych w pamięci masowej i utrzymywania informacji o nich (metadanych).

Separacja środowiska uruchomieniowego ("maszyny wirtualne"). System przygotowuje specjalne środowiska uruchomieniowe dla programów, które są uproszczonym obrazem komputera. Aplikacje tak uruchomione nie mają dostępu do danych innych programów, co zwiększa bezpieczeństwo systemu.

Wielozadaniowość. Na jednym komputerze może działać wiele aplikacji jednocześnie.

Interakcja z użytkownikiem. Funkcja ta jest spełniana przez powłokę systemu - program, który umożliwia użytkownikowi uruchamianie aplikacji.

Komunikacja z innymi komputerami lub urządzeniami. System wie, w jaki sposób porozumiewać się z innymi urządzeniami w sieci komputerowej, co pozwala nam np. korzystać z drukarki podłączonej do komputera w innym pokoju.

Cechy współczesnych systemów operacyjnych

  • łatwość instalacji i użytkowania,
  • współpraca z innymi systemami,
  • zgodność sprzętowa,
  • praca w sieci komputerowej (i Internecie),
  • cena,
  • dostępność aplikacji,
  • możliwość uruchomienia różnych wersji językowych.

Podsumowanie, źródła

Ten wpis realizuje następujące punkty podstawy programowej:

  • podstawa programowa 2017:
    • EE.08.1.1 stosuje podstawowe pojęcia z zakresu informatyki i elektroniki;
  • podstawa programowa 2019:
    • INF.02.2(2) definiuje elementy architektury systemów komputerowych,
      • INF.02.2(2)2 wymienia zależności między pamięcią operacyjną, procesorem i pozostałymi elementami systemu komputerowego.

Źródła:

  • The Linux Information Project. Kernel Definition. Dostęp online: http://www.linfo.org/kernel.html;
  • Sylwia Osetek, Krzysztof Pytel. INF.02. Administracja i eksploatacja systemów komputerowych, urządzeń peryferyjnych i lokalnych sieci komputerowych. Wyd. I, WSiP, 2019. ISBN: 978-83-02-18863-3;
  • opracowania własne.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.