Thrashing (počítačová věda) - Thrashing (computer science)

Ve vědě o počítačích , mlácení dochází, když v počítači, je virtuální paměti jsou zdroje nadměrně, což vede ke stálému stavu paging a výpadků stránek , inhibuje většinu aplikací zpracování úrovňový. To způsobí zhoršení nebo sbalení výkonu počítače . Situace může pokračovat neomezeně dlouho, dokud uživatel nezavře některé spuštěné aplikace, nebo aktivní procesy neuvolní další prostředky virtuální paměti.

Po dokončení inicializace většina programů pracuje s malým počtem kódových a datových stránek ve srovnání s celkovou pamětí, kterou program vyžaduje. Nejčastěji navštěvované stránky se nazývají pracovní sada .

Když je pracovní sada malým procentem z celkového počtu stránek systému, virtuální paměťové systémy fungují nejefektivněji a na řešení chyb stránek je vynaloženo zanedbatelné množství výpočetní techniky. Jak pracovní sada roste, řešení chyb stránek zůstává zvládnutelné, dokud růst nedosáhne kritického bodu. Pak se chyby dramaticky zvyšují a čas strávený jejich řešením převyšuje čas strávený na počítači, pro který byl program napsán. Tento stav se označuje jako mlácení. Thrashing nastává u programu, který pracuje s obrovskými datovými strukturami, protože jeho velká pracovní sada způsobuje neustálé chyby stránek, které drasticky zpomalují systém. Uspokojivé chyby stránek mohou vyžadovat uvolnění stránek, které bude brzy nutné znovu přečíst z disku.

Termín se také používá pro různé podobné jevy , zejména pro pohyb mezi jinými úrovněmi hierarchie paměti , kde proces postupuje pomalu, protože získávání zdrojů je věnováno značný čas.

„Thrashing“ se používá také v jiných kontextech, než jsou systémy virtuální paměti; například k popisu problémů s mezipamětí při práci na počítači nebo syndromu hloupého okna v síti.

Přehled

Virtuální paměť funguje tak, že část sekundárního úložiště , jako je pevný disk počítače, považuje za další vrstvu hierarchie mezipaměti . Virtuální paměť je pozoruhodná tím, že umožňuje procesům využívat více paměti, než je fyzicky přítomno v hlavní paměti, a že umožňuje virtuální počítače . Operační systémy podporující přiřazování virtuální paměti zpracovávají procesy virtuální adresní prostor a každý proces odkazuje na adresy ve svém kontextu provádění takzvanou virtuální adresou. Aby bylo možné přistupovat k datům, jako je kód nebo proměnné na této adrese, musí proces přeložit adresu na fyzickou adresu v procesu známém jako překlad virtuální adresy . Ve skutečnosti se z fyzické hlavní paměti stane mezipaměť pro virtuální paměť, která je obecně uložena na disku na paměťových stránkách .

Programům je přidělen určitý počet stránek podle potřeby operačního systému . Stránky s aktivní pamětí existují v RAM i na disku. Neaktivní stránky jsou odstraněny z mezipaměti a zapsány na disk, když se zaplní hlavní paměť.

Jsou-li procesy využívající všechny hlavní paměti a je třeba dalších paměťových stránek, kaskádu závažných vyrovnávací paměti mine známých jako strana chyb dojde, což často vede k citelnému zpožděním v operačním systému reagovat . Tento proces spolu s marným, opakujícím se prohozením stránky, který se vyskytuje, se nazývá „mlácení“. To často vede k vysokému, utíkajícímu využití CPU, které může systém zastavit. V moderních počítačích může dojít k vymlácení ve stránkovacím systému (pokud není k dispozici dostatečná fyzická paměť nebo je doba přístupu na disk příliš dlouhá) nebo v komunikačním subsystému I/O (zejména při konfliktech ohledně přístupu k interní sběrnici ) atd.

V závislosti na konfiguraci a použitých algoritmech se může propustnost a latence systému degradovat o několik řádů . Thrashing je stav, ve kterém CPU vykonává „produktivní“ práci méně a „střídání“ více. Celková doba přístupu k paměti se může zvýšit, protože paměť vyšší úrovně je pouze tak rychlá jako další nižší úroveň v hierarchii paměti. CPU je zaneprázdněn výměnou stránek natolik, že nemůže reagovat na programy uživatelů a přerušuje tolik, kolik je požadováno. K vyřazení dochází, když je v paměti příliš mnoho stránek a každá stránka odkazuje na jinou stránku. Skutečná paměť zkracuje kapacitu tak, aby v ní byly všechny stránky, takže používá „virtuální paměť“. Když každá spuštěná stránka vyžaduje stránku, která aktuálně není ve skutečné paměti (RAM), umístí některé stránky do virtuální paměti a upraví požadovanou stránku v paměti RAM. Pokud je CPU při provádění tohoto úkolu příliš zaneprázdněn, dojde k mlácení.

Příčiny

Ve virtuálních paměťových systémech může být mlácení způsobeno programy nebo pracovními zátěžemi, které představují nedostatečnou referenční lokalitu : pokud pracovní sadu programu nebo pracovní zátěž nelze efektivně uchovávat ve fyzické paměti, pak může dojít k neustálému prohození dat, tj. Mlácení. Tento termín byl poprvé použit během dnů páskového operačního systému k popisu zvuku, který pásky vydávaly při rychlém zápisu a čtení dat. Nejhorším scénářem tohoto druhu na sálovém počítači řady IBM System/370 by mohla být instrukce pro spuštění překračující hranici stránky, která ukazuje na samotnou instrukci přesunu, která také překračuje hranici stránky, přičemž sama ukazuje na zdroj a cíl, který každý kříží hranice stránky. Celkový počet stránek takto zahrnutých v této konkrétní instrukci je osm a všech osm stránek musí být současně přítomno v paměti. Pokud některou z osmi stránek nelze prohodit (například aby se uvolnilo místo pro kteroukoli další stránku), dojde k chybě instrukce a každý pokus o její restart selže, dokud nebude možné vyměnit všech osm stránek.

Jiné použití

Thrashing je nejlépe známý v kontextu paměti a úložiště, ale analogické jevy se vyskytují u jiných zdrojů , včetně:

Vyrovnávací paměť mlátí

Kde je k hlavní paměti přistupováno vzorem, který vede k tomu, že více hlavních paměťových míst soutěží o stejné řádky mezipaměti, což má za následek nadměrné vynechání mezipaměti . To je nejvíce problematické pro mezipaměti, které mají nízkou asociativitu .

Mlácení TLB

Tam, kde překladová vyrovnávací paměť Lookaside (TLB) fungující jako mezipaměť pro jednotku správy paměti (MMU), která překládá virtuální adresy na fyzické adresy, je pro pracovní sadu stránek příliš malá. Vymazání TLB může nastat, i když nedochází k vyprazdňování mezipaměti instrukcí nebo mezipaměti dat, protože jsou ukládány do mezipaměti v různých velikostech. Pokyny a data jsou ukládána do mezipaměti v malých blocích ( řádky mezipaměti ), nikoli celé stránky, ale vyhledávání adres se provádí na úrovni stránky. I když se tedy pracovní sady pro kód a data vejdou do mezipaměti, pokud jsou pracovní sady roztříštěné na mnoho stránek, pracovní sada pro virtuální adresu se nemusí vejít do TLB, což způsobí vyřazení TLB.

Mlácení haldy

Časté shromažďování odpadků v důsledku selhání alokace paměti pro objekt, kvůli nedostatečné volné paměti nebo nedostatečné souvislé volné paměti kvůli fragmentaci paměti se označuje jako hromadné mlácení.

Proces mlácení

Podobný fenomén se objevuje pro procesy: když je pracovní sada procesu nelze coscheduled - takže ne všechny interagující procesy naplánováno spuštění ve stejnou dobu - prožívají „procesní nakládačku“ kvůli tomu, že opakovaně plánované a neplánované, postupuje jen pomalu.

Viz také

Reference