Symmetric multiprocessing
Fra Wikipedia, den frie encyklopedi.
Symmetric multiprocessing (SMP) beskriver systemer som kan utføre flere oppgaver parallelt, enten ved å ha flere enn én prosessor, flere prosessorkjerner eller hyper-threading. For å ha noe utbytte av SMP må man ha støtte i operativsystemet.
| Innholdsfortegnelse |
Fordeler
Med SMP-støtte i Linuxkjernen vil systemet kunne fordele arbeidsoppgaver mellom prosessorene, også i en oppgave som pågår. Selv om en oppgave kan flyttes mellom prosessorene, kan imidlertid oppgaven kun kjøre på én av prosessorene av gangen.
Prosesser som bruker flere tråder vil kunne utnytte SMP ved at hver tråd utgjør separate oppgaver, som kan fordeles på de tilgjengelige prosessorene. Enkelttrådede prosesser vil også kunne få utbytte av SMP, siden operativsystemet uansett vil fordele forskjellige prosesser mellom prosessorene.
Ulemper
På grunn av det økte behovet for synkronisering og kø-håndtering går det nødvendigvis bort noe mer tid og prosessorkraft, og det som brukes internt øker eksponensielt med antall prosessorer.
Å lese fra og skrive til minnet går normalt også tregere, ettersom bare én prosessor kan adressere minnet om gangen. "Non-Uniform Memory Access" (NUMA) er blant forsøkene på å løse dette, og har allerede blitt implementert i Linuxkjernen. NUMA knytter forskjellige minnesegmenter til de forskjellige prosessorene, slik at hver prosessor har et dedikert minneområde, og dermed kan flere prosessorer få tilgang til minnet samtidig.
Begrensninger
Selv om man har flere prosessorer i samme system, er det kun et fåtall maskinvareløsninger som tillater at man kan bytte prosessor ("hotswap") uten å stenge ned systemet. Av disse er det igjen enda færre som også har et operativsystem som forstår dette.
Prosessorbasert lisensiering
Mange kommersielle Linuxleverandører lisensierer distribusjonen i trinn basert på minne og antall prosessorer, eksempelvis er Red Hat Enterprise Linux delt i "ES" (Enterprise Server) som støtter opp til to x86-prosessorer og 8 GiB minne, og "AS" (Advanced Server) som støtter opp til 32 x86-prosessorer og 64 GiB minne.
Også andre leverandører, for eksempel Oracle, lisensierer sine produkter blant annet på grunnlag av antall prosessorer i systemet.

