MRJP Wykład 15
Obiekty aktywne: współbieżne i rozproszone
W niektórych językach programowania obiektowego pewne obiekty mogą być aktywne tzn. wykonywać swoje własne instrukcje równocześnie z innymi obiektami aktywnymi.
Przypomnijmy, że zwykle obiekt jest kolekcją swych atrybutów: pól i metod. Taki obiekt nie wykonuje swoich własnych poleceń. W odróżnieniu od zwykłych obiektów klas istnieć mogą obiekty aktywne odpowiednio zadeklarowanych klas. W języku Java są to obiekty podklas klasy Thread. W Loglanie są to obiekty procesów. W Adzie ... TODO
Obiekty aktywne (alias procesy albo wątki) są więc dla nas obiektami, które posiadają możliwość wykonywania instrukcji równocześnie z innymi procesami. Mówiąc dokładniej obliczenia procesów mogą być wykonywane:
- Współbieżnie (wiele procesów wykonywanych na jednym procesorze fizycznym),
- W rozproszeniu (na maszynach połączonych siecią),
- Równolegle (na maszynie z wieloma procesorami, które dzielą się wspólną pamięcią).
Nie opanowałem jszcze wstawiania obrazków Plik:AliencallII.pdf
Chcę zrobić animację protokołu aien call.
== Jednolicie czy oddzielnie? == Pytanie takie pojawia sie bardzo wcześnie gdy zamierzamy w języku programowania zawrzeć narzędzia programowania rozproszonego i współbieżnego. W Javie mamy dwie odrębne koncepcje: procesy współbieżne realizowane są jako obiekty pokdlas klasy Thread. Procesy rozproszone wymagają użycia mechanizmu [RMI]link RMI. Trzeba więc zapoznac sie z dwoma odrebnymi koncepcjami i opanować ich własności.
W języku Loglan'82 zrealizowano rozproszoną współbieżność. Wyglądające jednakowo wyrażenie generowania nowego obiektu new MojProces (arg1, arg2, ) tworzy obiekt procesu, który jest alokowany na wirtualnej maszynie wskazanej przez wartość wyrażenia arg1. Jeśli ta wartość wynosi 0 to alokacja odbywa się na bieżącym procesorze i wtedy stary i nowy proces działają współbieżnie dzieląc się czasem maszyny wirtualnej. Jeśli wartość ta jest różna od zera to nowy proces jest alokowany na procesorze o wskazanym numerze = arg1 i dalsze obliczenia odbywają sie w rozproszeniu. Łatwo dostrzec, że model ten dopuszcza wiele różnych odmian wykonywania obliczeń w rozproszeniu wymieszanym ze współbieżnościa.
Statyczna czy dynamiczna konfiguracja systemu procesów
Mechanizmy komunikacji procesów rozproszonych
Obce wołanie metod w procesach
Na czym to polega?
Składniowo wygląda to jak wołanie metody w obiekcie
x.Tametoda(parametry aktualne)
semantyka to cały protokół porozumiewania się procesu wykonującego tę instrukcję procedury z procesem x.
Opis realizacji mechanizmu obcego wołania metod
Sieciowe wskaźniki do obiektów procesów
Struktury
Pamięć procesów
Deskryptory procesów
Kolejka procesów gotowych
Komunikaty
Globalna kolejka komunikatów
Stos masek metod
Algorytmy
Inicjowanie maszyny wirtualnej
Zarządzanie procesami
Generowanie procesu
Powrót z generacji procesu Zakończenie procesu
Usuwanie procesu
podział czasu
Obce wołanie metod
Rozpoczęcie
Instrukcja accept
Operacje na maskach metod
Obsługa błędów
Wysyłanie komunikatu