Verés (informatika) - Thrashing (computer science)

A számítástechnika , cséplés akkor jelentkezik, amikor a számítógép virtuális memória erőforrások indokolatlanul, ami állandó a lapozás és laphibák , gátolja a legtöbb alkalmazás szintű feldolgozás. Ez a számítógép teljesítményének romlásához vagy összeomlásához vezet. A helyzet a végtelenségig tarthat, amíg vagy a felhasználó bezár néhány futó alkalmazást, vagy az aktív folyamatok további virtuális memória erőforrásokat nem szabadítanak fel.

Az inicializálás befejezése után a legtöbb program a program által igényelt teljes memóriához képest kis számú kód- és adatoldalon működik. Az oldalak leggyakrabban használt nevezik dolgozik készlet .

Ha a munkakészlet a rendszer összes oldalszámának kis százaléka, a virtuális memóriarendszerek a leghatékonyabban működnek, és jelentéktelen számítástechnikát fordítanak az oldalhibák megoldására. Amint a munkakészlet növekszik, az oldalhibák megoldása addig kezelhető, amíg a növekedés el nem éri a kritikus pontot. Ezután a hibák drámaian megnövekednek, és a megoldásukra fordított idő felülírja a program számításával töltött időt. Ezt az állapotot ütésnek nevezik. A verés egy olyan programon történik, amely hatalmas adatstruktúrákkal működik, mivel nagy munkakészlete folyamatos oldalhibákat okoz, amelyek drasztikusan lelassítják a rendszert. Az oldalhibák kielégítéséhez szükség lehet olyan oldalak felszabadítására, amelyeket hamarosan újra kell olvasni a lemezről.

A kifejezést különböző hasonló jelenségekre is használják , különösen a memóriahierarchia más szintjei közötti mozgásra , ahol egy folyamat lassan halad, mert jelentős időt töltenek az erőforrások megszerzésével.

A "verés" a virtuális memóriarendszerektől eltérő kontextusokban is használatos; például a számítástechnikai gyorsítótárral kapcsolatos problémák vagy a buta ablak szindróma leírása a hálózatépítésben.

Áttekintés

A virtuális memória úgy működik, hogy a másodlagos tároló egy részét , például a számítógép merevlemezét a gyorsítótár -hierarchia további rétegeként kezeli . A virtuális memória figyelemre méltó, mivel lehetővé teszi a folyamatok számára, hogy több memóriát használjanak fel, mint amennyi fizikailag jelen van a fő memóriában, és lehetővé teszi a virtuális gépek használatát . Operációs rendszerek támogatása a virtuális memória hozzárendelése dolgoz virtuális címtartomány és mindegyik eljárás vonatkozik címeket annak végrehajtása keretében egy úgynevezett virtuális címet. Annak érdekében, hogy hozzáférjen az adatokhoz, például a kódhoz vagy a változókhoz ezen a címen, a folyamatnak le kell fordítania a címet fizikai címre egy virtuális címfordítás néven ismert folyamatban . Valójában a fizikai főmemória a virtuális memória gyorsítótárává válik, amelyet általában a memóriaoldalakon lévő lemezen tárolnak .

A programok az operációs rendszer igényei szerint meghatározott számú oldalt rendelnek hozzá . Aktív memóriaoldalak vannak a RAM -ban és a lemezen. Az inaktív oldalak eltávolításra kerülnek a gyorsítótárból, és a lemezre íródnak, amikor a fő memória megtelik.

Ha a folyamatok során mind a központi memória és a szükséges további memória oldalak, a lépcsőzetes súlyos gyorsítótárhibákat néven laphiba lép fel, gyakran vezet észrevehető lag az operációs rendszer érzékenységet . Ezt a folyamatot a hiábavaló, ismétlődő oldalcserével együtt "ütésnek" nevezik. Ez gyakran magas, kifutó CPU -kihasználtsághoz vezet, amely leállíthatja a rendszert. A modern számítógépekben ütközés fordulhat elő a személyhívó rendszerben (ha nincs elegendő fizikai memória, vagy a lemezhozzáférési idő túl hosszú), vagy az I/O kommunikációs alrendszerben (különösen a belső buszhozzáféréssel kapcsolatos konfliktusokban ) stb.

A konfigurációtól és az alkalmazott algoritmusoktól függően a rendszer teljesítménye és késleltetése több nagyságrenddel csökkenhet . A verés olyan állapot, amelyben a CPU kevesebb „termelékeny” munkát végez, és többet „cserél”. Az általános memóriahozzáférési idő növekedhet, mivel a magasabb szintű memória csak olyan gyors, mint a memóriahierarchia következő alacsonyabb szintje. A CPU annyira el van foglalva az oldalak cseréjével, hogy nem tud reagálni a felhasználók programjaira, és a szükséges mértékben megszakítja. Az ütés akkor fordul elő, ha túl sok oldal van a memóriában, és minden oldal egy másik oldalra utal. Az igazi memória kapacitása lerövidül, hogy minden oldal benne legyen, ezért „virtuális memóriát” használ. Amikor a végrehajtás során minden oldal azt az oldalt igényli, amely jelenleg nincs a valós memóriában (RAM), néhány oldalt a virtuális memóriába helyez, és beállítja a szükséges oldalt a RAM -on. Ha a CPU túl elfoglalt ezzel a feladattal, ütés lép fel.

Okoz

A virtuális memóriarendszerekben az ütközést olyan programok vagy munkaterhelések okozhatják, amelyek nem rendelkeznek elegendő hivatkozási hellyel : ha egy program munkakészlete vagy munkaterhelése nem képes hatékonyan tárolni a fizikai memóriában, akkor állandó adatcsere, azaz ütés léphet fel. A kifejezést először a szalagos operációs rendszer napjaiban használták, hogy leírják a hangokat, amelyeket a szalagok adtak, amikor az adatokat gyorsan beírták és leolvasták. Az IBM System/370 sorozatú nagyszámítógép ilyen legrosszabb forgatókönyve lehet egy végrehajtási utasítás, amely átlépi az oldalhatárt, és amely maga az áthelyezési utasításra mutat, és maga is átlépi az oldalhatárt, maga pedig egy forrásra és egy célra mutat oldal határai. Az ebben az utasításban szereplő oldalak száma összesen nyolc, és mind a nyolc oldalnak egyszerre kell jelen lennie a memóriában. Ha a nyolc oldal bármelyikét nem lehet felcserélni (például, hogy helyet biztosítson a többi oldalnak), az utasítás hibás lesz, és minden újraindítási kísérlet sikertelen lesz mindaddig, amíg mind a nyolc oldalt fel nem lehet cserélni.

Egyéb felhasználások

A verést leginkább a memória és a tárolás összefüggésében ismerjük, de hasonló jelenségek más erőforrásoknál is előfordulnak , többek között:

Gyorsítótár -ütés

Ahol a fő memória olyan mintában érhető el, amely több fő memóriahelyhez vezet, amelyek versengnek ugyanazokért a gyorsítótár -vonalakért, ami túlzott kihagyásokat eredményez . Ez a leginkább problémás azoknál a gyorsítótáraknál, amelyek alacsony asszociativitással rendelkeznek .

TLB cséplés

Ahol a fordítási felületpuffer (TLB), amely gyorsítótárként működik a virtuális címeket fizikai címekké fordító memóriakezelő egység (MMU) számára, túl kicsi a működő oldalakhoz. A TLB ütközés akkor is előfordulhat, ha az utasítás gyorsítótár vagy az adatgyorsítótár ütközése nem történik meg, mivel ezek különböző méretűek. Az utasításokat és az adatokat kis tömbökben ( gyorsítótárasorokban ) tárolják gyorsítótárban , nem egész oldalakon, de a címkeresés az oldal szintjén történik. Így még akkor is, ha a kód- és adatmunka -készletek illeszkednek a gyorsítótárba, ha a munkakészletek sok oldalon töredezettek , a virtuális cím -munkakészlet nem fér bele a TLB -be, ami TLB -ütközést okoz.

Halomverés

A gyakori szemétgyűjtést , mivel nem sikerült kiosztani a memóriát egy objektumnak, az elégtelen szabad memória vagy a memória töredezettsége miatt nem elegendő összefüggő szabad memória miatt, halomütésnek nevezik.

Folyamat leverése

Hasonló jelenség figyelhető meg a folyamatok esetében is: amikor a folyamat munkakészletét nem lehet ütemezni, tehát nem minden interaktív folyamat fut egyidejűleg, akkor "ütközést" tapasztalnak az ismételt ütemezés és ütemezés miatt, csak lassan haladnak.

Lásd még

Hivatkozások