- 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ę