Kezdőlap › Fórumok › Vegyes felvágott › Linux ütemezõ – processzorhasználat korlátozása?
- This topic has 7 hozzászólás, 5 résztvevő, and was last updated 21 years telt el by
fellow.
-
SzerzőBejegyzés
-
2004-08-15-05:45 #1963364
Prioritás tudod változtatni.
„ha éppen egyedül fut az egész rendszeren.”
Ennek mi értelme? 😆
Egyébként olyan nincs, hogy egyedül fut./off
valaki megmondaná pontosan mi a rendszer ürejárat?2004-08-15-12:29 #1963365Van értelme, hidd el. Mondom, például egy többfelhasználós rendszerben. Azok se szívjanak, akiknek csak egy shell vagy egy mc fut, ha közben mások nagy gépigényû feladatokat futtatnak.
Az üresjárat így néz ki: amikor feláll a kernel, rögtön elindítja az init programot, ami a rendszer inicializálását, szolgáltatások indítását végzi. Ha mindez kész van (elindította a démonokat az adott futási szinten), akkor a háttérbe megy minimális prioritással, és õ lesz az üresjárati folyamat. Ugyanúgy megy ez, mint WinNT alatt.
Ez azért fontos, mert ha nincs üresjárati folyamat, és egyik process sem áll készen a futásra, akkor az ütemezõ ugyan mit csinálna? Ehelyett ha nincs más folyamat, akkor az üresjárat „megeszi” az idõszelet hátralévõ részét, ezt lehet látni a top-ban, vagy a KDE system guard-jában, mint a CPU „idle” ideje. Ennek még az az elõnye is megvan, hogy ilyenkor a CPU végre tud hajtani egy HLT utasítást, azaz leállítja a belsõ órajelet, egészen egy interrupt beérkezéséig. A következõ idõzítõ megszalítás fogja újraindítani a procit. Ezért van az, hogy a CPU hõmérséklete és fogyasztása üresjáratban le tud csökkenni.
Vannak olyan folyamatok, amik mindig annyi CPU-idõt használnak, amennyit csak tudnak: játékok, emulátorok, GCC stb. Pl. ha egy vmware és egy OpenOffice fut egyszerre, az OpenOffice akadozni fog, pedig neki csak néhány százalék CPU-idõ kéne. A gond nem is itt van, mert ezt le lehet kezelni prioritáskezeléssel, abban nincs is hiba – ha az OpenOffice magasabb prioritáson van, akkor elvileg simán fut, és a vmware annyi idõt használhat csak, amit az OO átenged neki.
A gond akkor kezdõdik, ha egyszerre két olyan program fut, ami amúgy megenné az összes CPU-idõt. Ha jól értem a dolgot, akkor ha azonos prioritáson vannak, gyakorlatilag round robin ütemezés érvényes, azaz 50%-ot kap mindkettõ.
2004-08-15-13:55 #1963366Hát a priorítás beállításához van a nice meg a renice, nem? Ezekkel tudod szabályozni az idõzítést, vagyis ha két CPU igényes task-ot futtatsz akkor a jobb nice-u task több idõszeletet fog kapni (Range goes from -20 (highest priority) to 19 (lowest).)… Gondolom
2004-08-15-14:44 #1963367Linuxnál (még 2.x-es kerneleknél,gondolom azóta sokat fejlõdött) idõosztásos (time-sharing) és valósidejü (real-time) algoritmusokról tanultam.
2004-08-16-07:10 #1963368Na itt a válasz a saját kérdésemre: (idõközben rátaláltam)
fairsched.sourceforge.net
Ez a project egy kernel patch, ami arra való, hogy a felhasználók és processek CPU-használatát „igazságosan”, azaz egy megadott súlyozás szerint határozza meg. 1ébként azt írják, azért hiányzik ez a lehetõség az alap kernelbõl, mert az ütemezõt a lehetõ leghatékonyabbra akarták építeni, és ezért az adminisztrációs költségeket nem növelték egy ilyennel.
Ez a patch csak 2.4.0-s kernelhez van, lehet, hogy a 2.6.x-ben már alapból benne van valami hasonló?
Real-time ütemezõ van a linuxban, de az azért nem jó, mert egy real-time process mindig birtokolja a CPU-t, amíg vissza nem adja az idõszeletet, és mindig õ fut, ha készen áll a futásra.
2004-08-16-09:13 #1963369WinNT-ben a magasabb prioritású process blokkolhatja az öszes alacsonyabbat, linuxban ez hogy van?
Az éppen futó folyamatnak -magasabb prioritás mellett- is csökken a kreditje, így nem hiszem, hogy blokkolhatja.
2004-08-18-01:55 #1963370Attis84:
„2009-12-04-19:56 #1875558 -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz