Computerworld News Service: Chipproducenterne bliver ved med at øge antallet af kerner i hver ny generation af processorer.
Og måske er det ved at være tid at omtænke den grundlæggende arkitektur i de nutidige styresystemer, foreslår Dave Probert, der er kerne-arkitekt i Windows Core Operating System Division hos Microsoft.
Den aktuelle tilgang til at udnytte styrken ved processorer med flere processorkerner er kompliceret og ikke helt vellykket, mener han.
Frem for at bruge mere energi på at raffinere teknikker såsom parallelprogrammering kan nøglen til at løse problemet vise sig at være en omtænkning af de grundlæggende koncepter, der udgør modellen for et styresystem.
Får ikke nok ud af de mange kerner
Computere i dag får ikke nok ydelse ud af deres flerkernede chip, siger Dave Probert.
"Hvorfor skal man nogensinde - med al denne parallelhardware - nogensinde overhovedet være nødt til at vente på sin computer?" spøger han retorisk.
Probert er med i det team, der arbejder på den næste generation af Windows.
Han påpeger dog, at idéerne ikke repræsenterer konkret arbejde, som hans team foretager for Microsoft.
Faktisk bemærker han, at mange af de andre softwarearkitekter på Windows-kernel-udviklingsteamet slet ikke er enige i hans syn på sagen.
Designet helt fra bunden
Han forsøger imidlertid at definere, hvordan et nyt styresystem ville tage sig ud, hvis det i dag blev designet helt fra bunden af.
Han konkluderer, at det ville være ret forskelligt fra Windows eller Unix.
En typisk computer kører i dag adskillige programmer samtidigt og afspiller eksempelvis musik, mens brugeren skriver en e-mail og surfer på nettet.
"Hurtige svartider står øverst på listen. Det er det, folk vil have," siger han.
Problemet med svartider er, at styresystemet har svært ved at finde ud af, hvad der er vigtigst.
"Man gider ikke sidde og vente på, at Microsoft Word starter op, bare fordi antivirusprogrammet valgte lige præcist dette øjeblik at begynde at skanne alle ens filer," siger Dave Probert.
Her er problemet med de flerkernede chips
De fleste styresystemer benytter et slags prioriteringssystem i et forsøg på at undgå sådanne flaskehalse, men de er stadig primitive.
Probert foreslår ligefrem en "Dette stinker!"-knap, som brugeren kan klikke på, hver gang computerens sløvhed bliver frustrerende.
De opsamlede data kan derefter bruges til at give udviklerne et bedre billede af, hvad der skal prioriteres.
Da de begyndte at tilføje flere processorkerner, anlagde chipproducenterne en ekstremt optimistisk tilgang de flerkernede chip, hvor de bare byggede dem og krydsede fingre for, at applikationsprogrammørerne ville skrive programmer til dem.
Problemet er, at de nuværende desktopprogrammer ikke udnytter de adskillige kerner effektivt nok, forklarer han.
For at drage fuld nytte af flere processorkerner er udviklerne nødt til at bruge teknikker til parallelprogrammering.
Det bliver ved at være en svært disciplin at mestre og er ikke blevet udnyttet i noget stort omfang uden for specialiserede videnskabelige programmer såsom til klimasimulation.
Måske vil det være bedre at omtænke, hvordan styresystemet håndterer disse flerkernede processorer, mener Probert.
"Spørgsmålet er faktisk ikke, hvordan vi skal parallelprogrammere - - men hvad vi skal gøre med alle disse transistorer."
Fremtidens styresystem vil ligne en hypervisor
Den nuværende arkitektur af styresystemer er baseret på et antal abstraktioner, forklarer Dave Probert.
I computernes tidlige dage kørte et enkelt program på en enkelt CPU.
Da vi ville have flere programmer til at køre på den samme processor, blev CPU-tiden hakket op i processer, hvilket gav hvert program illusionen af at køre på sin egen dedikerede CPU.
Ideen om processerne var en abstraktion eller spaltning, og det ville ikke blive den sidste.
Da styresystemerne begyndte at jonglere med adskillige programmer, opstod der et behov for et beskyttet rum, der var afskærmet fra både brugeren og programmerne.
Deraf opstod "kernel mode," der er adskilt fra der, hvor programmerne køres, det vil sige "user mode".
Kernel mode og user mode spaltede praktisk set CPU'en ud i to CPU'er, fortæller Dave Probert.
Hvilke opgaver skal have opmærksomheden?
Med alle disse virtuelle CPU'er opstår dog kampen om hvilke opgaver, der får opmærksomheden fra den virkelige CPU.
Og omkostningerne i systemydelse ved at skifte mellem alle disse CPU'er begynder at stige til det punkt, hvor det går ud over svartiden, særligt med introduktionen af flere processorkerner.
Men når nu både Intel og AMD vurderer, at antallet af kerner i deres produkter vil fortsætte med at stige, kan styresystemsudviklerne lige så godt skille sig af med abstraktioner såsom skellet mellem user mode og kernel mode, argumenterer Probert.
"Når der kommer mange kerner, bliver CPU'en til CPU igen," siger han. "Hvis vi får nok af dem, kan vi måske begynde at dele ud af dem" til individuelle programmer.
Vil ligne en hypervisor
Med denne tilgang ville styresystemerne ikke længere ligne de nuværende styresystemer, men nærmere fungere ligesom en hypervisor.
En hypervisor er et koncept fra virtualisering og fungerer som et lag mellem den virtuelle maskine og den fysiske hardware.
Programmerne - eller runtimes, som Probert kalder dem - ville selv bære mange af arbejdsbyrderne i forhold til ressourcestyring.
Styresystemet kunne tildele en applikation en processorkerne og noget hukommelse, og applikationen ville derefter ved hjælp af metadata genereret af compileren bedst selv vide, hvordan ressourcerne skulle udnyttes.
Probert erkender, at denne tilgang ville være meget svær at teste, da den ville kræve en stor mængde eksisterende applikationer. Men det kunne vise sig at være umagen værd.
"Der er langt mere fleksibilitet i denne model," påpeger han.
Oversat af Thomas Bøndergaard