Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

Kempelen Farkas Hallgatói Információs Központ

Az I/O megvalósítása

Az I/O megvalósítása

  • Programozott I/O

    • – a processzor I/O utasítást ad ki egy processzus nevében

    • – a művelet befejeződéséig a processzus várakozó státuszba kerül, majd végrehajtása folyatódik (wait loop)

  • Megszakításvezérelt I/O

    • – a processzor I/O utasítást ad ki egy processzus számára

    • – a processzor folytatja a rá következő utasítások végrehajtását (ha az I/O nem szükséges a folytatáshoz, ha igen, akkor egy másik processzus kerül végrehajtásra)

    • – az I/O egység az I/O művelet befejezésekor egy megszakítást küld a processzornak

  • Közvetlen memóriahozzáférés (DMA)

    • – a DMA egység vezérli az I/O eszköz és főmemória közötti adattranszfert

    • – a processzor a DMA egységnek küld egy adatblokkra vonatkozó adatmozgatási kérelmet, mely csak az egész blokk transzferje után küld megszakítást a processzornak

Az I/O szolgáltatás fejlődése

  • A processzor közvetlenül vezérli a perifériákat

  • Kontroller vagy I/O egység hozzáadása

    • – a processzor megszakítás nélküli programozott I/O–ot használ

    • – a processzornak nem szükséges kezelnie a külső eszközök részleteit

  • Kontroller vagy I/O egység megszakítással

    • – a processzor nem tölti várakozással az időt amíg egy I/O művelet befejeződik

  • Közvetlen memóriahozzáférés (Direct Memory Access – DMA)

    • – adatblokkok mozgatása a memóriába a processzor bevonása nélkül

    • – a processzor csak a művelet elején és végén van bevonva

  • I/O egység, mint különálló processzor

  • I/O processzor

    • – I/O egységnek saját helyi memóriája van

Közvetlen memóriahozzáférés (DMA)

  • A rendszerbuszon való adatmozgatáshoz ún. cikluslopást (Cycle stealing) hajt végre a DMA egység, ilyenkor a processzor működése ideiglenesen felfüggesztődik, a CPU szünetet tart egy buszciklus erejéig

  • A cikluslopás miatt a CPU működése lassabb

  • A szükséges buszciklusok csökkentését lehet elérni a DMA és I/O modulok egyesítésével (így köztük nincs rendszerbusz)

  • Továbblépés: I/O busz használata az I/O modulok és DMA modul között (vö. DMA blokkdiagram ábra)

  • A rendszer irányítását átveszi a CPU-tól, hogy adatot mozgasson a memóriába illetve memóriából a rendszerbuszon keresztül

I/O kivitelezés

  • Hatékonyság

    • – a legtöbb I/O eszköz a főmemóriához és CPU-hoz képest nagyon lassú

    • – multiprogramozás használatával lehetővé válik, hogy processzusok I/O-ra várakozzanak, miközben más processzusok végrehajtás alatt állnak

    • – ma már léteznek olyan gyors perifériák, amelyek kiszolgálása jelentős teljesítmény-optimalizálást igényel

    • – a csereszolgáltatás (swapping) lehetővá teszi, hogy további, készen álló, várakozó processzusok a processzornak munkát adjanak

  • Általánosság

    • – az I/O eszközök sokszínűségének ellenére egységes periféria-kezelési megoldás szükséges

    • – az eszközök I/O működésének részleteit alacsony szintű rutinokkal kell eltakarni, hogy a processzusok számára már csak általános műveletek maradjanak: olvasás, írás, megnyitás, bezárás, felfüggesztés, feloldás, stb..

    • – ezt az operációs rendszer szintjén kell megtenni