GGunnarDMedlem sedan juni 20014 290 inlägg Då borde man få en "penalty" om man kör mycket dynamsika sidor, än om man körde bara i "user mode"?
Och det förutsätts att webserver inte har några fel, och inte av någon anledning börjar skriva någon annanstan pga. en pekare som pekar fel..
Som det kanske märks så är jag imot att köra applikationer i "kernel mode" (ring 0) den lilla fördelen man får med statiska sidor uppväger inte nackdelarna.
------------------
If you can't convince them, confuse them.
ToonsterMedlem sedan feb. 20001 590 inläggOm kärnan är konstruerad riktigt, så ska ett program oavsett var det körs, som skriver utanför tilldelat minnesutrymme, skapa en "trap", och dispatchern ska kunna ta hand om detta "trap" error, och utföra lämplig åtgärd, ex dumpa registren i en logfil, och stoppa processen. Detta ställer höga krav på minneshanteringssystemet, och det är en sak som skiljer ex. mellan W2K professional och serverversionen.
Och visst är det onödigt att belasta kärnan med "farliga" funktioner, men är maskinen dedikerad för detta tex. den http server ni diskuterar, så borde det vara hyfsat säkert än om maskinen kör en massa ytterligare applikationer.
/T
------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no
...den lilla fördelen man får med statiska sidor...
Fördelen gäller inte bara gäller statiska sidor. Det blir aldrig dyrare vid cachemiss, ur prestandasynpunkt kan man bara vinna på detta. Vinsten är såklart störst för statiska sidor, men förbättrar prestanda i samtliga fall.
En cachemiss när http-handlern ligger i kernel mode är fortfarande billigare
än motsvarande situation då webservern ligger helt i usermode. Som tidigare,
anledningen är att man slipper en extra kopiering av data från usermode. Med IIS6 (, TUX eller kHTTPd) skriver kernelmode-handlern direkt in i usermode-applikationens minnesarea då data kommer från socketen. Dvs, ingen extra mellanlagringsbuffert för datat krävs (i och med att man från kernelmode har tillgång till även usermode applikationers minne)
För en usermode webserver skulle först datat från socketen i kernelmode mellanlagras i tcp/ip-stacken, för att sedan göra en transition till usermode och kopiera datat till webserverapplikationen.
Dock är det som du säger viktigt att kernelmode-drivern är korrekt. Fel som krascher och minnesläckor i kernelmode är oförlåtliga. Min erfarenhet är att IIS 5 inte haft några problem med minnesläckor eller kraschar.
Jag har sett ett par fall då inetinfo.exe dumpat, men det beror samtliga fall på buggar i 3:e-parts ISAPI extensions/filter.
(Toonster) Jag har "pratat" om processer som körs i kernel mode, dvs.
dess prioritet.
Exakt vad menar du med detta?
(Toonster) ...man måste ju kompilera om kärnan för att ett eget
program ska kunna köras i kerneln .... Som utvecklare kan jag själv inte
skapa en drivrutin som körs i kerneln...
Vad? Exempelvis drivrutinerna till min DVD-spelare är 3:e parts - dessa går i kernelmode. Kerneln är inte alls omkompilerad för att möjliggöra detta. Detsamma gäller mina grafik-drivisar. Eller för den delen min antivirus-mjukvara. (Jag tror inte du vill ha ett antivirusprogram som ska vända i usermode för varje filaccess)
(Toonster) Detta ställer höga krav på minneshanteringssystemet, och
det är en sak som skiljer ex. mellan W2K professional och serverversionen.
Kan du beskriva exakt vad du menar skiljer mellan w2k pro och w2k server?
(Det är nämligen ingen som helst skillnad på "minneshanteringssystemet"
mellan w2k och w2k server. Det är samma binärer i båda fallen)
Toonster, du har nu skrivit ett flertal inlägg nu som är delvis eller
helt felaktiga. Försök spalta upp dina faktauppgifter i fortsättningen.
Skriv om sådant du säkert vet, och svep inte in dina fakta i luddiga meningar. Tack på förhand!
//Developer
ToonsterMedlem sedan feb. 20001 590 inlägg->Jag har "pratat" om processer som körs i kernel mode, dvs.
dess prioritet.
Jag antar att jag menade alla processer i kernelmode, med prioritet 0.
-> Ang drivrutinerna:
Drivrutiner som körs i kernelmode anväder de befintliga systemfunktionerna som finns i kärnan. 3:e partsdrivrutinen i sig ligger inte i kärnan. I NT's fall finns ju dessa "kernelmode drivers" i executive lagret, lagret ett snäpp över microkerneln. Dessa kernelmode drivers kan laddas dynamsikt (typ din CD drivrutin), och de kan komma från 3:e part. Naturligtvis så byter man inte context för en drivrutin. Låter som hårklyverier från min sida, men jag förstår vad du menar, medan jag förstår att jag varit oklar. Jag har haft tankarna på kärnan och dess systemfunktioner, native API. Ursäkta mig för det. Alltså jag menade att man kan inte skapa en drivrutin utan de grundläggande API'et. Där kan man ändra i Linux exempelvis.
->Angående minneshanteringen så skiljer sig den bla. att serverversionerna i NT4 har 2GB systemminne, medan workstation 1GB systemminne av de totalt 4GB som kerneln klarar av. I W2K klarar kerneln totalt 32GB. Detta gör att kernelmode - usermode switchningen beter sig annorlunda. Drivrutiner i kernelmode behöver inte detta utrymme av förklarliga skäl, och i W2K så används där endast 32 bits adresspekare.
Ok, du vinner, jag håller mig ifrån tråden i fortsättningen, my bad!
/T
------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no