Programowanie współbieżne i rozproszone

Transkrypt

Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone
Program kursu dla studiów uzupełniających
Wykład
1. Podstawowe pojęcia przetwarzania rozproszonego
o Architektura wieloprocesorowa i wielomaszynowa
o System zcentralizowany a rozproszony
o Cele przetwarzania rozproszonego
o Przezroczystość
o Model klient-serwer
2. Elementy systemu Unix
o Podstawowe pojęcia systemu Unix
o Biblioteka wejścia/wyjścia
o Osiąganie współbieżności
o Sygnały
o Nieblokujące, asynchroniczne i multipleksowane wejście/wyjście
3. Elementy sieci TCP/IP
o Model OSI a model TCP/IP - porównanie
o Adresowanie
o Typowe usługi
4. Komunikacja międzyprocesowa (IPC)
o Łącza
o Łącza nazwane
o Kolejki komunikatów
o Semafory
o Wspólna pamięć
5. Gniazdka
o Dziedziny
o Metodologia korzystania z gniazdek strumieniowych
o Metodologia korzystania z gniazdek datagramowych
o Superserwer inetd
6. Zdalne wywoływanie procedur (RPC)
o Konstrukcja programów korzystających z RPC
o Warianty wykorzystania RPC
7. Obiektowe programowanie rozproszone (CORBA)
o Specyfikacja CORBA
o Metodologia tworzenia programów
o Warianty wykorzystania
o Inne obiektowe technologie wspomagania rozpraszania (ActiveX) porównanie
8. Programowanie sieciowe w języku Java
o Wielowątkowość i synchronizacja
o Interfejs gniazdek w języku Java
o Zdalne wywołania metod (RMI)
9. Programowanie w środowisku X-Window
o Koncepcja X-Window
o Tworzenie aplikacji w oparciu o bibliotekę Xlib
o Wysokopoziomowa biblioteka Motif
o
Inne interfejsy programistyczne - porównanie
Egzamin pisemny testowy (50% udziału w ocenie końcowej ma ocena z zaliczenia
laboratorium)
Laboratorium (spis projektów)
1. Przekazywanie argumentów do programu w języku C i zwrot wartości do systemu
2. Demonstracja podstawowych operacji plikowych z wykorzystaniem biblioteki
standardowej języka C
3. Demonstracja podstawowych operacji plikowych z wykorzystaniem biblioteki
standardowej systemu Unix
4. Przesyłanie sygnałów i instalacja procedur obsługi
5. Rozwidlanie
6. Funkcje z rodziny exec
7. Demonstracja wejścia nieblokującego
8. Demonstracja wejścia asynchronicznego
9. Demonstracja multipleksera select
10. Przesyłanie danych przez łącza
11. Przesyłanie danych przez łącza nazwane
12. Przesyłanie danych przez kolejki komunikatów
13. Synchronizacja za pomocą semaforów
14. Wykorzystanie pamięci dzielonej
15. Prosty serwer TCP
16. Prosty serwer UDP
17. Internetowy serwer współbieżny
18. Serwer uruchamiany przez inetd
19. Prosty klient i serwer RPC
20. Klient i serwer RPC pracujący na zasadzie wywołania zwrotnego
21. Prosty klient i serwer demonstrujący użycie specyfikacji CORBA
22. Prosty klient i serwer demonstrujący użycie specyfikacji CORBA i interfejsu
dynamicznych wywołań
23. Demonstracja wątków i klas synchronizowanych w języku Java
24. Prosty serwer i klient TCP w języku Java
25. Aplikacja X-Window napisana z wykorzystaniem Xlib
26. Aplikacja X-Window napisana z wykorzystaniem Motif
Zaliczenie praktyczne (projekt do zrealizowania w pracowni komputerowej)
Bibliografia
1.
2.
3.
4.
5.
R. Stevens Programowanie sieciowe
M. Gabassi, B. Dupouy Przetwarzanie rozproszone w systemie UNIX
A. Silberschatz, P. Galvin Podstawy systemów operacyjnych
A. Tanenbaum Rozproszone systemy operacyjne
[dokumentacja elektroniczna omawianych specyfikacji/produktów]
M. Jarocki, 2002