"Claus Tersgov" <nospamnews@tersgov.dk> wrote in message
news:47e65880$0$90276$14726298@news.sunsite.dk...
> Mogens Hansen skrev bl.a.:
>
>> Spørgsmålet om hvorvidt Photoshop udnytter flere CPU'er er først og
>> fremmest et spørgsmål om hvordan Photoshop er skrevet - specifikt om
>> den er multitrådet og holder trådene beskæftiget.
>> Det har ikke meget med operativsystemet at gøre.
>
> Det har *alt* med OS at gøre.
Sikke noget sludder.
At operativsystemet understøtter flere tråde og flere CPU'er er en
nødvendig, men ikke tilstrækkelig forudsætning for at applikationer skalerer
med antallet af CPU kerner.
Windows NT (og efterfølgere) har understøttet det i mange år (jeg har kørt
med dual CPU siden 1998 på Windows NT 4.0 er nyere, og senest med dual-quad
Xeon på Vista 64).
Mac OS X opfylder også den forudsætning.
Applikationen _skal_ være flertrådet for at applikationen skalerer med
antallet af CPU kerner - det er _ikke_ operativsystemet der står for
parallelisering af opgaverne når f.eks. Photoshop laver behandling af et
billede (f.eks. Shadow/Highlight justering).
Operativsystemet stiller primitiverne (tråde, semaphorer, asynkron I/O etc.)
til rådighed og står for scheduleringen af trådene, men det er applikationen
(f.eks. Photoshop) som opretter trådene og bestemmer hvad de skal lave, og
derigennem afgør hvor godt eller dårligt applikationen skalerer med antallet
af CPUer.
Det har som jeg sagde ikke meget med operativsystemet at gøre. Det skal
besidde nogle basale egenskaber - resten er op til designet af
applikationen.
Man kan f.eks. læse mere om det på
http://en.wikipedia.org/wiki/Multi-core_%28computing%29
under "Software impact"
> Der findes ikke et eneste moderne OS som tillader software at skrive
> direkte til hardwaren,
Det er noget ukonkret, meningsløs snak, der ikke bidrager til klarhed i
denne sammenhæng (og iøvrigt er det forkert - det kræver blot eet nyere
operativsystem for at være forkert - se f.eks.
http://www.uclinux.org/description/).
Drivere (kernel mode) er _software_, der har mulighed for at have direkte
adgang til hardwaren.
Applikationer (user mode) er _software_, der typisk ikke har direkte adgang
til hardwaren på moderne operativsystemer (som Windows og Mac OS X som er
relevant for snak om Photoshop).
Men hvad har direkte adgang til hardwaren overhovedet med en applikations
skalering med antallet af CPU kerner at gøre ?
> det strider imod alt fornuft og sikker software arkitektur...
>
> Et modernr multitasking OS *skal* overvåge og godkende alle instrukser til
> hardwaren.
Operativsystemet godkender ikke instruktionerne inden de eksekveres.
Operativsystemet udnytter CPU'ernes MMU til at overvåge at der kun læses og
skrives inden for tilladelige hukommelses-områder, eventuelt at koden ikke
modificeres dynamisk på runtime og lignende. Hvis det ikke er tilfældet
generer CPU'en en page-fault, som operativsystemet kan fange og håndtere.
Operativsystemet bruger også de mekanismer til at sikre at skrivning til
hardware går gennem drivere.
Se eventuelt
http://en.wikipedia.org/wiki/Memory_management_unit
For applikationer kan operativsystemet afbryde applikationen, hvis CPUen
detekterer at reglerne overtrædes.
For drivere der overtræder reglerne, kan et ikke mikrokerne operativsystem
(som Windows) ikke gøre andet end at opgive - på Windows: Blue Screen of
Death.
>
> Hvis du tror, at man kan have et moderne multitasking OS, som ikke ved,
> hvad der sker i alle dele af hardwaren, så ved du for lidt om
> systemarkitektur..
Hvad har det med en applikations skalering med antallet af CPU kerner at
gøre ?
Hvad er dit problem, siden du begynder på sådan noget forvrøvlet
personfnidder ?
Hvad ved du om min viden om systemarkitektur ?
--
Venlig hilsen
Mogens Hansen