5. Előadás

Lemez elérés fizikai jellemzői

  • Forgási sebesség (ma tipikusan 5400-15000/perc)
  • Fej mozgási sebesség
  • Az írás olvasás ütemezés feladata a megfelelő kiszolgálási sorrend meghatározása.
    • Válaszidő csökkentése
    • Sávszél növelése

I/O műveletek

  • Alacsonyszintű hívás során az alábbi adatok szükségesek:
    • Beolvasandó (írandó) blokkok sorszáma
    • Memóriaterület címe, ahova be kell olvasni
    • Bájtok száma

Ütemezés

  • Alacsonyszintű (kernel) feladat paraméterek
    • Kérés típusa (írás-olvasás)
    • A blokk kezdőcíme (LBA cím vagy sáv, szektor, fej száma)
    • DMA memoriacím
    • Mozgatandó bájtok száma
  • Több folyamat is használná a lemezt?
    • Ütemező feladata: Kit szolgáljunk ki elősször?
    • Fejmozgás figyelembevétele

Sorrendi ütemezés (FCFS)

  • First Come - First Serve
  • Ez a legegyszerűbb stratégia
  • Biztosan minden kérés kiszolgálásra kerül
  • Nem törődik a fej aktuális helyzetével
  • Nem igazán hatékony
  • Kicsi az sávszél
  • Átlagos válaszidő, kis szórással

SSTF ütemezés

  • Shortest Seek Time First
  • A legkisebb fejmozgást részesíto előnyben
  • Átlagos várakozási idő kicsi, de szórása nagy
  • Átviteli sávszél nagy
  • Fennáll a kiéheztetés veszélye

Pásztázó ütemezés

  • SCAN módszer
  • A fej állandó mozgásban van, és a mozgás útjába eső kéréseket kielégíti
  • A fej mozgás megfordul, ha a mozgás irányában nincs kérés, vagy a fej szélső pozíciót ért el
  • Rossz ütemben érkező kérések kiszolgálása csak oda-vissza mozgás után kerül kiszolgálásra.
    • Várakozási idő közepes, szórás nagy
  • Középső sávok elérés szórása kicsi

Egyirányú pásztázás

  • Circular SCAN, C-SCAN
  • A SCAN javítása, írás-olvasás, csak a fej egyik irányú mozgásakor történik.
  • Gyorsabb fejmozgás
  • Nagyobb sávszélesség
  • Az átlagos várakozási idp hasonló, mint a SCAN esetén, viszont a szórás kicsi

Ütemezés javítások

  • FCFS módszernél, ha az aktuális sorrendi kérés kiszolgálás helyén van egy másik kérés blokkja, akkor szolgáljuk ki azt is.

  • Egy folyamat adatai jellemzően egymás után vannak, így egy kérés kiszolgálásánál várva egy kicsit, a folyamat az adatainak további részét is kéri a folyamat.

    • Előlegező ütemezésnek is nevezzük
  • A lemez közepe általában hatékonyan elérhető

  • A DMA maga is memória

  • Memória buffer használata:

    • Kettős körszerű használat
    • Olvasás: Ütemező tölti, felhasználói folyamat üríti
    • Írás: Felhasználó folyamat tölti, ütemező üríti
  • Disc cache

    • Előre dolgozik az ütemező, a memóriába tölti a kért adatok "környéki" lemezterületet is
    • Operációs rendszernek jelent plusz feladatot

SLE Block device ütemezés

  • CFQ - Completely Fair Queuing
    • Minden folyamat saját I/O sort kap.
    • Ezen sorok között azonosan próbálja az ütemező elosztani a sávszélességet
    • Ez az alapértelmezett ütemező
  • Létezik még:
    • NOOP: Egy sor van, amit a (RAID) vezérlők gyorsan teljesítenek
    • Deadline: egy kéréshez határidő tartozik, két sort használ. Egy blokksorrend alapján készített sort (SSTF) és egy határidő alapján készített sort. Alapból a blokksorrend a lényegesm de ha határidő van, akkor az kerül sorra

Ütemezés választás

  • A fenti algoritmusok csak a fejmozgás idejét vették figyelembe, az elfordulást nem.
  • A sorrendi ütemezés tipikusan egy felhasználós rendszernél használt
  • SSTF, kiéhezés veszélye nagy
  • C-SCAN, nagy IO átvitel, nincs kiéheztetés
  • Beépített ütemező: Pl.: SCSI vezérlők

Ütemezés kulcsfeladata

  • Minél gyorsabban kiszolgálni a kéréseket.
  • Ezt mi is segíthetjük:
    • Összetartozó adatok együtt legyenek
    • Sávszélesség a lemez közepén a legnagyobb
    • Leggyorsabban a lemez közepét érhetjük el
    • Lemez gyorsító tár a memóriában
    • Adattömörítés

Lemezek megbízhatósága

  • Az adatok redundás tárolása, hogy lemezsérülés esetén se legyen adatvesztés
  • Operációs rendszer szolgáltatás
    • Dinamikus kötet: több lemezre helyez egy logikai meghajtót, méret összeadódik
    • Tükrözés: két lemezre helyez egy meghajtót, mérete az egyik lemez mérete lesz
  • Hardware szolgáltatás:
    • Intelligens meghajtó szolgáltatás
    • A SCSI eszköz világában jelent meg elősször (RAID)

RAID

  • Ha az oprendszer nyújtja, gyakran SoftRaid-nek nevezik.
  • Több lemezt fog össze, és egy logikai egységként látja az operációs rendszer
  • Több "összefogási" elv létezik: RAID 0-6

RAID 0 (striping)

  • Nem redundáns
  • Több lemez logikai összefűzésével egy meghajtót kapunk
  • A lemezkapacitások összege adja az új meghajtó kapacitását
  • A logikai meghajtó blokkjait szétrakja a lemezekre (striping), ezáltal egy fájl írása több lemezre kerül.
  • Gyorsabb I/O műveletek
  • Nincs meghibásodás elleni védelem

RAID 1 (mirroring)

  • Két független lemezből készít egy logikai egységet
  • Minden adatot párhuzamosan kiír mindkét lemezre
  • Tárolókapacitás felére csökken
  • Drága megoldás
  • Jelentős hibatűrő képesség

RAID 1+0, RAID 0+1

  • RAID 1+0: Tükrös lemezekből vonunk össze többet
  • RAID 0+1: RAID 0 összevont lemezekcsoportokból vegyünk kettőt
  • A vezérlők gyakran nyújtják egyiket, másikat, mivel így is, úgy is tükrözés van, azaz drága, így ritkán használt.

RAID 2,3,4

  • RAID 2: Adatbitek mellett hibajavító biteket is tartalmaz, pl.: 4 lemezhez 3 javító lemez
  • RAID 3: Elág egy plusz paritáslemez, n+1 lemez
  • RAID 4: RAID 0 kiegészítése paritáslemezekkel
  • Ma ezen megoldások nem gyakran használatosak

RAID 5

  • Nincs paritáslemez, ez el van osztva a tömb összes elemére
  • Adatok is elosztva ketülnek tárolásra
  • Intenzív vezérlő CPU igény
  • Redundáns tárolás, 1 lemez meghibásodása nem okoz adatvesztést
  • N lemez RAID 5 tömbben, N-1 lemez méretű logikai meghajtót ad

RAID 6

  • A RAID 5 paritásblokkhoz, hibajavító kód kerül tárolásra (+1 lemez)
  • Még intenzívebb CPU igény
  • Két lemez egyidejű kiesése sem okoz adatvesztést
  • N lemez RAID 6-os tömbjének kapacitása N-2 lemez kapacitásával azonos
  • Elvileg általánosítható módszer X lemez kiesésére

Források