Nazwa przedmiotu:
Systemy operacyjne
Koordynator przedmiotu:
Rajmund Kożuszek
Status przedmiotu:
Fakultatywny ograniczonego wyboru
Poziom kształcenia:
Studia II stopnia
Program:
Informatyka
Grupa przedmiotów:
Przedmioty techniczne - podstawowe
Kod przedmiotu:
SOI
Semestr nominalny:
1 / rok ak. 2021/2022
Liczba punktów ECTS:
5
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1. liczba godzin kontaktowych – 69 godz., w tym  obecność na wykładach: 30 godz.,  obecność na zajęciach laboratoryjnych:30 godz.,  udział w konsultacjach związanych z problematyką poruszaną na wykładzie//laboratorium/zajęcia wprowadzające do projektu: 4 godz.,  udział w konsultacjach przedegzaminacyjnych: 2 godz.,  obecność na egzaminie: 3 godz. (pomijamy ew. egzamin ustny) 2. praca własna studenta – 63 godz., w tym  przygotowanie do zajęć laboratoryjnych 30 godz.,  udział w dyskusji w trakcie wykładu: 1 godz.,  analiza literatury i materiałów wykładowych związana z przygotowaniem do kolejnych wykładów, instalacja oprogramowania: 14 godz.,  przygotowanie do kolokwium: 8 godz.  przygotowanie do egzaminu: 10 godz. Łączny nakład pracy studenta wynosi 132 godz., co odpowiada 5 pkt. ECTS.
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
2,5 pkt. ECTS, co odpowiada 69 godz. kontaktowym
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
2,25 pkt. ECTS, co odpowiada 63 godz. zajęć laboratoryjnych i przygotowania do tych zajęć
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium30h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
Podstawy informatyki i programowania
Limit liczby studentów:
150
Cel przedmiotu:
Celem przedmiotu jest nabycie przez studentów wiedzy dotyczącej systemów operacyjnych oraz nabycie najistotniejszych umiejętności dotyczących programowania systemowego - zarówno jako modyfikowania systemu operacyjnego jak i efektywnego użytkowego wykorzystywania jego funkcjonalności. W trakcie interaktywnie realizowanego wykładu omawiane są zagadnienia dotyczące dynamicznych (procesy, wątki, synchronizacja) oraz statycznych (budowa, system plików, bezpieczeństwo) aspektów funkcjonowania systemów operacyjnych. Wybrane fragmenty wykładu prowadzone są w formie dyskusji. Wprowadzone są również elementy gamifikacji, poprzez wykorzystanie w procesie dydaktycznym premiowanych punktowo zadań i konkursów. W trakcie laboratoriów studenci realizują jednoosobowo projekty dotyczące wybranych aspektów funkcjonowania systemów operacyjnych, takich jak: wywołania systemowe, synchronizacja czy przechowywanie danych. Do realizacji przedmiotu użyto m.in. metody kształcenia mieszanego, w której poza bezpośrednim kontaktem z prowadzącym wykorzystywane są materiały dostępne on-line.
Treści kształcenia:
WYKŁADY: 1. Wprowadzenie: Definicje procesu operacyjnego i zasobów, funkcje jądra systemu operacyjnego, tryby działania systemów komputerowych, historia rozwoju systemów operacyjnych. 2. Rozszerzenie programowania w języku powłoki: idea, uzasadnienie, składnia, potoki, przekierowania, metaznaki i wyrażenia regularne. 3. Procesy i wątki: zarządzanie, graf przejść stanów, szeregowanie zadań, tworzenie procesów demonów, wzajemne wykluczanie i synchronizacja, wyścigi i sekcje krytyczne, semafory, monitory, komunikaty, klasyczne algorytmy synchronizacyjne. 4. Zarządzanie pamięcią: hierarchia pamięci, algorytmy wymiany stron, stronicowanie, segmentacja. 5. Obsługa urządzeń zewnętrznych: urządzenia wejścia/wyjścia, buforowanie, pamięć podręczna, DMA, metody programowania wejścia/wyjścia, pamięć masowa i typy macierzy RAID 6. Zarządzanie plikami. Struktura i organizacja systemu plików. Pliki zwykłe, katalogi i pliki specjalne. Metody ochrony i kontroli dostępu. 7. Idea i budowa mikrojądra. Mikrojądro w systemach wieloprocesorowych. Specyfika systemów czasu rzeczywistego. Systemy operacyjne dla systemów wbudowanych. 8. Wirtualizacja i przetwarzanie w chmurze: obsługa sieci komputerowych, gniazda, rodzaje wirtualizacji, wirtualizacja pamięci i urządzeń, rodzaje przetwarzania w chmurze, rozwiązania kontenerowe i usługi w chmurze. 9. Bezpieczeństwo systemu operacyjnego: bezpieczeństwo użytkownika systemu operacyjnego, kontrola dostępu i metody uwierzytelniania, mechanizmy bezpieczeństwa jądra systemu operacyjnego, sprzętowe mechanizmy wspierające bezpieczeństwo, podstawowe techniki przełamywania zabezpieczeń. 10. Cechy charakterystyczne wybranych współczesnych systemów operacyjnych: Linux/Android, MS Windows LABORATORIUM: 1. Kompilacja jądra 2. Tworzenie wywołania systemowego 3. Szeregowanie procesów 4. Synchronizacja procesów 5. Komunikacja międzyprocesowa 6. Przechowywanie danych
Metody oceny:
Przewidywane formy kształcenia i organizacja przedmiotu Realizacja przedmiotu obejmuje następujące formy zajęć:  wykład prowadzony w wymiarze 2 godz. tygodniowo;  zajęcia laboratoryjne; w ramach tych zajęć student, korzystając z oprogramowania i sprzętu będzie – pod opieka prowadzącego zajęcia – realizował wskazane zadania związane tematycznie z treścią wykładu; Sprawdzanie założonych efektów kształcenia realizowane jest przez:  ocenę wiedzy i umiejętności związanych z realizacją zadań laboratoryjnych – ocenę sprawozdań z realizacji zadań;.  ocenę wiedzy i umiejętności wykazanych na kolokwium o charakterze problemowym;  ocenę wiedzy i umiejętności wykazanych na egzaminie pisemnym o charakterze problemowym oraz – w przypadkach szczególnych – na egzaminie ustnym,
Egzamin:
tak
Literatura:
Systemy operacyjne. Wydanie IV, Andrew S. Tanenbaum, Herbert Boss, Wydawnictwo Helion, 2016 Systemy operacyjne. Architektura, funkcjonowanie i projektowanie. William Stallings, Wydawnictwo Helion, 2010 http://www.minix.org Minix https://www.linux.org Linux https://www.vmware.com VMware Workstation Player https://www.virtualbox.org VirtualBox
Witryna www przedmiotu:
https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103B-INxxx-ISP-SOI
Uwagi:
(-)

Efekty uczenia się