Innehåll

Singel Core vs. Dual Core, igår, idag, imorgon

Inledning
En och en, eller tillsammans
Multitasking
Enkel kärna
Dubbla kärnor
Presler
Testsystem
Subjektiva tester
Prestandatester - Program
Prestandatester - Spel
Framtiden

Tack till Intel, som gjorde denna recension möjlig.

31/03-06 | Niclas Alfinson | niclas alfakrull 64bits punkt se

Utskriftsvänligare versionUtskriftsvänligare version


Multitasking

För att förstå den fundamentala skillnaden mellan en och två kärnor på processorn krävs en förståelse över hur mjukvaran använder dessa. Enklast är att börja längst upp i hierarkin, hur operativsystemet behandlar och prioriterar olika processer/trådar.

Om ni försöker att skala en banan och ett äpple på samma gång märker ni snabbt att det i praktiken är omöjligt, och man ställs då inför två val. Antingen skalar man först bananen och sedan äpplet, eller så byter man snabbt mellan dem i korta intervall. Man kan alltså först skala lite banan, sedan lite äpple och så vidare tills båda är skalade. Det är enligt den sista principen som de flesta moderna operativsystem idag fungerar. Med hjälp av en schemaläggare kan processer som är klara att köras ställas i kö för att prioriterad turordning exekveras.

Schemaläggaren är en del av operativsystemet kärna och dess uppgift är att se till så alla processer som behöver exekveras kommer så att göras på ett ordnat sätt. Den ser alltså till så att en process inte tar åt sig hela processortiden och att en annan process inte ”svälts” till döds, alltså aldrig får exekveras. Detta görs genom att dela upp den tillgängliga processortiden i ett antal mindre tidsluckor. När processen som blivit tilldelad tidslucka N är klar kommer tidslucka N+1 bli tilldelad till nästa väntande process. Detta gör det möjligt för en modern dator att arbeta med flera moment ”samtidigt”. Anledningen till att samtidigt är satt inom citationstecken är att två processer aldrig kan köras exakt samtidigt med enbart en processor, men ur användarens synvinkel sker flera saker på samma gång.

Antag att du startar en rendering av en 3D-modell. Utan någon form av schemaläggning i operativsystemet skulle denna process monopolisera hela processorn och inga andra processer skulle få tillgång till denna förrän flera timmar senare när renderingen är klar. Med hjälp av schemaläggaren kan du fortsätta arbeta med datorn eftersom andra processer blir tilldelade tidsluckor. Dock märker man rätt snabbt att systemet arbetar med annat eftersom responstiden ökar markant om en tung process ligger i bakgrunden och tar åt sig en massa resurser.

Naturligtvis finns det nackdelar med schemaläggning av processer med hjälp av tidsluckor. Tänk er själva ett fyrvägsstopp med trafikljus. Utan trafikljusen hade det troligen varit kaos, men med trafikljusen blir det en viss dötid mellan att de olika riktningarna skall få rött respektive grönt. Detsamma gäller för de olika processerna. Det tar tid för dem att hämta data när de startas upp i sin tidslucka och det tar tid för den att spara undan datan när operativsystemet beordrar att det är dags att sluta och ge nästa process tillgång till processorn. Om vi startar två olika renderingar samtidigt kommer det i de allra flesta fall ta längre tid att slutföra båda än om vi först startar en renderingen och sedan startar nummer två när den första är klar. Att så är fallet beror helt enkelt på den dötid som uppkommer när processerna skall hämta och spara data i början respektive i slutet på sin tidslucka. Tänk er tillbaka till bananen och äpplet, det tar tid för er att lägga ner äpplet och ta upp bananen och således försvinner det en del tid och det hade troligen gått snabbare att först skala hela bananen och sedan hela äpplet, än att varva mellan dem.

Lösningen på problemet med dötid är helt enkelt att ha en processor till varje process. Detta är som ni säkerligen förstår näst intill omöjligt med tanke på att det är upp till ett hundra olika processer igång samtidigt, men klart är, desto fler processorer desto bättre. För att förbättra upplevelsen för konsumenten har både Intel och AMD börjat satsa på processorer som innehåller två kärnor och därigenom kan exekvera två processer samtidigt.


« Föregående Nästa sida »


31/03-06 | Niclas Alfinson | niclas alfakrull 64bits punkt se

Utskriftsvänligare versionUtskriftsvänligare version

Diskutera denna artikeln i vårt forum!