Systemy Operacyjne Systemy wieloprocesorowe Systemy

Transkrypt

Systemy Operacyjne Systemy wieloprocesorowe Systemy
Typy systemów wieloprocesorowych
Systemy Operacyjne
Systemy wieloprocesorowe
C
C
C
dr inż. Tomasz Jordan Kruk
Local
memory
CPU
C
Complete system
M
M
M
M
C
C
C
C
C
C
C
M C
Shared
memory
C
C
C
M C
C+ M
C+ M
C M
Internet
C M
C
C
[email protected]
C
C
C
C
M
M
M
M
(a)
Instytut Automatyki i Informatyki Stosowanej
Politechnika Warszawska
Interconnect
C+ M
C+ M
(b)
C+ M
C+ M
(c)
Podstawowy podział typów systemów wieloprocesorowych:
a. 1. Systemy wieloprocesorowe z pamięcią dzieloną,
b. 2. Wielokomputery z przekazywaniem komunikatów – systemy ściśle
połączone (ang. tightly-coupled ),
c. 3. Systemy rozproszone – systemy luźno połączone (ang.
loosely-coupled ).
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.1/36
Systemy wieloprocesorowe
√
czy współczesne moce są wystarczające do rozwiązania wszystkich
problemów?
√
na ile można skalować systemy komputerowe?
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.3/36
1. Systemy wieloprocesorowe z pamięcią dzieloną
Wśród systemów wieloprocesorowych wyróżniamy systemy UMA oraz NUMA.
Shared
memory
Private memory
Shared memory
√
połączone systemy autonomiczne czy wiele procesorów ze wspólną
pamięcią?
CPU
CPU
M
CPU
CPU
M
CPU
CPU
M
Cache
Bus
(a)
(b)
(c)
Wieloprocesory oparte o koncepcję magistrali:
a. bez pamięci cache,
b. z pamięcią cache,
c. z pamięcią cache i pamięcią prywatną.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.2/36
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.4/36
Krata z przełącznicą krzyżową
Sieć z przełączaniem Omega
111
110
3 Stages
101
100
011
010
001
000
Memories
Crosspoint
switch is open
000
000
001
001
010
(b)
011
CPUs
Memories
CPUs
b
1B
2B
b
011
1C
111
Closed
crosspoint
switch
Open
crosspoint
switch
110
(a)
111
Przełącznica krzyżowa 8x8.
nieblokowalność przełącznicy (ang. crossbar ) największą zaletą,
koszt rzędu n2 dla n procesorów największą wadą.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.5/36
Wielostopniowe sieci połączeń
A
X
B
Y
Module
(a)
Address
Opcode
Value
101
a
a
1D
a
2D
a
3D
110
111
√
routing według wartości bitów adresu,
√
możliwe konflikty wymuszające retransmisje,
√
stosowany przeplot poprzez routing ze względu na najmniej znaczące
bity.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.7/36
Wieloprocesory oparte o koncepcję NUMA
Idea: kosztem niejednolitego czasu dostępu do pamięci można bez
modyfikacji uruchamiać zadania na komputerach o większej liczbie
procesorów.
Cechy charakterystyczne architektury NUMA (ang. Non Uniform Memory
Access)
(b)
Przełączniki używane w wieloprocesorach z jednolitym dostępem do pamięci
(UMA) wykorzystujących wielostopniowe sieci połączeń.
a. przełącznik 2x2,
1. Pojedyncza przestrzeń adresowa widziana przez wszystkie procesory.
2. Dostęp do pamięci zdalnej poprzez instrukcje LOAD i STORE.
3. Dostęp do pamięci zdalnej wolniejszy od dostępu do pamięci lokalnej.
b. format komunikatu.
nc-NUMA gdy czas dostępu do zdalnej pamięci nie jest ukryty,
√
dla n procesorów i n modułów pamięci potrzeba log2 n stopni z n/2
przełącznikami w każdym stopniu,
√
(n/2) log2 n << n2
WEiTI, Politechnika Warszawska
100
3C
2C
101
(c)
001
010
3B
b
100
110
√
000
3A
011
101
√
2A
b
010
Crosspoint
switch is closed
100
1A
Systemy operacyjne / Systemy wieloprocesorowe – str.6/36
cc-NUMA gdy wykorzystuje się spójną pamięć cache (ang. cache
coherent-NUMA).
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.8/36
Architektura NUMA oparta o katalogi
Node 0
Node 1
CPU Memory
CPU Memory
Local bus
Local bus
Model pan/sługa w wydaniu wieloprocesorowym
2. Wieloprocesory typu pan/sługa (ang. master/slave)
Node 255
CPU Memory
Directory
…
Local bus
Interconnection network
CPU 1
CPU 2
CPU 3
CPU 4
Memory
Master
runs
OS
Slave
runs user
processes
Slave
runs user
processes
Slave
runs user
processes
User
processes
I/O
OS
(a)
218-1
Bits
8
18
6
Node
Block
Offset
Bus
(b)
4
3
2
1
0
0
0
1
0
0
82
Model pan i sługa w wydaniu wieloprocesorowym.
(c)
√
jedna lista zadań,
a. 256-węzłowy oparty na katalogach wieloprocesor,
√
nie ma nieuzasadnionych przeciążeń,
b. podział 32-bitowego adresu pamięci na pola,
√
główny procesor wąskim gardłem, rozwiązanie nieskalowalne.
c. katalog w węźle 36.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.9/36
WEiTI, Politechnika Warszawska
Typy wieloprocesorowych systemów operacyjnych
1. Każdy procesor ma własny system operacyjny.
CPU 1
Has
private
OS
CPU 2
Has
private
OS
CPU 3
Has
private
OS
Systemy operacyjne / Systemy wieloprocesorowe – str.11/36
Architektura SMP
3. Wieloprocesory symetryczne
CPU 4
Memory
Has
private
OS
1
2
Data Data
3
4
Data Data
OS code
I/O
CPU 1
CPU 2
CPU 3
CPU 4
Runs
users and
shared OS
Runs
users and
shared OS
Runs
users and
shared OS
Runs
users and
shared OS
I/O
Memory
OS
Locks
Bus
Bus
Model architektury wieloprocesorowej SMP.
Podział pamięci między 4 procesory z współdzieleniem jednej kopii systemu
operacyjnego.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.10/36
√
procesory równoprawne,
√
jedna kopia systemu operacyjnego, którą każdy procesor może uruchamiać,
√
nadal problemy ze skalowalnością,
√
wymusza podział jądra na pomniejsze sekcje krytyczne (jądra typu reentrant),
√
duże koszty synchronizacji dużym wyzwaniem.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.12/36
Synchronizacja wieloprocesorowa
CPU 1
Word
1000 is
initially 0
Memory
Szeregowanie na wieloprocesorze
CPU 2
0
1
2
3
4
5
6
7
8
9
CPU
CPU 4
goes idle
10 11
12 13 14 15
1. CPU 1 reads a 0
2. CPU 2 reads a 0
3. CPU 1 writes a 1
4. CPU 2 writes a 1
Priority
7
6
5
4
A
D
F
3
2
1
0
Bus
1
2
3
5
6
7
8
9
C
G H
J K
I
M N
L
2
3
5
6
7
8
9
B
10 11
13 14 15
C
D
F
3
2
1
0
I
M N
(b)
E
G H
J K
L
I
M N
(c)
szeregowanie typu przyciągającego (ang. affinity scheduling) i
algorytmy dwupoziomowe szeregowania.
Systemy operacyjne / Systemy wieloprocesorowe – str.13/36
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.15/36
Szeregowanie gangami (I)
Szamotanie zawartości cache
CPU 3
G H
J K
1
Priority
7
6
5
4
B C
D E
F
3
2
1
0
0
A
Wykorzystanie pojedynczej struktury danych do szeregowania na
wieloprocesorze.
√
WEiTI, Politechnika Warszawska
10 11
Priority
7
6
5
4
(a)
Instrukcja TSL może zawieść, jeżeli szyny nie da się zablokować. Pokazano
cztery kroki demonstrujące wystąpienie błędu. Potrzebna blokada
szyny/krzyżownicy.
CPU 12
goes idle
12 13 14 15
B
E
L
0
A
Thread A0 running
3
CPU 3 spins on this (private) lock
CPU 2 spins on this (private) lock
CPU 4 spins on this (private) lock
2
CPU 0
A0
B0
A0
CPU 1
holds the
real lock
1
When CPU 1 is finished with the
real lock, it releases it and also
releases the private lock CPU 2
is spinning on
Wykorzystanie wielu zamków w celu uniknięcia szamotania cache.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.14/36
CPU 1
Time 0
B1
A1
100
B0
B1
A1
Reply 2
Reply 1
Shared memory
A0
Request 2
Request 1
4
B0
B1
200
A1
300
400
500
600
Komunikacja między dwoma wątkami jednego procesu uruchamianymi w
różnych fazach.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.16/36
Szeregowanie gangami (II)
Koncepcja RPC
Client CPU
Idea szeregowania gangami:
1. Grupy powiązanych wątków szeregowane jako całość, gang.
2. Wszyscy członkowie gangu pracują równocześnie, na różnych
procesorach z podziałem czasu.
3. Wszyscy członkowie gangu zaczynają i kończą interwały
przydzielonego czasu procesora jednocześnie.
Server CPU
Server
stub
Client
stub
1
Client
Server
2
4
Operating system
Operating system
3
CPU
0
0
A0
1
A1
2
A2
3
A3
4
A4
5
A5
1
B0
B1
B2
C0
C1
C2
2
Time 3
slot 4
D0
D1
D2
D3
D4
E0
E1
E2
E3
E4
E5
E6
A0
A1
A2
A3
A4
A5
5
B0
B1
B2
C0
C1
C2
6
D0
D1
D2
D3
D4
E0
7
E1
E2
E3
E4
E5
E6
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.17/36
2. Wielokomputery
(a)
(d)
(b)
(e)
5
Network
Kroki wykonania RPC. Pieńki oznaczone kolorem szarym.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.19/36
Lokalizacja implemetacji pamięci dzielonej
Machine 1
Machine 2
Machine 1
Machine 2
Machine 1
Machine 2
Application
Application
Application
Application
Application
Application
Run-time
system
Run-time
system
Run-time
system
Run-time
system
Run-time
system
Run-time
system
Operating
system
Operating
system
Operating
system
Operating
system
Operating
system
Operating
system
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
(c)
(f)
Topologie połączeń:
a. pojedynczy przełącznik,
Shared memory
Shared memory
Shared memory
(a)
(b)
(c)
b. pierścień,
c. krata,
a. implementacja sprzętowa,
d. podwójny torus,
b. implementacja na poziomie systemu operacyjnego,
e. hiperkostka,
c. implementacja w przestrzeni użytkownika.
f. hiperkostka 4D.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.18/36
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.20/36
Globally shared virtual memory consisting of 16 pages
5
9
4
5
6
1
3
8
10
CPU 0
7
8
6
9
10 11 12 13 14 15
4
7
12
14
CPU 1
11
13
15
Memory
CPU 2
CPU 3
He
Network
(a)
0
9
2
5
1
3
6
4
8
10
CPU 0
lp !
12
CPU 1
7
11
13
,
ere
a
ve
c
pro
Ih
av
to
do
elp
Ya
w
?
dh
n
o
ew
e
Ne
om
es
k
Ta
oth
ing
rk
15
en
ha
H
14
CPU 2
s
es
l
2
3
ful
2
I’m
0
1
I’m overloaded
0
I’m free tonight
Równoważenie obciążenia
Dystrybucja przestrzeni adresowej
I’m bored
CPU 3
(b)
(a)
0
9
2
10
CPU 0
5
1
8
3
6
4
10
12
CPU 1
7
11
13
(b)
15
14
CPU 2
CPU 3
Równoważenie obciążenia - algorytmy heurystyczne
(c)
a. przeładowany węzeł poszukuje mniej obciążonego węzła do
przekazania zleceń, algorytm inicjowany przez odbiorcę,
a. strony przestrzeni rozdystrybuowane na cztery komputery,
b. pusty węzeł zgłasza gotowość do przyjęcia pracy.
b. sytuacja po odwołaniu się procesora nr 0 do strony nr 10,
c. sytuacja, gdy strona nr 10 jest tylko czytana i wykorzystano replikację.
Systemy operacyjne / Systemy wieloprocesorowe – str.21/36
WEiTI, Politechnika Warszawska
Distributed System
Complete computer
Full set per node
Possibly worldwide
Traditional network
Possibly all different
Each node has own
Many organizations
Multicomputer
CPU, RAM, net interface
Shared exc. maybe disk
Same room
Dedicated interconnect
Multiple, same
One, shared
One organization
Multiprocessor
CPU
All shared
Same rack
Shared RAM
One, shared
One, shared
One organization
Code using
variable B
Code using
variable A
A and B are unrelated
shared variables that just
happen to be on the same page
A
B
Shared
page
Item
Node configuration
Node peripherals
Location
Internode communication
Operating systems
File systems
Administration
A
B
CPU 2
CPU 1
Systemy operacyjne / Systemy wieloprocesorowe – str.23/36
3. Systemy rozproszone
Fałszywe dzielenie
WEiTI, Politechnika Warszawska
Network
Fałszywe dzielenie strony (ang. false sharing) zawierającej dwie
niepowiązane ze sobą zmienne.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.22/36
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.24/36
Sprzęt sieciowy
Warsta pośrednia (ang. middleware)
Computer
Common base for applications
Computer
Application
Application
Application
Application
Middleware
Middleware
Middleware
Middleware
Switch
Ethernet
Windows
Linux
Solaris
Mac OS
Pentium
Pentium
SPARC
Macintosh
Ethernet
(a)
(b)
a. klasyczny Ethernet,
b. Ethernet z przełączaniem.
Network
Umiejscawiane warstwy pośredniej w systemie rozproszonym.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.25/36
WEiTI, Politechnika Warszawska
Różne typy warstw pośrednich
Systemy operacyjne / Systemy wieloprocesorowe – str.27/36
Sieć Internet
1. Warstwa pośrednia oparta o dokumenty.
Backbone
High-bandwidth fiber
2. Warstwa pośrednia bazująca na systemie plików.
3. Warstwa pośrednia oparta na obiektach dzielonych.
4. Warstwa pośrednia oparta na koordynacji.
Regional network
Mediumbandwidth
fiber
Router at ISP
Dial-up line
to home PC
Fiber or
copper wire
Router
Home PC
Local router
Host
Ethernet
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.26/36
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.28/36
Usługi sieciowe
Warstwa pośrednia oparta o dokumenty
Universityof North South
Example
Service
School of
Humanities
School of
Sciences
Reliable message stream
Connection-oriented
School of Social
Sciences
Sequence of pages of a book
Reliable byte stream
Remote login
Unreliable connection
Digitized voice
Unreliable datagram
Network test packets
Science
Northern University
Main page
Connectionless
Acknowledged datagram
Registered mail
Request-reply
Database query
Social sciences
Astronomy
Biology
Chemistry
Physics
Geography
History
Languages
Anthropology
Psychology
Sociology
Main page
Main page
Geography Dept
History Dept.
Languages Dept.
Astronomy Dept.
Biology Dept.
Chemistry Dept.
Physics Dept.
Anthropology Dept.
Psychology Dept.
Sociology Dept
Big countries
Small countries
Rich countries
Poor countries
Ancient times
Medieval times
Modern times
Future times
English
French
Dutch
Frisian
Spanish
Galaxies
Nebulas
Planets
Quasars
Stars
Arachnids
Mammals
Protozoa
Worms
Acids
Bases
Esters
Proteins
Electrons
Mesons
Neutrons
Neutrinos
Protons
African tribes
Australian tribes
New Guinean
tribes
Freud
Rats
Class struggle
Gender struggle
Generic struggle
Humanities
Humanities
Sciences
Sciences
Social sciences
Social sciences
Sciences
Humanities
Social sciences
Sciences
Różne rodzaje usług sieciowych.
Strony WWW tworzą ogromny ukierunkowany graf dokumentów.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.29/36
Nagłówki sieciowe
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.31/36
Warstwa pośrednia oparta o system plików
Internet
1. Client fetches file
Client
Server
Old file
New file
Host
Router
Message
Client
Server
Request
Reply
Ethernet 1
header
2. Accesses are
done on the
client
IP TCP
Message
Ethernet
Headers
3. When client is
done, file is
returned to server
(a)
File stays
on server
(b)
Modele przesyłania plików
a. model sprowadzania/ekspediowania (ang. upload/download model ),
Akumulacja nagłówków protokołów sieciowych.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.30/36
b. model zdalnego dostępu (ang. remote access model ).
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.32/36
Przezroczystość nazewnictwa
File server 1
Client 1
Client 1
A
Root
Root
B
C
A
B
D
C
E
A
B
F
W. pośrednia oparta na współdzieleniu obiektów
Client
D
C
E
Client stub
Client 2
Client 2
D
Root
Root
E
F
A
B
D
E
C
F
B
Object
adapter
Server ORB
Operating system
Operating system
IIOP protocol
A
F
Server
Server
code
Client ORB
File server 2
Skeleton
Client
code
C
(a)
Network
D
(b)
E
F
Główne elementy systemu rozproszonego opartego na standardzie CORBA.
Części współtworzące CORBA oznaczano szarym kolorem.
(c)
a. dwa serwery plików (kwadraty to katalogi, koła to pliki),
b. system, w którym wszyscy klienci widza ten sam obraz systemu plików,
c. system, w którym różni klienci mogą widzieć różny obraz systemu plików.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.33/36
WEiTI, Politechnika Warszawska
Semantyka dzielenia plików
Systemy operacyjne / Systemy wieloprocesorowe – str.35/36
Warstwa pośrednia oparta na koordynacji
Client 1
A
a b
a b
("abc", 2, 5)
("matrix-1", 1, 6, 3.14)
("family", "is-sister", "Stephany", "Roberta")
c
1. Read "ab"
2. Write "c"
Single processor
1. Write "c"
Original
file
A
File server
a b
a b
c
a b
B
2. Read gets "abc"
Krotki w przestrzeni krotek Linda.
3. Read gets "ab"
Client 2
(a)
B
√
krotki i przestrzenie krotek,
√
komunikacja i synchronizacja w jednym mechanizmie,
√
operacje out, in, rd, eval na krotkach,
√
rozwiązania: Linda, JavaSpaces.
a b
(b)
a. spójność sekwencyjna,
b. semantyka sesji.
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.34/36
WEiTI, Politechnika Warszawska
Systemy operacyjne / Systemy wieloprocesorowe – str.36/36