- Nazwa przedmiotu:
- Systemy operacyjne
- Koordynator przedmiotu:
- dr inż. Andrzej Wielgus
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Elektronika i Telekomunikacja
- Grupa przedmiotów:
- Przedmioty informatyki - obowiązkowe
- Kod przedmiotu:
- SOZ
- Semestr nominalny:
- 3 / rok ak. 2020/2021
- Liczba punktów ECTS:
- 5
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 125 (samodzielne studiowanie podręcznika - 45 h, udział w zajęciach stacjonarnych - 4 h, konsultacje dotyczące zadań, projektów i testów - 16 h, rozwiązywanie zadań i realizacja projektów - 40 h, przygotowanie do egzaminu i egzamin - 20 h)
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 1
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 3
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia15h
- Laboratorium0h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Znajomość architektury systemów komputerowych oraz podstaw programowania w języku C/C++ (lub w języku Pascal).
- Limit liczby studentów:
- 100
- Cel przedmiotu:
- Zapoznanie studentów z budową, zasadami działania oraz metodami i algorytmami stosowanymi we współczesnym wielozadaniowym i wielodostępnym systemie operacyjnym na przykładzie systemu Linux. Zapoznanie z problemami implementacji podstawowych mechanizmów. Praktyczna umiejętność użytkowania systemu oraz programowania z wykorzystaniem funkcji systemowych systemu Linux.
- Treści kształcenia:
- Wprowadzenie: ogólna charakterystyka systemów operacyjnych, przegląd współczesnych systemów operacyjnych, sesja użytkownika w systemie Linux.
Interfejs użytkownika : procesy i sygnały, sterowanie pracami.
Interfejs użytkownika: pliki, struktura katalogowa systemu plików, atrybuty pliku, podstawowe operacje na plikach.
Interfejs użytkownika: interpreter poleceń (powłoka bash), filtry (grep, sed, awk), środowisko graficzne X Window.
Interfejs programisty: narzędzia, biblioteki funkcji, funkcje systemowe.
Zarządzanie procesami: reprezentacja procesu, atrybuty procesu, system plików /proc, planowanie procesów, operacje na procesach, obsługa sygnałów, wątki.
Zarządzanie pamięcią: podstawowe pojęcia, pamięć wirtualna procesu, stronicowanie na zadanie, adresowanie pamięci, algorytm zastępowania stron.
Zarządzanie plikami i urządzeniami wejscia/wyjscia: reprezentacja plików i katalogów, struktura i organizacja systemu plików, operacje na plikach, sieciowy system plików NFS, obsługa urządzeń wejscia/wyjscia.
Synchronizacja i komunikacja między procesami: podstawowe pojęcia, łącza, IPC (semafory, kolejki komunikatów, pamięć dzielona).
Komunikacja sieciowa: rodzina protokołów TCP/IP, adresy internetowe, interfejs gniazd, scenariusze transmisji, operacje na gniazdach.
Dodatki Wykaz funkcji systemowych.
- Metody oceny:
- Podstawą oceny studenta są 2 projekty oraz egzamin pisemny lub ustny.
Studenci, którzy dobrze przygotują zaawansowane projekty programistyczne są zwolnieni z egaminu pisemnego i zdają egzamin ustny obejmujący również obronę projektów.
- Egzamin:
- tak
- Literatura:
- 1. Silberschatz A., Galvin P.B.: Podstawy systemów operacyjnych, WNT 2000, 2004
2. Glass G., Ables K.: Linux dla programistów i użytkowników, Wydawnictwo Helion 2007
3. Rochkind M.J.: Programowanie w systemie UNIX dla zaawansowanych, WNT 2007
4. Stevens R.W.: Programowanie w środowisku systemu UNIX, WNT 2002
5. Johnson M.K., Troan E.W.: Oprogramowanie użytkowe w systemie Linux, WNT 2000
6. Kernighan B.W., Ritchie D.M.: Język ANSI C, WNT 1994
- Witryna www przedmiotu:
- https://inz.okno.pw.edu.pl/
- Uwagi:
- -
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka W01
- Student, który zaliczył przedmiot posiada uporządkowaną wiedzę na temat:
a) zadań, własności i budowy systemów operacyjnych,
b) zasad działania powłoki jako tekstowego interfejsu użytkownika,
c) wykorzystania programów systemowych do nadzorowania procesów i manipulowania plikami.
Weryfikacja: egzamin, projekt 1
Powiązane charakterystyki kierunkowe:
K_W19, K_W20
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W02
- Student, który zaliczył przedmiot posiada uporządkowaną wiedzę na temat:
a) podstaw realizacji przetwarzania współbieżnego z wykorzystaniem procesów i wątków,
b) planowania przydziału procesora,
c) strategii zarządzania pamięcią operacyjną i realizacji pamięci wirtualnej,
d) podstawowych mechanizmów komunikacji między procesami,
e) podstawowych problemów synchronizacji i metod ich rozwiązywania,
f) budowy i własności wybranych typów systemów plików.
Weryfikacja: egzamin, projekt 2
Powiązane charakterystyki kierunkowe:
K_W19, K_W20
Powiązane charakterystyki obszarowe:
I.P6S_WG
Profil ogólnoakademicki - umiejętności
- Charakterystyka U01
- Student, który zaliczył przedmiot potrafi posłużyć się wywołaniami programów systemowych oraz funkcji powłoki do realizacji przetwarzania wsadowego z wykorzystaniem skryptów powłoki.
Weryfikacja: projekt 1, egzamin
Powiązane charakterystyki kierunkowe:
K_U15, K_U05
Powiązane charakterystyki obszarowe:
III.P6S_UW.4.o, I.P6S_UU
- Charakterystyka U02
- Student, który zaliczył przedmiot potrafi posłużyć się wywołaniami funkcji systemowych POSIX do tworzenia programów realizujących:
a) przetwarzanie wieloprocesowe i wielowątkowe z wykorzystaniem obsługi sygnałów,
b) operacje na plikach,
c) komunikowanie się procesów,
d) synchronizację współpracujących procesów,
e) prostą komunikację sieciową typu klient-serwer.
Weryfikacja: projekt 2, egzamin
Powiązane charakterystyki kierunkowe:
K_U05, K_U07, K_U15
Powiązane charakterystyki obszarowe:
I.P6S_UU, I.P6S_UW, III.P6S_UW.4.o