next up previous contents
Next: Berkeley NOW Up: Maszyna typu PRAM Previous: SB-PRAM   Spis rzeczy


Fork95

Fork95 stworzyli w 1994 roku Christoph W. Keßler i Helmut Seidl jako język programowania dla maszyny SB-PRAM (patrz 2.1.3, [2]). Jest on oparty na ANSI-C. Zawiera rozszerzenia służące do zarządzania procesorami, ich dzielonymi i prywatnymi podprzestrzeniami adresowymi i zmiennymi oraz zagnieżdżonymi rekursywnie poziomami synchroniczności poprzez tworzenie hierarchicznych podgrup procesorów. Filozofia działania programów napisanych w tym języku jest zbliżona do filozofii działania programów napisanych w języku Fork (patrz rozdz. 2.1.2), jednak tutaj od razu mamy określoną liczbę procesorów, na których wykonuje się program. Liczba ta pozostaje stała podczas wykonywania algorytmu. Podział procesorów na grupy jest analogiczny do niejawnego podziału w języku Fork, czyli wynika na przykład z różnego obliczania warunków w instrukcjach warunkowych. Sposób obsługi zmiennych globalnych i prywatnych procesora jest także podobny.

Język oferuje dwa poziomy synchronizacji. Pierwszy z nich jest zgodny z opisanymi wcześniej, czyli na poziomie składniowym języka. Drugi mniej restrykcyjny nie zapewnia takiej synchronizacji (może nastąpić całkowite ,,rozsynchronizowanie'' procesorów). Nie wymaga się, aby cały program korzystał wyłącznie z pierwszego lub drugiego poziomu. Programista może określić które fragmenty kodu mają się wykonywać synchronicznie, a które mogą być wykonywane asynchronicznie. Można użyć także dodatkowych metod synchronizacji procesów. Język dostarcza funkcje do generowania barier, obsługi semaforów, blokowania zasobów i inne.

Stworzony został kompilator tego języka na maszynę SB-PRAM. Programy można ponadto uruchamiać na programowym emulatorze tej maszyny.


next up previous contents
Next: Berkeley NOW Up: Maszyna typu PRAM Previous: SB-PRAM   Spis rzeczy
Łukasz Maśko
2000-04-17