Linux ütemezõ – processzorhasználat korlátozása?

Kezdőlap Fórumok Vegyes felvágott Linux ütemezõ – processzorhasználat korlátozása?

8 bejegyzés megtekintése - 1-8 / 8
  • Szerző
    Bejegyzés
  • #1963364
    Tassadar
    Felhasználó

      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?

      #1963365
      Attis84
      Felhasználó

        Van é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õ.

        #1963366
        testerlnx
        Felhasználó

          Há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

          #1963367
          Tassadar
          Felhasználó

            Linuxná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.

            #1963368
            Attis84
            Felhasználó

              Na 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.

              #1963369
              Tassadar
              Felhasználó

                WinNT-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.

                #1963370
                fellow
                Felhasználó

                  Attis84:

                  #1875558
                  csaba
                  Felhasználó
                  8 bejegyzés megtekintése - 1-8 / 8
                  • Be kell jelentkezni a hozzászóláshoz.