CPU scheduller

Sekcia: Ostatné 23.05.2010 | 23:48
Avatar slazer   Používateľ
Pri učení na skúšku som narazil na (long-term, short-term) CPU schedulling. Chcem sa spýtať ako si ho mám fyzicky predstaviť. Napríklad úlohov dispečera je vybrať z READY-QUEUE proces, ktorému bude práve pridelený procesor. Čo je dispečer? Je to jeden z procesov? Alebo je to nejaký HW obvod? Ak je to proces tak potom ako môže fungovať keď by musel sám seba schedulovať? A ak zobereme niektoré nepreemptívne plánovacie algoritmy náchylné na starvation, tak by sa ani nemusel dostať k slovu...
    • Re: CPU scheduller 24.05.2010 | 00:06
      Avatar Dušan Ďurech Debian Lenny 5.0  Používateľ
      Ja by som povedal, ze "dispečer" sucast jadra operacneho systemu, a ten sa spusta vdaka hardwarovemu preruseniu casovaca.
      • Re: CPU scheduller 24.05.2010 | 02:01
        Slazer   Návštevník
        Kedze odlisne OS maju odlisne sposoby schedullingu tak do bude asi SW zalezitost. Sucast jadra to nepochybne je (nemoze bezat v user-space) ale nechapem kto prideluje procesorovy cas scheduleru. Sam si ho pridelit nemoze, to nema logiku. Procesor len spusta procesy co ma v ready queue cekuje interrupty a kedze scheduler neni proces tak procesorovy cas moze dostat len cez interrupty... Pomoc.
        • Re: CPU scheduller 24.05.2010 | 13:35
          Lovrej   Návštevník
          Asi by bolo vhodne si nastudovat nieco o procesoroch a preruseniach. Na fi.muni sa to uci v prvom rocniku, tak mozno najdes nejake materialy.
    • Re: CPU scheduller 24.05.2010 | 11:31
      peto   Návštevník
      Kde sa toto na Slovensku uci?

      Ja viem len o SOS (Stvaba operacnych systemov) na FIIT


      Dispecer -to je SW casti planovaca procesov... Ide o system zabezpecujuci prepinanie kontextu na konkretnom jadre

      Podla mna long term scheduling bude planovanie offline. T.j naplanujem si prepinania procesov pred nabehom systemu...
      short term bude asi online..

      odkazem ta asi na pracu svojho studenta

      Michal Praženka: Analýza plánovačov v Linuxe (baklarska praca)

      Evidencne cislo: FEI-5402-20499

      Fakulta Elektrotechniky a informatiky, STU v Bratislave

      Termin odovzdania: 14.5.2010
      • Re: CPU scheduller 24.05.2010 | 16:43
        Slazer   Návštevník
        Nie som na Slovensku. Som prvak na FI MUNI a zajtra mam z toho skusku (toto je naviac). Tak som este raz prezrel skripty.. Zda sa, ze je to o prepinani kontextu procesov. Planovac najskor bezi v kernel-space a ked chce spustit proces tak nastavi rezim na user-space a prepne kontext na ten proces (nacitavsi sa z PCB). V planovani Round-robin sa vsak pouzivaju casove kvanta a ja neviem aky mechanizmus zaruci aby proces bezal presne stanoveny cas. Co po prekroceni limitu odstavi tento proces a vrati riadenie planovacu/OS?
        (pracu si pozriem, ale najskor az po skuske)
        • Re: CPU scheduller 24.05.2010 | 19:27
          Tuktuk   Návštevník
          Prerusenim, ktore dostane od casovaca. Ak mas Operacne systemy tak si pozri slajdy alebo prednasku k Operační systémy a jejich rozhraní.
        • Re: CPU scheduller 25.05.2010 | 10:40
          peto   Návštevník
          > V planovani Round-robin sa vsak pouzivaju casove kvanta a ja neviem aky mechanizmus zaruci aby proces bezal presne stanoveny cas.

          mnikdy to nebude bezat presne stanoveny cas, resp. takmer nikdy.. Prekazkou je atomicke operacie(v user space) a BKL resp. niektore spinloocky(v jadre).
          Pocas nich nie je moznost prepnut kontext, aj ked dojde prerusenie od PIC/APIC resp. Intel 8254

          tie chupy maju same neprsnosti dorucovania

          obstarozna 8254 ma toleranciu +/- 4 700 nanosekund
          a moderne APIC-y maju beyne toleranciu nepresnosti +/- 3944 nanaoskenud...

          Cize uz v HW je tragicka nepresnost pre SW RTLinuxPro (dnes tusim pod nazvom WindRiver Linux), ktory garantuje nepresnost casovacov vratenie prepnutia kontextu max 48 nanosekund...
          To sa riesi empirickymi korekciami, ci inymi zdrojmi hodim...
          ci dokonca pocitanim tikov CPU hodin na jadre, ktore sa nepusta do C-stavov a nerobi nic ine...