- 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