V informatice, mlátit je slabý výkon virtuální paměti (nebo stránkovacího) systému, když jsou stejné stránky načítány opakovaně kvůli nedostatku hlavní paměti, která by je udržela v paměti. V závislosti na konfiguraci a algoritmu se může skutečná propustnost systému snížit o několik řádů.
V informatice, mlácení dochází, když jsou prostředky virtuální paměti počítače nadměrně využívány, což vede k neustálému stavu stránkování a chybám stránek, což brání zpracování většiny na aplikační úrovni. Způsobuje snížení nebo kolaps výkonu počítače. Situace může pokračovat donekonečna, dokud uživatel neuzavře některé spuštěné aplikace nebo aktivní procesy neuvolní další zdroje virtuální paměti.
Abychom o thrashingu věděli jasněji, musíme nejprve vědět o chybách stránek a záměnách.
Mlácení nastane, když k chybám a záměnám stránky dochází velmi často s vyšší rychlostí a operační systém pak musí trávit více času výměnou těchto stránek. Tento stav v operačním systému je známý jako mlácení. Kvůli thrashingu se využití CPU sníží nebo bude zanedbatelné.
Základní koncept spočívá v tom, že pokud je procesu přiděleno příliš málo snímků, bude docházet k příliš mnoha a příliš častým chybám stránek. V důsledku toho by CPU nevykonalo žádnou hodnotnou práci a využití CPU by drasticky kleslo.
Dlouhodobý plánovač by se pak pokusil vylepšit využití CPU načtením dalších procesů do paměti, čímž by se zvýšil stupeň multiprogramování. Bohužel by to vedlo k dalšímu snížení využití CPU, což by spustilo řetězovou reakci vyšších chyb stránek následovanou zvýšením stupně multiprogramování, nazývaného thrashing.
Algoritmy během Thrashingu
Kdykoli se spustí thrashing, operační systém se pokusí použít buď globální algoritmus nahrazení stránky, nebo lokální algoritmus nahrazení stránky.
1. Globální nahrazení stránky
Vzhledem k tomu, že globální nahrazení stránky může přinést libovolnou stránku, pokusí se přivést další stránky, kdykoli je zjištěno mlácení. Co se ale ve skutečnosti stane, je, že žádný proces nezíská dostatek snímků a v důsledku toho se bude mlátit více a více. Globální algoritmus nahrazení stránky proto není vhodný, když dojde k thrashingu.
2. Místní výměna stránky
Na rozdíl od globálního algoritmu náhrady stránky vybere místní náhrada stránky, které patří pouze do tohoto procesu. Je zde tedy šance omezit mlácení. Je ale dokázáno, že pokud použijeme lokální náhradu stránky, existuje mnoho nevýhod. Proto je místní nahrazení stránky pouze alternativou ke globálnímu nahrazení stránky ve scénáři thrashingu.
Příčiny mlácení
Programy nebo pracovní vytížení mohou způsobit výprask, což má za následek vážné problémy s výkonem, jako například:
- Pokud je využití CPU příliš nízké, zvýšíme stupeň multiprogramování zavedením nového systému. Používá se globální algoritmus nahrazení stránky. Plánovač CPU vidí klesající využití CPU a zvyšuje stupeň multiprogramování.
- Využití CPU je vyneseno proti stupni multiprogramování.
- Se zvyšujícím se stupněm multiprogramování se zvyšuje i využití CPU.
- Pokud se stupeň multiprogramování dále zvýší, nastane thrashing a využití CPU prudce klesne.
- Takže v tomto bodě, abychom zvýšili vytížení CPU a přestali mlátit, musíme snížit míru multiprogramování.
Jak odstranit thrashing
Thrashing má některé negativní dopady na zdraví pevného disku a výkon systému. Proto je nutné podniknout některá opatření, jak se tomu vyhnout. Chcete-li vyřešit problém mlácení, zde jsou následující metody, například:
Techniky, jak zabránit mlácení
Nahrazení místní stránky je lepší než nahrazení globální stránky, ale nahrazení místní stránky má mnoho nevýhod, takže někdy není užitečné. Níže jsou proto uvedeny některé další techniky, které se používají k zacházení s mlátením:
1. Model lokality
Lokalita je sada stránek, které se aktivně používají společně. Model lokality říká, že proces se během provádění přesune z jedné lokality do druhé. Program se tedy obecně skládá z několika různých lokalit, které se mohou překrývat.
Například, když je funkce volána, definuje novou lokalitu, kde jsou provedeny odkazy v paměti na instrukce volání funkce, lokální a globální proměnné atd. Podobně, když je funkce ukončena, proces tuto lokalitu opustí.
2. Model pracovní sady
Tento model vychází z výše uvedené koncepce modelu lokality.
Základní princip říká, že pokud procesu přidělíme dostatek rámců, aby se přizpůsobil jeho aktuální lokalitě, dojde k chybě pouze tehdy, když se přesune do nějaké nové lokality. Ale pokud jsou alokované snímky menší než velikost aktuální lokality, proces je nucen zničit.
Podle tohoto modelu, na základě parametru A, je pracovní sada definována jako sada stránek v nejnovějších odkazech na stránky „A“. Všechny aktivně používané stránky by tedy vždy skončily součástí pracovní sady.
řetězec java list
Přesnost pracovní sady je závislá na hodnotě parametru A. Pokud je A příliš velké, mohou se pracovní sady překrývat. Na druhou stranu pro menší hodnoty A nemusí být lokalita pokryta celá.
Pokud D je celková poptávka po rámcích a WSSije velikost pracovní sady pro proces i,
D = ⅀ WSSi
Nyní, pokud 'm' je počet snímků dostupných v paměti, existují dvě možnosti:
- D>m, tj. celková poptávka převyšuje počet snímků, pak dojde k mlácení, protože některé procesy by nezískaly dostatek snímků.
- D<=m, then there would be no thrashing.< li> =m,>
Pokud je dostatek snímků navíc, lze do paměti načíst další procesy. Na druhou stranu, pokud součet velikostí pracovních sad překročí dostupnost rámců, musí být některé procesy pozastaveny (vyměněny z paměti).
Tato technika zabraňuje mlátění a zároveň zajišťuje nejvyšší možný stupeň multiprogramování. Optimalizuje tedy využití CPU.
3. Frekvence chyb stránky
Přímější přístup ke zvládnutí thrashingu je ten, který využívá koncept Page-Fault Frequency.
Problém spojený s thrashingem je vysoká četnost chyb stránky, a proto je zde konceptem řídit četnost chyb stránky.
Pokud je četnost chyb stránky příliš vysoká, znamená to, že procesu je přiděleno příliš málo snímků. Naopak nízká chybovost stránky naznačuje, že proces má příliš mnoho snímků.
Horní a dolní limity lze nastavit pro požadovanou míru chybovosti stránky, jak je znázorněno na obrázku.
Pokud četnost chyb stránky klesne pod spodní limit, lze z procesu odebrat snímky. Podobně, pokud četnost chyb stránek překročí horní limit, lze procesu přidělit více snímků.
Jinými slovy, grafický stav systému by měl být omezen na obdélníkovou oblast vytvořenou v daném diagramu.
Pokud je četnost chyb stránky vysoká bez volných rámců, některé procesy mohou být pozastaveny a přidělené jim mohou být přerozděleny jiným procesům. Pozastavené procesy se mohou později restartovat.