Top Banner
Multi-procesorski sistemi Poglavje 8 Multi-procesorska strojna oprema Tipi multiprocesorskih OS Sinhronizacija multi-procesorjev Multiprocesorsko razporejanje
50

Poglavje 8 Multi-procesorski sistemi

Oct 06, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Poglavje 8 Multi-procesorski sistemi

Multi-procesorski sistemi

Poglavje 8

Multi-procesorska strojna oprema Tipi multiprocesorskih OS Sinhronizacija multi-procesorjev Multiprocesorsko razporejanje

Page 2: Poglavje 8 Multi-procesorski sistemi

Uvod

• Problem 1• Povečevenje hitrosti ure - meje• Hitrost svetlobe = 30 cm/nsec• Hitrost prenosa 20 cm/nsec (baker,optika)• 10 GHz ura => 2 cm, 100 GHz ura 2 mm• 1 THz => velikost računalnika 100 mikronov• Problem 2• Odvajanje toplote (hladilnik večji od procesorja)

Page 3: Poglavje 8 Multi-procesorski sistemi

Uvod (2)

• Povečanje hitrosti z vzporednim procesiranjem• Dejstva:• 1000 procesorski računalnik komercialno dostopen; 1M je prihodnost• Aplikacije: napovedovanje vremena, simulacija plinov in tekočin, kompleksni sistemi (ekonomija)• Internet: kako dati 1M računalnikov v 1 sobo• Največji problem: komunikacija med procesorji, računalniki, …

Page 4: Poglavje 8 Multi-procesorski sistemi

Multiprocesorski sistem

• Nenehna potreba po hitrih računalnikih– Model skupnega pomnilnika– Multiprocesor s pošiljanjem sporočil– Porazdeljeni sistem

Page 5: Poglavje 8 Multi-procesorski sistemi

Multiprocesorji

Definicija:Računalniški sistem kjer si dva ali več CPU-jev deli skupen pomnilnik.

Lastnosti:– Procesor nekaj napiše v spomin, spet prebere in

dobi drugo vrednost. – Drugi procesorji lahko pišejo v spomin.– Osnova za komunikacijo.

Page 6: Poglavje 8 Multi-procesorski sistemi

6

Multi-procesorska strojna oprema

• UMA – uniform memory accesss• NUMA - nonuniform memory access

Page 7: Poglavje 8 Multi-procesorski sistemi

7

Multi-procesorska strojna oprema (1)

Multiprocesor na osnovi vodila

Page 8: Poglavje 8 Multi-procesorski sistemi

8

UMA SMP• Delo s spominom

– Preveri, če je vodilo prosto– Če je zasedeno mora počakati– Sicer da naslov na vodilo, kontrolni signali, spomin

pošlje vsebino– OK za 3-5 procesorjev; 32-64 – ni OK!– Vodilo postane ozko grlo– Rešitev: dodamo predpomnilnik

Page 9: Poglavje 8 Multi-procesorski sistemi

9

UMA SMP• Predpomnilnik (cache)

– 32 ali 64 besedni blok– Blok: Read-only, read-write, dirty bit– Samo branje je hitro, spreminjanje je problem– Spreminjanje:

• Pi zahteva pisanje strani; vsi preostali P* zavržejo čisto kopijo strani; Pi spremeni stran v pomnilniku

– Obstaja veliko algoritmov za delo s predpomnilnikom

• Lokalni spomin– Privatno vodilo– Prevajalnik mora znat uporabljat lokalni spomin

Page 10: Poglavje 8 Multi-procesorski sistemi

Multi-procesorska strojna oprema (2)

• UMA multiprocesor na osnovi navzkrižnih sikal

Page 11: Poglavje 8 Multi-procesorski sistemi

• Velikost UMA = omejeno na 16 – 32 CPU• Mreža stikal:

– Strojna oprema tel.central.

• Na presečišču vertikalne in horizontalne linije je stikalo.– Odprto, če je naslovljen spominski modul

• Postavitev trdnjav na šahovnico.• Najlepša lastnost:

– Ne-blokirajoča mreža.

• Slaba lastnost:– Število presečišč = n2

– N=1000 imamo miljon stikal

Page 12: Poglavje 8 Multi-procesorski sistemi

Multi-procesorska strojna oprema (3)

• UMA multiprocesor, ki uporablja večnivojsko stikalno mrežo lahko zgradimo iz 2x2 stikal

(a) 2x2 stikalo (b) oblika sporočila

Page 13: Poglavje 8 Multi-procesorski sistemi

Multi-procesorska strojna oprema (4)

• Stikalna mreža Omega

Page 14: Poglavje 8 Multi-procesorski sistemi

14

• 2x2 stikalo– 2 vhoda, 2 izhoda

• Sporočilo– Dostop do spomina– module+address+opcode[+value]

• Multistage switching netw || Omega ntwrk– log

2n nivojev, n/2 stikal nivoja

– log2n * n/2 stikal

– Perfektna razporeditev– Izbiramo bite na levi strani

Page 15: Poglavje 8 Multi-procesorski sistemi

15

• Konflikt naslovov– 000 dostopa do 001 – 001 dostopa do 000– Konflikt v 3A– Blokorajoča mreža!

• Razpšimo naslove po vseh modulih– Spodnje bite naslova uporabimo za številke

modulov!– Zapordni naslovi so zaporedni moduli

• Neblokirajoče stikalne mreže– Več poti med točkami

Page 16: Poglavje 8 Multi-procesorski sistemi

Multi-procesorska strojna oprema (5)

Lastnosti multiprocesorja NUMA 1. En naslovni prostor viden iz vseh CPU2. Dostop do oddaljenega spomina z ukazi

- LOAD- STORE

3. Dostop do oddaljenega pomnilnika je počasnejši od dostopa do lokalnega

Page 17: Poglavje 8 Multi-procesorski sistemi

• Hočemo delati z > 100 CPU• En naslovni prostor preko vseh CPU• Uporaba prepomnilnika

– NC-NUMA, CC-NUMA

• Direktorijski multiprocesor = CC-NUMA– Za vsako vrstico predpomnilnika hranimo:

• Lokacijo vrstice (vozlišče)• Umazan bit

Multi-procesorska strojna oprema (6)

Page 18: Poglavje 8 Multi-procesorski sistemi

Multi-procesorska strojna oprema (7)

(a) Direktorijski multiprocesor z 256 vozlišči(b) Polja 32-bitnega naslovnega prostora(c) Direktorij vozlišča 36

Page 19: Poglavje 8 Multi-procesorski sistemi

Direktorijski multiprocesor

• Primer:– 256 vozlišč, vozlišče=16M RAM+CPU– Celoten pomnilnik 232 =

• 28 = 256 vozlišč• 224 = 16M lokalni pomnilnik vozlišča • 26 = 64 B = ena vrstica• Statična alokacija:

– 1 vozlišče=1-16M, 2 vozlišče=16-32M, ...

• Direktorij = 218 vrstic po 64 B = 224 B • Tabela direktorija= 218 * 9 bitov/vrstico

– 64 B/vrstica =>1.76%, 32 B/vrstica=> 4%, 128 B/vrstica=>1%

• Slaba lastnost:– Vrstica je lahko le v enem predpomnilniku

Page 20: Poglavje 8 Multi-procesorski sistemi

Tipi multiprocesorskih OS

1) Vsak CPU ima svoj OS2) Nadrejeni/podrejeni multiprocesorji3) Simetrični multiprocesorji

Page 21: Poglavje 8 Multi-procesorski sistemi

Tipi multi-procesorskih OS (1)

Vsak CPU ima svoj operacijski sistem

Bus

Page 22: Poglavje 8 Multi-procesorski sistemi

• Lastna kopija OS za vsak CPU.– Deljenje kode OS.– Razdeljen spomin.– Deljenje diska.

• N CPU = N neodvisnih računalnikov.– Optimizacija: 1 kopija OS – Privatne kopije podat.struktur.– V tej verziji si CPU delijo disk.

Vsak CPU svoj OS

Page 23: Poglavje 8 Multi-procesorski sistemi

23

• Štirje aspekti (niso tako očitni):– OS klici se izvršijo lokalno.– Vsak OS ima svoje tabele lokalno. Ni deljenja

procesov.– Ni deljenja strani. Različni ostranjevalni sistemi.– Diskovni predpomnilnik je na vsakem CPU.

Lahko pride do nekonsistentnosti.

• Ta model običajno ni več uporabljen.

Vsak CPU svoj OS

Page 24: Poglavje 8 Multi-procesorski sistemi

Tipi multi-procesorskih OS (2)

Nadrejeni-podrejeni multiprocesor

Bus

Page 25: Poglavje 8 Multi-procesorski sistemi

• En CPU vsebuje tabele in kopijo OS.– Vsi sistemski klici se izvršijo na enem CPU.– Ko CPU opravi delo vpraša nadrejenega za

naslednje opravilo.– Ta model se izogne večini slabim lastnostim

prejšnjega.– CPU-ji so lahko usklajeni.

• Problemi:– Nadrejeni postane „ozko grlo“.– 10% kode je v sistemskem delu.– 10 CPU bo zasedlo nadrejenega.

Nadrejeni/podrejeni CPU

Page 26: Poglavje 8 Multi-procesorski sistemi

Tipi multi-procesorskih OS (3)

• Simetrični multiprocesorji– SMP multiprocesorski model

Bus

Page 27: Poglavje 8 Multi-procesorski sistemi

• Ena kopija OS – vsi CPU ga uporabljajo– Eliminiramo asimetrijo.

• Dobre lastnosti– Uravnoteženi procesi in spomin – Ni enega nadrejenega CPU

• Slabe lastnosti– 2 procesa izvajata OS kodo => problem!– Npr. 2 procesa vzameta eno prosto stran spomina– Mutex za OS?– Tako slabo kot model Nadrejeni-Podrejeni...

Simetrični multiprocesorji

Page 28: Poglavje 8 Multi-procesorski sistemi

28

• Razdelimo OS na neodvisne kritiče sekcije– Vsaka sekcija ima svoj mutex– Še vedno ostanejo skupne podatkovne strukture– Npr. tabela procesov– Za te naredimo poseben mutex– Paziti je potrebno na smrtne objeme

• Pogosto uporabljena rešitev– Težko je razdeliti OS na kritične sekcije.– Paziti je potrebno na smrtne objeme.– Uporaba vrstnega reda.

Simetrični multiprocesorji

Page 29: Poglavje 8 Multi-procesorski sistemi

Sinhronizacija multi-procesorjev

TSL instrukcije lahko spodletijo, če je vodilo že zaklenjeno

Page 30: Poglavje 8 Multi-procesorski sistemi

Sinhronizacija multi-procesorjev (1)

• Prepoved prekinitev ni smiselna ker imamo več procesorjev

• TSL instrukcija – Ne deluje, v splošnem, na več-procesorskem sis. – Korektna implementacija TSL zaklepa vodilo– Petersonova rešitev

Page 31: Poglavje 8 Multi-procesorski sistemi

Sinhronizacija multi-procesorjev (2)

• Problem korektne TSL– CPU v zanki testira mutex => izguba CPU časa– Obremenjuje vodilo in spomin

• Tudi TSL s predpomnilnikom je problem– Konstantno premikanje 64 besed (vrstice) med

CPU-ji – Problem je pisanje TSL; naredimo v dveh korakih: 1) branje in 2) TSL.

Page 32: Poglavje 8 Multi-procesorski sistemi

32

Sinhronizacija multi-procesorjev (3)• Ethernetno binarno eksponentno umikanje

(Anderson,90)– Ni potrebno predhodno branje– Zmanjšamo smetenje predpomnilnika– Tehtnica: dolžina čakanja - smetenje

• Spin lock – Če TSL ne uspe naredimo privatno ključavnico– + CPU se doda na koncu čakalne vrste– Ko CPU, ki drži ključavnico konča sprosti privatno

ključavnico naslednjemu v vrsti– Ni smetenja, ni stradanja, učinkovitost!

Page 33: Poglavje 8 Multi-procesorski sistemi

33

Sinhronizacija multi-procesorjev (4)

Več ključavnic za izogibanje smetenju predpomnilnika

Page 34: Poglavje 8 Multi-procesorski sistemi

Sinhronizacija multi-procesorjev (5)

Kroženje proti preklaplanju• V nekaterih primerih mora CPU počakati

– Čaka da pridobi listo pripravljenih

• V ostalih primerih imamo izbiro – Kroženje porabi CPU cikle– Preklaplanje tudi uporabi CPU cikle– Možno je narediti ločene odločitve vsakič, ko

opazimo zaklenjen mutex

Page 35: Poglavje 8 Multi-procesorski sistemi

Multiprocesorsko razporejanje

• Deljenje časa• Deljenje prostora• Razporejanje band

Page 36: Poglavje 8 Multi-procesorski sistemi

• Razporejamo procese, ki imajo niti.– Razlika med jedrnimi in uporabniškimi nitmi.– Jedro se zaveda niti in povezave med nitmi in

procesi.• Nekatere niti so povezane, druge niso.• Primer make: prevajanje modulov in vseh odvisnih

modulov• Potrebno je korektno izbirati niti.

• Razporejanje ima dve dimenziji– Kateri procesi (niti) se bodo izvajale na katerih

procesorjih? • Ne samo kateri proces...

Multi-procesorsko razporejanje (1)

Page 37: Poglavje 8 Multi-procesorski sistemi

• Algoritem: delitev časa• Najprej: razporejanje neodvisnih procesov.

– Kasneje se bomo ukvarjali s povezanimi nitmi

• Enostaven algoritem:– Ena skupna podatkovna struktura za razporejanje.– Seznam procesov pripravljenih na izvajanje.– Seznami po različnih prioritetah.– Ko se nit ustavi se izbere naslednja iz vrste z

najvišjo prioriteto.– Ustavitev niti: V/I operacija ali pretečeni kvant.

Multi-procesorsko razporejanje (2)

Page 38: Poglavje 8 Multi-procesorski sistemi

• Delitev procesorskega časa (timesharing)– Ena sama podatkovna struktura je uporabljena

za razporejanje!

Delitev časa

Page 39: Poglavje 8 Multi-procesorski sistemi

39

• Primer:• 16 CPU deluje• 14 procesov čaka (prioritetna vrsta)• CPU 4 konča => izbere proces A• CPU 12 konča => izbere proces B

• Algoritem deluje v redu za nepovezane niti.– Podobno eno-procesorskemu sistemu (ena PS).– Avtomatično porazdeljevanje bremen.

• Problemi:– Veliko št. CPU => podatkovne strukture za

razporejanje so zasičene. – Preklop konteksta ob V/I.

Delitev časa

Page 40: Poglavje 8 Multi-procesorski sistemi

40

• Problem: proces drži krožno ključavnico:– Na koncu svojega časovnega kvanta je ne sprosti.– Ostali procesi, ki čakajo na ključavnico se vrtijo v

prazno dokler ključavnica ni odklenjena.

• Pametno razporejanje (Zahorjan, 91):– Rešitev prejšnjega problema.– Definiramo zastavico, ki pove, da nekdo uporablja

krožno ključavnico.– Ko razporejevalnik vidi zastavico da procesu malce

več časa, da neha delati s ključavnico.

Delitev časa

Page 41: Poglavje 8 Multi-procesorski sistemi

41

• Problem:– CPU-ji so različni zaradi predpomnilnika in TLB, ki

vsebujeta bloke prejšnjih procesov.

• Razporejanje z naklonjenostjo (Vaswani, Zahorjan, 91):– Precejšen napor, da bi proces tekel na prejšnjem CPU– Dvo-nivojsko razporejanje:

• Ob kreaciji proces dobi CPU (1. nivo)• Vsak CPU ima svojo množico procesov• Razporejanje poteka potem na vsakem CPU (2. nivo)

Delitev časa

Page 42: Poglavje 8 Multi-procesorski sistemi

42

• Prednosti:– V grobem porazdeli breme po CPU-jih.– Uporablja se predpomnilnik.– Vsak CPU ima svojo pod.strukturo za razporejanje in

redko potrebuje druge. • => PS za razporejanje ni kritična.

Delitev časa

Page 43: Poglavje 8 Multi-procesorski sistemi

Multi-procesorsko razporejanje (3)

• Deljenje prostora– Več niti istočasno na večih CPU-jih

Page 44: Poglavje 8 Multi-procesorski sistemi

• Procesi so med seboj povezani.– Primer make:

• Proces kreira več niti, ki so povezane.

– Razporejanje več niti po večih CPU imenujemo deljenje prostora

• Algoritem:• Proces kreira več niti.• Pogledamo ali imamo zadosti CPU-jev za vse niti.• Če da, potem poženemo niti na CPU-jih.• Če ne, potem počakamo.• Če nit blokira z V/I operacijo potem CPU počaka.• Nit se izvaja do konca.

Delitev prostora

Page 45: Poglavje 8 Multi-procesorski sistemi

45

• V vsakem trenutku so CPU-ji razdeljeni na particije.– Vsaka particija izvaja svojo množico procesov.– Periodično se izvaja razporejanje procesov, ki

vstopajo v izvajanje.– Lahko uporabljamo strategije:

• Najkrajši proces najprej• Prvi pride prvi melje

– FIFO je v praksi težko izboljšati (Krueger, 94).

Delitev prostora

Page 46: Poglavje 8 Multi-procesorski sistemi

46

• Prostorsko in časovno razporejanje.• Kombinacija dveh algoritmov.

– Imamo časovne rezine.– Razporeja se cela banda hkrati.

Multi-procesorsko razporejanje (4)

Page 47: Poglavje 8 Multi-procesorski sistemi

• Deljenje prostora eliminira preklaplanje kontekstov.– Vendar procesi čakajo blokirani …– Algoritmi za deljenje časa in prostora !

• Problemi pri razporejanju niti, ki so neodvisne med sabo.– Niti so lahko nesinhronizirane.– Poglejmo primer:

Razporejanje bande

Page 48: Poglavje 8 Multi-procesorski sistemi

• Problem komunikacije med dvema nitma– Oba pripadata procesu A– Oba tečeta izven faze

Razporejanje bande

Page 49: Poglavje 8 Multi-procesorski sistemi

• Rešitev: razporejanje bande– Skupino povezanih niti se razporeja kot enoto (bando).– Vsi člani bande tečejo simultano na različnih CPU-jih.– Vsi člani bande začnejo in končajo časovne rezine

skupaj.

Razporejanje bande

Page 50: Poglavje 8 Multi-procesorski sistemi

Razporejanje bande

Razporejanje bande