Help - Zoeken - Gebruikers - Kalender
Volledige versie: Weekoverzicht: enkele interessante gebeurtenissen in Linux-land #64
MandrivaClub.NL > Forum > Nieuws
doelman
Pak een biertje, en ga goed zitten voor nieuwsbericht nummer 64! icon_idea.gif
Afgelopen week in het nieuws:Software updates:
Pardus Linux 2007.2
OpenOffice.org 2.2.1 NL
Wireshark 0.99.6 (Voorheen Ethereal)
YamiPod 1.5
Wine 0.9.41
SlimServer 6.5.3
Linux kernel 2.6.22.1
FreevoLive 0.13

Dank aan HighKing en de rest van de crew. smile.gif
superstoned
tussen haakjes, er is nix real-time aan CFS (ook fout van tweakers, ja). Het unieke aan de scheduler is dat ie alle taken ALTIJD een gelijk aandeel geeft van CPU tijd, terwijl de oude scheduler probeerde om op een intelligente manier interactieve processen MEER te geven. Dat klinkt goed, maar kan leiden tot flinke problemen, waaronder 'starvation', waarbij het systeem gedurende zelfs tot minuten niet meer reageert. Dit probleem komt bij CFS niet voor.

Om te compenseren voor het 'verlies' van interactiviteit (snel reageren op input, ofwel het gevoel van snelheid) maakt CFS, net als de 'inspirator' van CFS, SD ofwel 'staircase deadline', gebruik van een eigenschap van vrijwel alle interactieve processen: ze gebruiken minder dan hun 'fair share'. De oude scheduler keek hier op een andere manier naar: deze gaf 'punten' weg aan de processen die hun toegewezen stukje CPU toegang niet hadden opgemaakt, en interactieve processen kregen zo een bonus. Dit heeft onder andere als nadeel dat wanneer een proces snel van gedrag veranderd (bijvoorbeeld een ftp server die heel lang wacht op input en dan plots heftig aan de slag gaat) dan veranderd de score maar langzaam mee - en kan dat proces te veel of te weinig CPU krijgen.

CFS is slimmer. CFS probeert helemaal eerlijk te zijn: ieder proces krijgt een gelijk deel CPU. Wanneer je je CPU in deze ronde nog niet hebt opgemaakt heb je een 'oneerlijk klein' deel van de CPU toegang, dus wanneer je graag weer aan de beurt wil zijn ben je vrijwel direct - interactief dus. Heb je je deel al opgemaakt, dan moet je wachten.

Het klinkt erg hetzelfde, maar het verschil zit em in de puntentelling, die kan zorgen dat je over tijd oneerlijk voordeel krijgt. CFS daarintegen 'vergeet' het gedrag van een proces direct weer. Waneer een systeem met de oude kernel het moeilijk kreeg (dus als je veel processen had draaien) dan zou het interactieve deel (voorzover het allemaal goed werkte natuurlijk) vrij interactief blijven. Had je de pech dat het fout ging, dan kon een belangrijk proces EXTRA langzaam worden, en je kon tevoren ook moeilijk inschatten wat er gebeurde. Maar, als alles goed ging, was je systeem nog steeds goed bruikbaar.

Met CFS word een systeem wanneer de belasting toeneemt lineair trager - alles vertraagt dus (behalve de processen die minder dan 1/(aantal processen) rekenkracht nodig hebben - die blijven snel, en zijn nog steeds direct aan de beurt). Kortom, de oude scheduler was wellicht beter voor wat oudere hardware. De nieuwe daarintegen is, zeker op een dualcore, een stuk prettiger - er is namenlijk geen kans meer op die onverklaarbare vertragingen, waarin de pc gedurende een lange tijd niet meer reageert op je input.

(ok, dat werd langer dan gepland, maar goed. Als iemand vragen heeft, stel ze gerust - al weet ik hier natuurlijk ook niet alles van)
Dit is een "Print" versie van onze forums. Om de volledige versie met meer informatie, afbeeldingen en opmaakte bekijken, a.u.b. klik hier.