Nazwa przedmiotu:
Unix - architektura, programowanie i administrowanie
Koordynator przedmiotu:
Grzegorz BLINOWSKI
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Informatyka
Grupa przedmiotów:
Przedmioty techniczne
Kod przedmiotu:
UXP1A
Semestr nominalny:
6 / rok ak. 2018/2019
Liczba punktów ECTS:
4
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
30 godzin wykładu 20 godzin przygotowania do sprawdzianów 15 godzin zajęć projektowych 40 godzin realizacja projektu w sumie 105 godzin, co daje ok. 4 ECTS
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
30 godzin wykładu 15 godzin zajęć projektowych w sumie 45 godzin, co daje ok. 2 ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
15 godzin zajęć projektowych 40 godzin realizacja projektu w sumie 55 godzin, co daje ok. 2 ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium0h
  • Projekt15h
  • Lekcje komputerowe0h
Wymagania wstępne:
Podstawy systemów operacyjnych, jezyk programowania C
Limit liczby studentów:
30
Cel przedmiotu:
Celem wykładu jest zapoznanie słuchaczy z : # architekturą wewnętrzną systemu UNIX, # interfejsem jądra oferowanym programiście systemowemu, oraz # wybranymi elementami administrowania systemu UNIX.
Treści kształcenia:
Krótkie wprowadzenie do historii systemu; standardy. Zarys architektury systemu UNIX. Funkcje jądra. Podsystem zarządzanie procesami - stany procesów, deskryptor procesu, pokrewieństwo procesów, dziedziczenie środowiska, przydzielanie czasu procesora. Wywołania systemowe fork, exec, exit, wait. Sygnały i ich obsługa. Własne procedury obsługi sygnałów (wywołania systemowe signal, kill, sigaction), „stary” i „nowy” mechanizm obsługi sygnałów. Komunikacja procesów poprzez potoki (wywołania pipe, close, read, write, popen, pclose) oraz potoki nazwane (wywołanie mknod). Przykład architektury klient - serwer. Komunikacja IPC - problemy nazewnictwa (funkcja ftok), deskryptory kanałów IPC, limity. Kolejki komunikatów (wywołania systemowe msgget, msgctl, msgsnd, msgrcv). Semafory (wywołania systemowe semget, semctl, semop), realizacja operacji semaforowych P i V, semafora z ustaloną wartością. Wspólna pamięć (wywołania systemowe shmget, shmat, shmdt, shmctl). Cechy charakterystyczne procesów typu demon, szkielet procesu. System pamieci wirtualnej – VM. Segmenty pamięci. Stronicowanie i mechanizm pageout. Powiązanie VM i VFS – funkcja mmap(). Mechanizm wątków POSIX. Relacje wątek –proces. Wątki a wydajna realizacja serwerów. Wątki a sygnały. Interfejs sieciowy TLI. Strumienie - struktury danych i funkcje, operacje na strumieniach. Porównanie interfejsu gniazd BSD i interfejsu TLI. Tryby terminala, opis terminala (wywołanie ioctl). Pseudo terminale. Organizacja systemu plików. Deskryptory plików na dysku i w pamięci operacyjnej, fizyczna reprezentacja plików. Wywołania systemowe dotyczące systemu plików. Blokowanie dostępu do pliku. Interfejs wirtualnego systemu plików: VFS, struktury vnode, vfs, vfsw.
Metody oceny:
Ocena na podstawie: 1) kolokwiow: 2 kolokwia po c.a. 25 p. - łącznie 50p. 2) projektu: 50 p. Zaliczenie projektu i kolokwiów, tj. uzyskanie z projektu i sumarycznie kolokwiów po 25 p. jest wymagane do zaliczenia przedmiotu.
Egzamin:
nie
Literatura:
1. B. Goodheart, J. Cox, The magic garden explained - the internals of Unix System V Release 4 Prentice Hall 1994. 2. Uresh Vahalia, Jadro systemu UNIX, WNT; 2001 3. Marc Rochkind, Programowanie w systemie Unix dla zawansowanych, WNT (wyd. 2; 2005) 4. David R. Butenhof, Programming with Posix Threads, Addison-Wesley, 1997 5. Daniel P. Bovet, Marco Cesati, LINUX kernel, Wydawnictwo RM (O’Reilly) 2001 6. W. Richard Stevens, Advanced Programming in the UNIX Environment, WNT - różne wydania
Witryna www przedmiotu:
https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103A-INIIT-ISP-UXP1A; http://www.ii.pw.edu.pl/~gjb
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Charakterystyka UX_W01
Student, który ukończył predmiot posiada znajomość podstaw architektury systemu UNIX, koncepcji funkcji jądra oraz podsystemu zarządzanie procesami, wirtualnego systemu plików, podsystemu zarządzania pamięcią oraz mechnaizmów komunikacji miedzyprocesowej
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe: K_W09, K_W10, K_W14, K_W19
Powiązane charakterystyki obszarowe: I.P6S_WG, III.P6S_WG.o

Profil ogólnoakademicki - umiejętności

Charakterystyka UX_U01
Student, który ukończył przedmiot potrafi: tworzyć wydajne i optymalne pod wzgledem wykorzystania zasobów systemowych oprogramowanie systemowe pracujące w środowisku systemu Unix orz systemów "Unixo-podobnych"
Weryfikacja: Projekt
Powiązane charakterystyki kierunkowe: K_U15, K_U20, K_U05, K_U07, K_U09, K_U13, K_U14
Powiązane charakterystyki obszarowe: III.P6S_UW.4.o, I.P6S_UW, III.P6S_UW.3.o, III.P6S_UW.1.o, I.P6S_UK, I.P6S_UU
Charakterystyka UX_U02
Student, który ukończył przedmiot ma szanse rozwinąć kompetencje społeczne związane z pracą w zespole
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe: K_UK03, K_UK04
Powiązane charakterystyki obszarowe: I.P6S_UO