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. 2017/2018
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 (zajęcia stacjonarne oraz konsultacje w sprawie projektów i zadań)
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1 (realizacja projektów)
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://red.okno.pw.edu.pl/witryna/home.php
Uwagi:
-

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt 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 efekty kierunkowe: K_W19, K_W20
Powiązane efekty obszarowe: T1A_W04, T1A_W04
Efekt 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 efekty kierunkowe: K_W19, K_W20
Powiązane efekty obszarowe: T1A_W04, T1A_W04

Profil ogólnoakademicki - umiejętności

Efekt 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 efekty kierunkowe: K_U05, K_U15
Powiązane efekty obszarowe: T1A_U05, T1A_U14, T1A_U15
Efekt 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 efekty kierunkowe: K_U05, K_U07, K_U15
Powiązane efekty obszarowe: T1A_U05, T1A_U07, T1A_U14, T1A_U15