Systemy operacyjne (zaawansowane)

Język wykładowy Polski
Semestr Zimowy
Status Wycofana z oferty
Opiekun Krystian Bacławski
Liczba godzin 30 (wyk.) 24 (ćw.) 6 (prac.)
Rodzaj Informatyczny 1
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Grupy efektów kształcenia Systemy operacyjne

Opis przedmiotu:

Na wykładzie skupimy się na poznawaniu funkcji jądra systemu operacyjnego udostępnianych programiście systemowemu. Oprócz tematów wspólnych dla większości SO będziemy zapoznawać się z rozwiązaniami dostępnymi w systemach uniksowych i uniksopodobnych (Linux, FreeBSD, NetBSD, MacOSX, QNX, MINIX3).

Wprowadzenie [4h]

  • Jądro, system operacyjny, dystrybucja.
  • Rodzaje systemów operacyjnych (wbudowane, czasu rzeczywistego, rozproszone).
  • Najważniejsze osiągnięcia w dziedzinie systemów operacyjnych.
  • Wywołania systemowe i komunikacja programów z jądrem.
  • Architektura jądra systemu operacyjnego (jądra monolityczne, mikrojądra, exokernel).

Procesy i wątki [8h]

  • Przestrzeń adresowa procesu.
  • Zarządzanie procesami i wątkami.
  • Hierarchia procesów.
  • Planowanie zadań.
  • Synchronizacja (wyłączanie przerwań, blokady, zmienne warunkowe).
  • Komunikacja (potoki, gniazda, skrzynki pocztowe)
  • Programowanie współbieżne (logika temporalna).

Pamięć [8h]

  • Zarządzanie pamięcią fizyczną (system bliźniaków).
  • Listowy algorytm przydziału.
  • Pule obiektów.
  • Pamięć wirtualna.
  • Zarządzanie przestrzenią wirtualną.
  • Stronicowanie na żądanie, buforowanie stron.
  • Algorytmy wymiany stron.
  • Ładowanie programów, biblioteki współdzielone.
  • Wersjonowanie przestrzeni adresowych (vm_object).

Pliki, systemy plików [6h]

  • Operacje na plikach i katalogach.
  • Hierarchia plików, punkty montażowe.
  • Uprawnienia plików.
  • Wirtualny system plików (VFS).
  • Zarządzanie przestrzenią dyskową.
  • Organizacja systemów plików (i-węzły, katalogi).
  • Migawki, dziennikowanie, kopie zapasowe.

Tematy dodatkowe [4h]

  • Sterowniki – zasoby, urządzenia, szyny, proces wykrywania urządzeń.
  • Zegar systemowy i zarządzanie czasem.
  • Proces ładowania systemu operacyjnego.
  • Autoryzacja i uwierzytelnianie (PAM).
  • Zapobieganie cyberatakom.
  • Maszyny wirtualne.