A folyamatmodell leképezése fizikai eszközökre

A VIK Wikiből
A lap korábbi változatát látod, amilyen (vitalap) 2012. október 21., 20:06-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoalap|OpreVazlatLekepezes}} vissza: OpRe / OpreVazlatFolyamatkezeles __TOC__ (TK 136-147) ==A működés alapjai== * A folyamat létrej…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


vissza: OpRe / OpreVazlatFolyamatkezeles

Tartalomjegyzék

(TK 136-147)

A működés alapjai

  • A folyamat létrejöttekor létrejön számára egy logikai memória és egy logikai processzor.
  • A fizikai rendszerben a folyamat megkapja a memória egy részét.
  • A fizikai processzor a folyamatok egy-egy részletének végrehajtása után átkapcsol egy másik folyamatra (Látszolag párhuzamos)
  • A processzor egy I/O művelet végrehajtása közben más folyamat futtatásával foglalkozhat.
  • A folyamatok a CPU-ért és a perifériákért is versenyeznek.

Az erőforrások jó kihasználásának feltétele, hogy egy adott időszakban a CPU-intenzív és az I/O-intenzív folyamatok száma kiegyenlített legyen a rendszerben. Az operációs rendszer az elvégzendő feladatok végrehajtását valamilyen szempontból optimalizálni igyekszik.

Sorállási modell

Korlátos erőforráskészletért versengő folyamatok rendszerének elemzésére alkalmas.

A modell számításokra is alkalmas változata valószínűségi változókat és eloszlásfüggvényeket használ a terhelés és kiszolgálás jellemzésére.

Hosszú távú ütemező: Új job-ok végrehajtásának megkezdéséről (új folyamatok indításáról) dönt. Az elvégzésre váró munkák közül a választás szempontja, hogy a CPU-intenzív és az I/O-intenzív jobok aránya optimális legyen.

Rövid távú ütemező (CPU-ütemező) Ez biztosan lefut, amikor egy processzorlöket befejeződik.

Középtávú ütemező: A multiprogramozás fokának megváltoztatását (azaz a rendszerben lévő folyamatok számának változtatását) végzi el, amikor a memória válik a rendszer szűk keresztmetszetévé. A középtávú ütemező - észlelve a memóriaszűkét - egyes folyamatokat felfüggeszt, memóriaterületüket a háttértárra menti és felszabadítja, átmenetileg kivonja őket az erőforrásokért folytatott versengésből. Értelemszerűen a felfüggesztett folyamatok memóriaterületét a többi folyamat használhatja. Később, ha a terhelés csökken, a felfüggesztett folyamatok visszatölthetők. (_ezen ütemezés ábrázolására a diagram nem alkalmas_)


Ezen a helyen volt linkelve a sorallasi_diagram.JPG nevű kép a régi wiki ezen oldaláról. (Kérlek hozd át ezt a képet ide, különben idővel el fog tűnni a régi wikivel együtt)


-- szzs - 2005.11.13.

Állapotmodell

Egy folyamat végrehajtásának dinamikáját írja le egy multiprogramozott rendszerben.


  • Állapotok
    • Futásra kész: a folyamat a CPU-n kívül minden más erőforrást birtokol amire szüksége van.
    • Futó: a folyamat aktuális műveletét a CPU éppen végrehajtja.
    • Várakozó: a folyamat nem használhatja a CPU-t, mert valamilyen feltétel teljesülésére várakozik.
  • Állapotátmenetek
    • Futásra kész => futó: A CPU ütemezője kiválasztja a folyamatot végrehajtásra.
    • Futó => futásra kész: Az oprendszer elveszi a CPU-t a folyamattól, vagy a folyamat lemond róla (együttműködő folyamatok)
    • Futó => várakozó: A folyamat olyan műveletet indít amely miatt várakozni kényszerül.
    • Várakozó => futásra kész: A folyamat által várt esemény bekövetkezik.
Ezen a helyen volt linkelve a allapotatmeneti_diagram_v2.jpg nevű kép a régi wiki ezen oldaláról. (Kérlek hozd át ezt a képet ide, különben idővel el fog tűnni a régi wikivel együtt)


-- szzs - 2005.11.13.

Egy megvalósítási séma

Folyamatleíró (PCB: Process Control Block)

A folyamatok kezeléséhez szükséges információkat tárolja.

Tartalma: A folyamat azonosítója; állapota; szülőjének és gyerekeinek azonosítója; a folyamathoz tartozó tárterület leírása; a folyamat által használt egyéb erőforrások leírása; a regiszterek tartalma; a várt esemény leírása; prioritás; várakozási idő; statisztikák.

Be-/kiviteli leírók (IOCB: Input-Output Control Block)

A be-/kiviteli műveletek paramétereinek tárolására.

Környzetváltás

Amikor a rendszer átkapcsol egy másik folyamatra a futó folyamat teljes állapotterét menteni kell, továbbá az új folyamat utoljára elmentett állapotterét kell elővenni.

A be-/kiviteli műveletek végrehajtása

  • A folyamat kitölt egy IOCB-t.
  • I/O rendszerhívást hajt végre.
  • Az oprendszer
    • hozzáláncolja az IOCB-t a folyamat PCB-jéhez
    • a folyamat PCB-jét befűzi a periféria sorába
    • ha a sor üres volt, indítási parancsot ad a perifériának
    • a folyamatot várakozó állapotba helyezi
    • CPU-ütemezést hajt végre
    • visszatér

A be-/kiviteli megszakítás végrehajtása

  • Az átvitel eredményére utaló jelzést ír a periféria várakozási sorának elején álló PCB-hez láncolt IOCB-be.
  • A sor elején álló PCB-t kifűzi a sorból, átteszi a futásra kész sorba.
  • Ha van még várakozó folyamat a periféria sorában, a következő IOCB paramétereivel indítási parancsot ad a perifériának.
  • Ha a CPU ütemezés preemptív, CPU ütemezést hajt végre.
  • Visszatér.

Tétlen ciklusok kiküszöbölése


Kérdések 7.3

1. Mi a futásra kész állapotú folyamatok közös jellmezője?

Futásra kész állapotban vannak azok a folyamatok, amelyeknek a következő műveletét a CPU bármikor végrehajthatná. Másszóval a CPU-n kívül minden más erőfőrrást birtokolnak, amire működésük adott szakaszában szükségük van.

2. Miért lehet szükség egy operációs rendszer felügyelete alatt futó folyamatoknál felfüggesztett állapotra. Mondjon példát a felfüggesztés okára!

Felfüggesztett állapotra akkor lehet szükség, ha (pl. dinamikus lokális tárgazdálkodásnál) túl sok folyamat fut egyidejűleg és kevés a memória. Ekkor a várakozó vagy futásra kész folyamtoktól elveszi a memóriát, és ezek ettől a pillanattól kezdve felfüggesztett állapotban vannak.

3. Sorolja fel, hogy egy operációs rendszerben a rendszerhívások végrehajtása milyen főbb lépésekben zajlik. Mi a jelentősége annak, hogy a a felhasználói programok és az operációs rendszer magja a CPU különböző működési módjában fut?

  • hozzáláncolja az IOCB-t a hívó folyamat PCB-jéhez
  • a folyamat PCB-jét befűzi a periféria sorába
  • ha a sor üres volt, az IOCB paramétereivel indítási parancsot ad a perifériának
  • a folyamatot várakozó állapotba helyezi
  • CPU-ütemezést hajt végre, azaz kiválasztja a következő futó folyamatot és környezetet vált
  • visszatér (az új folyamatra)

Különbözo muködési mód jelentőssége: az alkalmazói programok csak egy ponton keresztül kapcsolódnak a “hardverhez”, és ehhez rendszerhívást kell végezniük. Ekkor az operációs rendszer felügyelete alatt történik minden, tehát a privilegizált (veszélyes) utasítások csak így hajtódhatnak végre. Ezeket nem a felhasználói folyamat, hanem az operációs rendszer kezeli.

4. Rajzolja fel a folyamatok állapotátmeneti grafikonját! Mikor milyen okok hatására következhet be a futó állapotból futásra kész állapotba átmenetet?

lásd kicsit fentebb.

5. Az operációs rendszerek a megszakítások kiszolgálására milyen alapvető módszereket alkalmaznak?

A külső megszakítás egy számítógéprendszerben olyan eszköz, amelyik lehetővé teszi, hogy a rendszer gyorsan reagáljon egy előre nem látható időpontban bekövetkező külső jelzésre. A hardver a rendszerek többségében prioritásos, vektoros megszakításkérést biztosít. Egy külső megszakítás elfogadásakor a processzor általában működési módot vált (rendszermódba kapcsol), és a megszakítási vektor által meghatározott címen folytatja a programvégrehajtást. Ezen a címen az operációs rendszer megfelelő része helyezkedik el és reagál a megszakításkérésre. Emiatt a módváltás miatt fontos, hogy a teljes megszakítási rendszert – beleértve a vektortáblákat, a megszakítási programok címkiosztását is – az operációs rendszer kezelje, mert ellenkező esetben kijátszható lenne a védelmi rendszer. Ebből következik, hogy a megszakítási programok csak olyan reakciókat tartalmazhatnak, amelyek az operációs rendszer írásakor ismertek. Sok esetben hasznos lehet, ha egyes felhasználói programokat, esetleg programrészleteket megszakítás hatására tudunk végrehajtani. A rendszerek egy része ezért lehetőséget ad ilyen megoldásokra, azonban ezt áttételek beiktatásával teszi úgy, hogy a felhasználói programrészlet ne rendszermódban fusson.

-- adamo - 2005.05.30.

6. Ismertesse a hosszú, közép- és rövidtávú ütemezés feladatát! Egy folyamat állapotátmeneti diagramján jelölje be azokat az átmeneteket, amelyek a fenti ütemezéseket jelentik!

lásd kicsit fentebb.

-- szzs - 2005.11.13.

7. Milyen szempontok alapján történhet a folyamatok hosszú távú ütemezése?

Az elvégzésre váró munkák közül a választás szempontja, hogy a CPU-intenzív és az I/O-intenzív jobok aránya optimális legyen.

8. Ismertesse, hogy az operációs rendszer megszakítás kiszolgálása során milyen tevékenységeket hajt végre! Hogyan jelentkezik a megszakítások kiszolgálásánál a preemptív és nem preemptív ütemezés különbözősége?

Megszakítás esetén a CPU felfüggeszti az éppen futó tevékenységét, és adott helyre adja a vezérlést. A megszakításkezelés logikai lépései szerint az így elindított megszakításkezelő program szükség esetén elmenti a folyamat környezetét majd a megszakítás okának megfelelő rutin fut. Befejeződése után visszaadja a vezérlést a korábban futott folyamatnak.

-- SoTi - 2005.05.02.


vissza: OpRe / OpreVazlatFolyamatkezeles