Porownanie systemow Chorus , Mach i Amoeba

Przedmiot porownania

Amoeba

Mach (obecnie RIG)

Chorus

Zaprojektowany dla Systemu rozproszonego - od poczatku dla zbioru (puli) CPU polaczonych siecia. Pozniej zostaly dodane wieloprocesory oraz WAN Poczatkowo konstruowany na pojedynczy procesor. Wieloprocesory oraz WAN - pozniej Poczatkowo badania nad systemami rozproszonymi, odlegle od swiata Unixa. Jednak z kazda wersja zbliza sie do Unixa coraz bardziej
Model pracy (miejsce wykonywania programow) Zbior (pula) procesorow - przezroczystosc maszyn wzgledem uzytkownika Stacja robocza (ang. workstation) jako domyslne miejsce wykonywania polecen
Mikrojadro Tak
Ilosc funkcji systemowych jadra 30
"perfekcja jest osiagnieta nie wtedy, gdy nie ma juz nic do dodania, ale wtedy gdy nie ma nic do odjecia"
153
wieksza funkcjonalnosc dla wiekszej liczby aplikacji
112
wieksza funkcjonalnosc dla wiekszej liczby aplikacji
Automatyczne rownowazenie obciazenia ? Tak - wysylane zapytanie do "RUN SERVERa", rozlozenie zadania na tyle tylko na ile sie da Nie - uruchamiane na lokalnej maszynie z mozliwoscia uruchomienia na zdalnej maszynie Nie - mozna uruchomic proces na jakiejkolwiek maszynie, a emulacja Unix-a umozliwia ustawienie "domowej maszyny"
Obiekty Sa glownym zalozeniem. Posiada kilka wbudowanych (np: watki, procesy), reszta definiowana przez uzytkownika. Mozna wykonywac na nich dowolne operacje Tylko kilka obiektow, staly zbior operacji, kiepski mechanizm definiowania obiektow (zla wydajnosc) Udostepnia wbudowane obiekty (jak Mach), ale takze stosuje identyfikatory (jak Amoeba) do definiowania nowych zabezpieczonych obiektow. Moga tez przekazywac je w komunikatach lub zapisujac do dzielonego pliku
Dojscia (ang. capabilities) Ogolne Tylko porty Ogolne
Umieszczenie dojsc Przestrzen uzytkownika Jadro Przestrzen uzytkownika
Watki zarzadzane przez Jadro
System przezroczysty ? Tak Nie
Mozliwosc ustawienia procesom priorytetow przez uzytkownika ? Nie - nie umozliwia kontroli nad szeregowaniem procesow Tak, umozliwiaja procesom nadawanie priorytetow i ustalanie polityki szeregowania watkow (dzieki temu bardzo dobrze moga dzialac systemy czasu rzeczywistego)
Wspomaganie wieloprocesorow Minimalne - wszystkie watki dzialaja na tym samym procesorze (pseudorownolegle, czas dzielony) Bardzo duze - mozna kierowac watki na rozne procesory Srednie - system rozmieszcza watki na roznych procesorach. Jak na razie (jest w planach) nie mozna "recznie" umiescic konkretnego watku na konkretnym procesorze
Synchronizacja Semafory ogolne, mutex Mutex, zmienne warunkowe uzywa rejestrow programowych do definiowania prywatnego kontekstu dla kazdego watku
Obiekt odwzorowywan Segment Obiekt pamieci Segment
Model rozproszonej pamieci dzielonej Oparty na obiektach, segmenty zmiennej dlugosci. Odwzorowywanie na zadanie. Segmenty identyfikowane przez specjalny identyfikator. Nie wspiera wymiany stron pomiedzy pamiecia a dyskiem Oparty na stronach stalej dlugosci. Odwzorowywanie na zadanie (jak w Amoebie). Wspiera stronicowana pamiec wirtualna. Strony mozna dzielic na wiele sposobow (np: "copy-on-write" - efektywne na pojedynczym komputerze, w rozproszeniu - zly) Oparty na stronach - bardzo podobnie do Mach-a. Strony sa pod kontrola zewnetrznego procesu odwzorowujacego
RPC ? Tak - prosty (zabezpieczone kryptograficznie) Tak
Komunikacja grupowa Uporzadkowana i pewne rozglaszanie, FLIP Brak komunikacji grupowej i pewnego rozglaszania. Sieciowy Serwer Komunikatow Kierowanie komunikatow przez port (asynchronicznie oraz RPC), obslugiwane przez jadro. Rozglaszanie na poziomie jadra. Mozliwosc grupowania portow. Nie ma gwarancji, ze komunikaty przyjda w tej kolejnosci co wyszly
Komunikacja asynchroniczna ? Nie Tak
Komunikaty pomiedzy maszynami zarzadzane przez Jadro Jadro / przestrzen uzytkownika Jadro
Komunikaty adresowane do Procesu Portu Portu
Emulacja Unixa Emulacja Unixa na poziomie kodu zrodlowego, ale nie w 100% zgodna Pojedynczy serwer, na ktorym jest uruchomiony BSD Unix - dzieki temu 100% emulacja na poziomie kodu binarnego 100% emulacja System V Unix na poziomie kodu binarnego. Zaimplementowana przy uzyciu kolekcji procesow
Rozmieszczenie Unixa Na wielu maszynach Pojedynczy serwer Na wielu maszynach
Kompatybilnosc z Unixem POSIX (czesciowa) BSD System V
Zoptymalizowany na potrzeby Komunikacji przez siec (bardzo szybkie RPC) Zastosowan lokalnych (np: komunikacja poprzez pamiec - copy-on-write) Zastosowan lokalnych - na pierwszym planie jest pojedynczy procesor (i systemy wieloprocesorowe), ale po umieszczeniu komunikacji w jadrze (jak w Amoebie) wydajnosc RPC tez jest niezla
Automatyczna replikacja plikow ? Tak Nie


Jesli zauwazysz jakies niescislosci lub bedziesz posiadal informacje, ktore warto tutaj umiescic, daj znac: zogledzki@polbox.pl.


Strona stworzona dnia: 24-06-1997r.
Powrot na poprzednia strone