Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

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

I/O pufferelés

I/O pufferelés

  • A pufferelés okai

    • – a processzusoknak meg kell várniuk az I/O befejeződését ahhoz, hogy folytatódjanak

    • – bizonyos lapoknak a főmemóriában kell maradni az I/O alatt

  • Blokkos eszközök

    • – az információ adott méretű blokkban van tárolva

    • – az egyes blokkok írhatók, olvashatók, az összes többi blokktól függetlenül

    • – egy blokk egyszerre kerül átvitelre

    • – lemezeknél és szalagoknál használatos

  • Karakteres eszközök

    • – információ átvitele, mint bájtok folyama, nincs blokkszerkezet

    • – terminálokhoz, printerekhez, kommunikációs portokhoz, egérhez, és a másodlagos tárakon kivüli eszközökhöz használatos I/O pufferelés

Egyszeres pufferelés

  • az operációs rendszer a főmemóriában egy puffert rendel az I/O kéréshez

  • blokkos eszközök esetében:

    • – lépései:

      • – a bevitel egy pufferba történik

      • – az adatblokk a pufferból akkor kerül a „felhasználóhoz”, amikor szükség van rá

      • – ezután egy másik/következő blokk pufferba mozgatása következik (read ahead)

    • – a felhasználói processzus feldolgoz egy blokk adatot, míg a következő blokk beolvasásra kerül

    • – a swapping megoldható, mert az input adat az operációs rendszer saját területére (pufferébe) kerül, nem pedig a felhasználói program pufferébe

    • – az operációs rendszer nyilvántartja a rendszer pufferek felhasználói folyamatokhoz történő hozzárendelését

  • karakteres eszközök esetében:

    • – egyszerre egy sor használata

    • – felhasználói adatbevitel: egyszerre egy sor, kocsi-vissza (carriage return ~ CR) jellel a sor végén

    • – a terminálra való kivitel: egyszerre egy sor

Dupla és körkörös pufferelés

  • dupla pufferelés:

    • két puffert használunk, az egyiket az operációs rendszer, a másikat a felhasználói processzus

    • a processzus adatot írhat illetve olvashat az egyikbe(ből), míg az operációs rendszer üríti és tölti a másikat

  • körkörös pufferelés:

    • n darab puffer hozzárendelése egy processzushoz

    • minden egyes puffer egy körkörös puffer egyik egysége

    • a leggyorsabb,

    • akkor használatos, amikor az I/O műveleteknek a processzussal lépést kell tartani