====== Organizacja przestrzeni adresowej ======

Organizacja przestrzeni adresowej jest jednym z czynników, które różnicują architektury wieloprocesorowe. Istnieją dwa główne sposoby organizacji przestrzeni adresowej.

===== Shared memory =====

Architektura dzielonej przestrzeni adresowej, która umożliwia wsparcie dostępu do odczytu i zapisu do pamięci dla wszystkich procesorów fizycznie dzielonej pamięci. Taki typ organizacji przestrzeni adresowej wykorzystuje się przeważnie dla komputerów o małej liczbie procesorów lub dla wektora komputerów. Czynnikiem limitującym jest wymaganie co do wysokiej przepustowości dostępu do pamięci, potrzebne aby uniknąć sytuacji potencjalnego wąskiego gardła zapisu lub odczytu danych. Zalety takiego rozwiązania pokrywają zwykłą architekturę komputerów oraz łatwe programowanie. Przykładami takich maszyn są wieloprocesorowe maszyny wektorowe ( Cray T90, NEX Sxx,Convex C46xx) oraz wieloprocesorowe stacje robocze oraz serwery zaopatrzone w systemy operacyjne. 
W tym przypadku koszt dostępu do danych w pamięci jest taki sam dla wszystkich procesorów, taką sytuację nazywany także “uniform memory access (UMA)”. Rolą systemu operacyjnego jest aby rozdzielał on instrukcje oraz dane w taki sposób aby uzyskać równy rozkład procesorów, taki system operacyjny jest nazywany wielowątkowym i takie przetwarzanie nazywane jest wieloprocesowośią symetryczna(SMP). Wszystkie główne firmy komputerowe sprzedają komputery SMP.

===== Distributed memory =====

Architektura rozproszonej(dystrybuowanej) przestrzeni adresowej jest typowa dla komputerów z wieloma procesorami. Dla maszyn typu MIMD każdy procesor posiada swoją własną pamięć lokalną, która jest trudniejsza do zaprogramowania. Wyróżniamy dwie podklasy tego rodzaju organizacji przestrzeni adresowej:

=== message-passing ====

message-passing ( przekazywanie wiadomości ) - jest to klasyczny rodzaj architektury rozdzielanej (dystrybuowanej), bez udziału sprzętu dla operacji globalnych. System operacyjny istnieje na każdym procesorze; najlepszą drogą zaprogramowania jest użycie mechanizmu przekazywania wiadomości, wspieranego poprzez sprzęt w danych środowiskach. Takie maszyny, z połączonymi procesorami, są zwane multikomputerami. Również sieć komputerów współpracujących ze środowiskami implementującymi przekazywanie wiadomości mogą być traktowane jako szczególny rodzaj równoległej(dystrybuowanej) architektury. Typowe komercyjne przykłady to IBK RS6K SP oral Paragon Intela.

=== Virtual-share distributed memory ====

Virtual-share distributed memory(wirtualna dzielona pamięć rozproszona). Architektura ta jest po prostu bardziej specyficznym rodzajem przekazywania wiadomości. Sprzęt jest używany aby zasymulować fizyczną pamięć dzieloną – jest on używany do odczytu oraz zapisu do innych pamięci procesorów. Odkąd procesory używają lokalnej pamięci cache dla równoległości programowania, mogą wystąpić potencjalne konflikty pamięci cache poszczególnych procesorów. Aby uniknąć tego problemu, maszyny te oferują mechanizmy, dostępne dla wszystkich dedykowanych procesorów. Dla niejednorodnych dostępów do pamięci, gdzie czas zależy od rodzaju pamięci – lokalny bądź zdalny procesor – tego typu rodzaje komputerów są zwane NUMA. Istnieje tylko jeden system operacyjny w komputerze oraz małą część rezydująca na każdym procesorze, dlatego też cecha ta rzeczywisty równoległy multiprocesor globalnego widoku użytkownika. Typowe przykłady komercyjne to HP/Convex SPP oraz SGI/CRAY.
====== Pobierz dokument ======
{{:wspolczesne_systemy_komputerowe:organizacja_przestrzeni_adresowej.pdf|Organizacja przestrzeni adresowej.pdf}}