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