odpowiedzi 1 22

background image

1

background image

Prawo Amdahla to sformułowana przez Gene Amdahla zależność mówiąca, że jeśli część
procesu zajmująca aktualnie

x

×

100%

czasu zostanie przyspieszona n-krotnie, to cały proces

zostanie przyspieszony jedynie

razy.

Oznacza to, że nawet jeśli uda się bardzo mocno przyspieszyć jakąś część procesu, to ta część,
której przyspieszyć się nie uda, stanie się dominującym składnikiem całkowitego czasu (to samo
można powiedzieć o koszcie, pojemności dyskowej, transferze sieciowym itd.).

2

background image

Na przykład jeśli 90% czasu procesora zajmują operacje arytmetyczne, a 10% dostęp do pamięci,
i operacje te przyspieszone zostaną 10-krotnie (przy niezmienionym czasie dostępu do pamięci),

to po tej zmianie procesor będzie operował tylko

razy szybciej.

Jeśli przyspieszy się je nawet 100-krotnie, wzrost wydajności będzie wynosił tylko

razy, pomimo że prawie wyeliminowany został czas przedtem

dominującego składnika czasu operacji. Nowym dominującym składnikiem stał się bowiem czas
dostępu do pam
ięci.

Konwencjonalne maszyny sekwencyjne nazywamy SISD (single instruction stream over a data
stream - pojedyńczy strumień instrukcji ponad strumieniem danych). Komputery wektorowe są
wyposażone w skalarną i wektorową architekturę lub pojawiają się jako SIMD (single instruction
stream over multiple data streams - pojedyńczy strumień instrukcji ponad wieloma strumieniami
danych). Dla równoległych komputerów zarezerwowano pojęcie MIMD (multiple instruction
streams over multiple data streams - wiele strumieni instrukcji ponad wieloma strumieniami
danych). Jest jeszcze czwarty rodzaj maszyn - typu MISD (multiple instruction streams over
single data stream - wiele strumieni instrukcji ponad jednym strumieniem danych). Ten sam
strumień danych przepływa przez liniową tablicę procesorów, wykonujących różne strumienie
instrukcji. Ta architektura jest także znana pod inną nazwą - architektura systolic i jest
wykorzystywana do wykonywania skomplikowanych instrukcji w trybie pipelined.

Zakleszczenie (

ang.

deadlock) jest pojęciem z

teorii gier

opisującym sytuację, w której co

najmniej dwie różne akcje czekają na siebie nawzajem, więc żadna nie może się zakończyć.
Gracze zdobyli pewne unikatowe warunki niezbędne do wykonania kolejnego ruchu, ale żaden
nie ma wszystkich i gra nie może być kontynuowana. Problem zakleszczenia występuje w

wielozadaniowych

systemach operacyjnych

, gdzie wiele zadań w tym samym czasie konkuruje o

wyłączny dostęp do zasobów. Zjawisko jest również ważne w systemach zarządzania

bazami

danych

. W pierwszym przypadku zasobami

struktury danych

(często powiązane z fizycznymi

urządzeniami takimi jak na przykład

karta dźwiękowa

lub

magistrala

), w drugim przypadku

zasobami są obiekty bazy danych, na przykład

relacje

(tabele) lub poszczególne

krotki

.

Zakleszczeniu mogą ulec zadania takie jak na przykład

procesy

lub

wątki

a w bazach danych

poszczególne

transakcje

.

3

background image

Zbiór niezależnych komputerów, które są postrzegane przez użytkowników systemu jako jeden

komputer.

Zalety systemów rozproszonych

1. Ekonomiczne - zbiór (mikro) procesorów może mieć lepszy współczynnik ceny do
wydajności (price/performance ratio) niż odpowiadający mu jeden procesor (w dużym
komputerze - mainframe).
2. Szybsze - system rozproszony może mieć więcej mocy obliczeniowej niż system
zcentralizowany.
3. Wykorzystanie faktu iż niektóre aplikacje są z natury rozproszone.
4. Bardziej niezawodne - awaria jednego komputera nie musi prowadzić do awarii całego
systemu.
5. Możliwość przyrostowego rozwoju - stopniowe dodawanie nowych komputerów
zwiększających zasoby systemu.

Wady systemów rozproszonych

1. Stosunkowo nowe podejście, mało doświadczeń z budowy i eksploatacji takich systemów,
brak oprogramowania.
2. Działanie systemu silnie zależy od niezawodności i przepustowości sieci.
3. Autoryzacja dostępu tridniejsza do zaimplementowania.

4

background image

Broadcast- Jeden procesor(root) rozsyła jedną daną do wszytkich.

5

background image

6

background image

7

background image

Funkcja rozproszenia ("scatter") danych między procesami. Działa w ten sposób, że proces

root

rozsyła zawartość

send_buff

między wszystkie procesy. Jest ona dzielona na

p

segmentów, każdy składający się z

send_count

elementów. Pierwszy segment trafia do procesu

0, drugi do procesu 1 itp. Oczywiście argumenty, których nazwy zaczynają się na Send mają

znaczenie tylko dla procesu który jest nadawcą.

8

background image

9

background image

10

background image

11

background image

12

background image

Patrz Master-Slave

13

background image

14

background image

15

background image

16


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron