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