Temat: Budowa systemu komputerowego

System komputerowy (ang. computer system) to układ współdziałających ze sobą dwóch komponentów: sprzętu komputerowego (hardware) i oprogramowania (software)

Oprogramowanie systemowe – kontroluje i koordynuje użycie zasobów sprzętowych przez różne programy użytkowe.

Oprogramowanie narzędziowe (utilities) – wspomaga zarządzanie zasobami sprzętowymi przez dogodne interfejsy użytkowe oraz usprawnia i modyfikuje oprogramowanie systemowe.

Oprogramowanie użytkowe (application programs) – określa sposób, w jaki zostają użyte zasoby systemowe do rozwiązywania problemów obliczeniowych zadanych przez użytkownika (kompilatory, systemy baz danych, gry, oprogramowanie biurowe).

Użytkownicy (users) – ludzie, urządzenia lub inne komputery, mające bezpośredni kontakt z oprogramowaniem użytkowym: realizują różne zadania za pomocą programów użytkowych na sprzęcie komputerowym pod nadzorem systemu operacyjnego.

Warstwy systemu komputerowego:

Strukturę systemu komputerowego podzielono na warstwy, które realizują odmienne zadania. Są to:

  • warstwa sprzętowa,
  • system operacyjny,
  • programy narzędziowe,
  • programy użytkowe,
  • użytkownicy.

Podstawowe możliwości obliczeniowe zapewnia warstwa sprzętowa. Podstawowy podział zestawu komputerowego to podział ze względu na  przeznaczenie urządzeń składowych:

  1. Urządzenia wejścia (np. klawiatura, mysz, skaner, mikrofon),
  2. Urządzenia wyjścia (drukarka, monitor),
  3. Jednostka centralna (płyta główna, procesor, pamięć, karta grafiki, pamięci masowe).

Architektura systemów operacyjnych

System operacyjny (OS) jest to program lub układ wielu programów umożliwiających komunikację, pomiędzy warstwą sprzętową a użytkownikiem. System operacyjny pomaga komunikować się ze sprzętem i tworzy środowisko, w którym użytkownik uruchamia potrzebne aplikacje. Ważną cechą systemów operacyjnych jest graficzny interfejs użytkownika, który za pomocą grafiki ułatwia korzystanie ze sprzętu. Zadaniem systemu operacyjnego jest stworzenie bezpiecznego i niezawodnego środowiska, w którym użytkownik wykonuje swoją pracę.

Podział systemów operacyjnych pod względem sposobu komunikacji z użytkownikiem:

  • Systemy tekstowe– komunikujące się za pomocą komend wydawanych z linii poleceń (konsola testowa – DOS, LINUX).
  • Systemy graficzne – komunikują się za pomocą okienek i symboli (Windows, Linux).

Funkcje warstw systemu operacyjnego:

  • Jądro systemu – warstwa odpowiedzialna za wykonywanie podstawowych zadań systemu operacyjnego.
  • Powłoka systemu – specjalny program służący do komunikacji użytkownika z systemem operacyjnym.
  • System alokacji plików – jest to warstwa odpowiedzialna za sposób organizacji i zapisu danych (również plików) na nośniku informacji.

Podział systemów operacyjnych pod względem architektury systemów:

  • Systemy z jądrem monolitycznym – są to systemy o najprostszej strukturze. Ich zaletami są: stabilność, prostota, łatwość komunikacji między różnymi modułami jądra, natomiast wadą jest: trudność rozmiaru programów i wykrywanie ich błędów.
  • Systemy z mikro jądrami – wykonują mniej zadań niż jądro monolityczne oraz odpowiadają za podstawowe funkcję niezbędne do pracy systemu operacyjnego. Bardziej złożone zadania są wykonywane przez specjalne bloki funkcjonalne lub jako zwykłe procesy w trybie użytkownika a nie trybie jądra.
  • Systemy operacyjne z jądrem hybrydowym. Łączą cechy 2 powyższych, działają w trybie jądra; pozostałe również  tylko z mniejszym priorytetem, dzięki temu jest zachowana stabilność jądra monolitycznego do przeprowadzania najważniejszych zadań. Większość systemów operacyjnych oparta jest na jądrze hybrydowym (rodzina MS Windows).

Cechy jądra systemu operacyjnego:

  • Wielozadaniowość – możliwość równoczesnego uruchamiania wielu procesów, programów i aplikacji .
  • Wielowątkowość – możliwość wykonywania kilku niezależnych wątków w ramach jednego procesu.
  • Skalowalność – jest możliwość rozwoju lub miniaturyzacji sprzętu
  • Wywłaszczalność – zdolność jądra do wstrzymania aktualnie wykonywanego zadania aby umożliwić wykonywanie innego. Dzięki temu zawieszenie jednego procesu  nie powoduje blokady całego systemu.