Systemy operacyjne 0800-SOPER
Celem wykładu jest przedstawienie podstawowych pojęć i zagadnień związanych z budową oraz działaniem współczesnych systemów komputerowych i operacyjnych, od architektury komputerów po zarządzanie procesami, pamięcią i przestrzenią dyskową. Omawiane są również synchronizacja procesów, struktura systemów operacyjnych, ich wirtualizacja oraz przykłady rozwiązań stosowanych w systemach Windows, Unix i Linux. Ujęcie tematu łączy podstawy teoretyczne z praktyczną perspektywą użytkownika i administratora. Przekazywana wiedza ma ułatwić rozumienie, administrowanie i strojenie systemu komputerowego, a także pomóc w tworzeniu wydajnych aplikacji.
W ramach wykładu zostaną poruszone następujące zagadnienia:
1. Wprowadzenie
- Elementy systemu komputerowego
- Systemy operacyjne i ich zadania
2. Historia i rozwój komputerów i systemów operacyjnych
3. Architektura współczesnych komputerów
- Architektura i działanie procesora
- Rodzaje i hierarchia pamięci
- Magistrale i urządzenia peryferyjne
4. Działanie systemu komputerowego
- Monitor prosty, buforowanie i spooling
- Wieloprogramowość i podział czasu
- Systemy rozproszone i systemy czasu rzeczywistego
- Obsługa przerwań
- Urządzeń wejścia-wyjścia, sterowniki urządzeń
- Dualny tryb pracy
- Funkcje systemowe
5. Procesy i wątki
- Model procesu i jego stany
- Zarządzanie procesami
- Wątki poziomu użytkownika i jądra
6. Planowanie przydziału procesora
- Algorytmy planowania procesora
- Polityki planowania procesora
7. Synchronizacja procesów
- Komunikacja międzyprocesowa (IPC)
- Sekcje krytyczne i wyścigi
- Semafory, muteksy, monitory i bariery
- Zakleszczenia
8. Zarządzanie pamięcią
- Wymiana pamięci i stronicowanie
- Pamięć wirtualna i segmentacja pamięci
- Algorytmy wymiany stron
- Zarządzanie pamięcią w systemach GNU/Linux i Windows
9. Zarządzanie przestrzenią dyskową
- Fizyczna organizacja dysków i interfejsy dyskowe
- Macierze dyskowe (RAID)
- Systemy plików
- Zarządzanie logicznymi wolumenami
10. Wirtualizacja i konteneryzacja
- Maszyny wirtualne
- Wirtualizacja pełna i parawirtualizacja
- Kontenery i ich zastosowania
11. Struktura systemów operacyjnych
- Systemy monolityczne, warstwowe i hybrydowe
- Współdzielenie systemów operacyjnych
- Ładowanie systemu operacyjnego
12. Przykłady systemów operacyjnych
- Windows
- Unix i GNU/Linux
- macOS
Celem ćwiczeń jest zapoznanie się z mechanizmami funkcjonowania systemu operacyjnego, jego konfiguracją oraz badaniem jego aktualnego stanu z użyciem komend systemowych i narzędzi diagnostycznych. W czasie zajęć wykorzystywany będzie język Bash do tworzenia skryptów systemowych oraz język C do programowania z użyciem funkcji systemowych POSIX i implementowania wybranych mechanizmów oraz algorytmów związanych z działaniem systemu operacyjnego. Ćwiczenia pozwolą także poznać i analizować mechanizmy synchronizacji procesów w systemie GNU/Linux.
Ćwiczenia wymagają dostępu do powłoki serwerów Unix/Linux za pomocą SSH lub VNC. Rozwiązania zadań uczestnicy umieszczają w repozytorium Git. Do edycji skryptów wykorzystywane są edytory vim/emacs.
Całkowity nakład pracy studenta
Efekty uczenia się - wiedza
Efekty uczenia się - umiejętności
Efekty uczenia się - kompetencje społeczne
Koordynatorzy przedmiotu
W cyklu 2026/27Z: | W cyklu 2024/25Z: | W cyklu 2025/26Z: |
Metody dydaktyczne podające
Metody dydaktyczne poszukujące
Rodzaj przedmiotu
Wymagania wstępne
Kryteria oceniania
Przedmiot obejmuje 30 godzin wykładu oraz 30 godzin laboratorium komputerowego.
Metody oceniania:
Wykład: egzamin pisemny weryfikujący efekty kształcenia W1-5, U1-2,K1.
Do egzaminu są dopuszczone osoby, które zaliczyły zajęcia laboratoryjne.
Laboratorium: ocena na podstawie kolokwium oraz zadań realizowanych na zajęciach weryfikujących efekty kształcenia W5-6, U3-4,K1
Kryteria oceniania:
Wykład: zaliczenie na podstawie egzaminu, oceny wyznaczone według przelicznika:
51-60% - ocena: 3
61-70% - ocena: 3+
71-80% - ocena: 4
81-90% - ocena: 4+
91-100% - ocena 5
Laboratorium: zaliczenie na podstawie kolokwium, zadań realizowanych na laboratoriach oraz oceny projektów zaliczeniowych wg. przelicznika:
51-60% - ocena: 3
61-70% - ocena: 3+
71-80% - ocena: 4
81-90% - ocena: 4+
91-100% - ocena 5
Literatura
Literatura obowiązkowa:
Jeden z poniższych podręczników (mogą być starsze lub nowsze wydania)
- A. S. Tanenbaum, H. Bos. Systemy operacyjne. Wydawnictwo Helion, 2015.
- W. Stallings. Systemy operacyjne. Architektura, funkcjonowanie i projektowanie. Wydanie IX. Wydawnictwo Helion, 2018.
- A. Silberschatz, P.B. Galvin, Gr. Gagne. Podstawy systemów operacyjnych. Tom 1-2. Wydawnictwo Naukowe PWN, Warszawa, 2021.
Literatura dodatkowa:
- M. J. Bach. Budowa systemu operacyjnego UNIX. Wydawnictwo Naukowo-Techniczne, Warszawa,1995.
- D. P. Bovet i M. Cesati. Linux Kernel. Wydawnictwo RM, Warszawa, 2001.
- A. M. Lister i R. D. Eager. Wprowadzenie do systemów operacyjnych. Wydawnictwo Naukowo-Techniczne, Warszawa, 1994.
- R. Love. Linux kernel. Przewodnik programisty. Wydawnictwo Helion, Gliwice, 2004.
- U. Vahalia. Jądro systemu UNIX, nowe horyzonty. Wydawnictwo Naukowo-Techniczne, Warszawa, 2001.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: