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