Felügyelőprogram

A felügyelőprogram (supervisor program, resident monitor,[1] execitive kernel, stb.) olyan rendszerprogram,[2] amely összehangolja számítógép hardver elemeinek működését, szervezi, ellenőrzi a központi egység (CPU) munkáját és irányítja a beviteli/kiviteli (B/K) folyamatokat.

Kialakulása

A korai, elektroncsöves számítógépek nem rendelkeztek felügyelőprogrammal. Amint megjelentek a második generációs (tranzisztoros), sokkal megbízhatóbb számítógépek, felmerült azok hatékony kihasználásának kérdése, a gyors CPU és a lassú perifériák konfliktusának feloldása. Ezek áthidalása vezettek be olyan hardware architektúrális megoldásokat, amelyek lehetővé és szükségessé tette olyan speciális program (rendszerprogram, system program) kialakítását, amely megkönnyíti a számítási és a B/K műveletek szervezett átlapolását, ezzel javítva a számítógép kihasználtságát. A későbbiekben, főleg a harmadik generációs számítógépek elterjedésével, más, nem csak a gép hatékonyságát figyelembe vevő szempontok előtérbe kerülésével, komplexebb rendszerszolgáltatások kerültek megvalósításra, amit összességében operációs rendszernek neveznek, és általában ennek egy belső, nélkülözhetetlen rétegét nevezik csak felügyelőprogramnak, de vannak olyan vélemények is hogy nincs éles határ az operációs rendszer és a felügyelőprogram között.

A felügyelőprogram legfontosabb, mindig hozzáférhető része a rendszermag (kernel), állandóan az operatív tárban van, míg a ritkább, nem időkritikus funkciókat megvalósító programrészek a háttértárolóról töltődnek be szükség esetén (overlay-technika).

A Unix és később a Microsoft Windows operációs rendszerekben, kernel-nek nevezik, a felügyelőprogram funkcióit megvalósító rendszer komponenst.

A felügyelőprogram legfontosabb feladatai

  • a felhasználói program(ok) felügyelete
  • a megszakítások kezelése
  • a be-és kiviteli egységek kiszolgálása
  • a kezelővel (operátor) való kapcsolattartás
  • a számítógépben (központi egység, perifériák) detektált hibák kezelése
  • a felhasználói programok rendszerhívásainak kiszolgálása (API)
  • a felhasználói programok betöltése, indása
  • A filerendszer szolgáltatás (API)

Speciális feladatokat kiszolgáló felügyelőprogramok

Pufferelés, spooling szervezése, amikor az autonóm perifériavezérlők[3] lehetővé teszik azt, hogy a B/K-műveletek a CPU közreműködése nélkül hajtódnak végre, a memóriában elhelyezkedő pufferen keresztül, megszakítás, illetve blokkos átvitel segítségével. Ezt a megoldást, a kis-közepes teljesítményű, mágnesdob ill. diszk nélküli rendszerek alkalmazták (pl. IBM7090, ODRA 1204, stb.). Az ún. spooling technika (simultaneous peripherial operation on-line) segítségével[4] lehetővé válik a lassú (lyukszalag, lyukkártya, sornyomtató, stb.) perifériás és CPU-műveletek teljes szétválasztása, átlapolása úgy, hogy az egyik munka végrehajtásával egyidőben egy másik munka beolvasása és egy harmadik eredményeinek kivitele folyhat, az adatok időleges gyors háttértárlókon való elhelyezésével. Ez a megoldás igen elterjedt és napjainkban is használatos a nyomtatás és egyéb tevékenységek időbeli átlapolására (pl. IBM 360, UNIX line printer demon,[5] MS-DOS, MS-WINDOWS nyomtatási-sorkezelő stb,)

Multiprogramozott rendszerek kezelése . A multiprogramozott (többfeladatos) számítógépen látszólagosan több program fut,[6] ahol egy program addig futhat, amíg az várakozni nem kényszerül egy perifériás művelet befejezésére, ekkor a felügyelőprogram egy másik, futni képes programot választ ki és futtatja. Amint a félbehagyott program várakozási feltétele teljesül, újra felkerül a futtatható folyamatok listájára, és a következő ütemezési alkalommal kiválaszthatja azt futásra. (pl. ICL 190x Computer[7]) Több processzoros rendszer esetén természetesen az ütemezés komplexebb feladat.

Az időosztásos (time-sharing) rendszerek,[8] a multiprogramozott rendszerek speciális változata, ahol közvetlen, interaktív kommunikációt biztosítanak a felhasználó és programja, között. Ezeknél a rendszereknél minden felhasználónak külön beviteli eszköze (terminál, display) van. Itt az ütemezés, más stratégia alapján történik.

Valós idejű rendszerek (real-time monitor) a multiprogramozott rendszerek speciális változata, ahol a rendszer viselkedésében az idő (válaszidő) a kritikus tényező. Ezek a valós idejű rendszerek (gyakran beágyazott rendszerek,[9] úgy nevezett inger-válasz típusú rendszerek,[10] amelyek érzékelőkkel figyelik környezetüket és rövid időn belül képesek reagálni a környezeti hatásokra (ingerekre) a beavatkozószervek segítségével. A valósidejű működésének legfontosabb sajátossága a programok (taszkok) dedikált ütemezése. Ilyen rendszerek pl az ipari irányító/felügyelő (folyamatirányitó) rendszerek, vagy a SCADA Supervisory control and data acquisition rendszerek.[11][12][13]

Jegyzetek

Források

  • Donovan, John J., “Systems Programming”, McGraw-Hill, 1972
  • Operációs rendszerek mérnöki megközelítésben, Panem Könyvkiadó 2000
  • Horváth I., Körösi I., Nagy S, Nika E., Telkes Z., Tihanyi K.: Automatizálási lexikon (1986)
  • Operációs rendszerek és fájlkezelés,(Bartal Tamás András,ecdlweb)
  • Kőrösi István – Szabó Zoltán: A BOSS 7.0 operációs rendszer implementálása. (XI. Kerületi Számítástechnikai Napok 1978.)