A számítástechnikában, thrash a virtuális memória (vagy lapozó) rendszer gyenge teljesítménye, amikor ugyanazokat az oldalakat ismételten betöltik a memóriában tartásukhoz szükséges fő memória hiánya miatt. A konfigurációtól és az algoritmustól függően a rendszer tényleges teljesítménye több nagyságrenddel is csökkenhet.
A számítástechnikában, csépelni akkor fordul elő, amikor a számítógép virtuális memória erőforrásait túlhasználják, ami állandó lapozási állapothoz és laphibákhoz vezet, ami gátolja a legtöbb alkalmazásszintű feldolgozást. Ez a számítógép teljesítményének romlását vagy összeomlását okozza. A helyzet korlátlanul folytatódhat, amíg a felhasználó be nem zár néhány futó alkalmazást, vagy az aktív folyamatok további virtuális memória erőforrásokat szabadítanak fel.
Ahhoz, hogy tisztábban tudjunk a csépelésről, először is tudnunk kell az oldalhibáról és a cseréről.
Dobbanás az, amikor az oldalhiba és a csere nagyon gyakran és nagyobb arányban történik, és ekkor az operációs rendszernek több időt kell töltenie az oldalak cseréjével. Az operációs rendszerben ezt az állapotot ütésnek nevezik. Az ütések miatt a CPU kihasználtsága csökkenni fog, vagy elhanyagolható lesz.
Az alapvető koncepció az, hogy ha egy folyamathoz túl kevés keretet osztanak ki, akkor túl sok és túl gyakori oldalhiba lesz. Ennek eredményeként a CPU nem végez értékes munkát, és a CPU kihasználtsága drasztikusan csökkenne.
A hosszú távú ütemező ezután megpróbálja javítani a CPU kihasználtságát azzal, hogy néhány további folyamatot betölt a memóriába, ezáltal növelve a többprogramozás mértékét. Sajnos ez a CPU-kihasználtság további csökkenését eredményezné, ami a magasabb oldalhibák láncreakcióját váltja ki, amit a többprogramozás mértékének növekedése követ, az úgynevezett thrashing.
Algoritmusok Thrashing során
Amikor a törlés elindul, az operációs rendszer megpróbálja alkalmazni a globális oldalcsere algoritmust vagy a helyi oldalcsere algoritmust.
1. Globális oldalcsere
Mivel a globális oldalcsere bármilyen oldalt hozhat létre, minden alkalommal megpróbál több oldalt hozni, ha ütést észlel. De valójában az fog történni, hogy egyetlen folyamat sem kap elég képkockát, és ennek eredményeként a verés egyre jobban nő. Ezért a globális oldalcsere-algoritmus nem megfelelő, ha csépeltetés történik.
2. Helyi oldal csere
A globális oldalcsere algoritmussal ellentétben a helyi oldalcsere olyan oldalakat választ ki, amelyek csak az adott folyamathoz tartoznak. Így van esély a verés csökkentésére. De bebizonyosodott, hogy sok hátránya van, ha helyi oldalcserét alkalmazunk. Ezért a helyi oldalcsere csak egy alternatíva a globális oldalcserével szemben, ha összeütközik.
Az ütés okai
A programok vagy a munkaterhelések ütést okozhatnak, ami súlyos teljesítményproblémákat okozhat, például:
- Ha a CPU kihasználtsága túl alacsony, akkor egy új rendszer bevezetésével növeljük a multiprogramozás mértékét. Globális oldalcsere algoritmust használnak. A CPU ütemező látja a CPU kihasználtságának csökkenését és növeli a többprogramozás mértékét.
- A CPU kihasználtságát a többprogramozás mértéke függvényében ábrázoljuk.
- A többprogramozás mértékének növekedésével a CPU kihasználtsága is növekszik.
- Ha tovább növeljük a többprogramozás mértékét, beindul a csapkodás, és a CPU kihasználtsága meredeken csökken.
- Tehát ezen a ponton, hogy növeljük a CPU kihasználtságát, és megállítsuk a vergődést, csökkentenünk kell a többprogramozás mértékét.
Hogyan lehet kiküszöbölni a verést
A feltörésnek van néhány negatív hatása a merevlemez állapotára és a rendszer teljesítményére. Ezért meg kell tenni bizonyos intézkedéseket annak elkerülése érdekében. A csapkodás problémájának megoldásához az alábbi módszereket kell használni, például:
Technikák a csapkodás megelőzésére
A helyi oldalcsere jobb, mint a globális oldalcsere, de a helyi oldalcsere számos hátránnyal jár, ezért néha nem hasznos. Ezért az alábbiakban felsorolunk néhány egyéb technikát, amelyeket a verés kezelésére használnak:
1. Helységmodell
A helység aktívan együtt használt oldalak halmaza. A lokalitásmodell kimondja, hogy a folyamat végrehajtása során egyik helyről a másikra mozog. Így egy program általában több különböző helységből áll, amelyek átfedhetik egymást.
Például, amikor egy függvényt hívunk, egy új helyet határoz meg, ahol a memória hivatkozások történnek a függvényhívási utasításokra, a helyi és globális változókra stb. Hasonlóképpen, ha a függvényből kilép, a folyamat elhagyja ezt a helyet.
2. Munkakészlet-modell
Ez a modell a Helységmodell fentebb ismertetett koncepcióján alapul.
Az alapelv kimondja, hogy ha elég keretet allokálunk egy folyamathoz ahhoz, hogy a jelenlegi helyhez igazodjon, akkor az csak akkor fog hibásodni, amikor új helyre költözik. De ha a lefoglalt keretek kisebbek, mint az aktuális hely mérete, a folyamat thrash-hez kötött.
E modell szerint az A paraméter alapján a munkakészlet a legutóbbi „A” oldalhivatkozások oldalainak halmaza. Ezért az összes aktívan használt oldal mindig a munkakészlet részét képezi.
hálózati topológia
A munkakészlet pontossága az A paraméter értékétől függ. Ha A túl nagy, akkor a munkakészletek átfedhetik egymást. Másrészt az A kisebb értékek esetén előfordulhat, hogy a helység nem fedi le teljesen.
Ha D a keretek és a WSS teljes keresleteéna munkakészlet mérete az i folyamathoz,
D = ⅀ WSSén
Ha most az „m” a memóriában elérhető képkockák száma, két lehetőség van:
- D>m, azaz a teljes kereslet meghaladja a képkockák számát, akkor thrash lesz, mivel egyes folyamatok nem kapnának elegendő keretet.
- D<=m, then there would be no thrashing.< li> =m,>
Ha van elegendő extra keret, akkor még néhány folyamat betölthető a memóriába. Másrészt, ha a munkakészletek méreteinek összegzése meghaladja a keretek elérhetőségét, akkor a folyamatok egy részét fel kell függeszteni (memóriát ki kell cserélni).
Ez a technika megakadályozza a csorbát, és biztosítja a lehető legmagasabb szintű többprogramozást. Így optimalizálja a CPU kihasználtságát.
3. Oldalhiba gyakorisága
A verés kezelésének közvetlenebb megközelítése az oldalhiba-gyakoriság koncepció.
A csépeléssel járó probléma a magas oldalhiba-arány, és így itt a koncepció az oldalhiba-arány szabályozása.
Ha az oldalhiba aránya túl magas, az azt jelzi, hogy a folyamatnak túl kevés keret van lefoglalva. Éppen ellenkezőleg, az alacsony oldalhiba-arány azt jelzi, hogy a folyamat túl sok kerettel rendelkezik.
A kívánt oldalhiba-arány felső és alsó határa az ábrán látható módon állítható be.
Ha az oldalhiba aránya az alsó határ alá esik, a keretek eltávolíthatók a folyamatból. Hasonlóképpen, ha az oldalhibák aránya meghaladja a felső határt, több képkocka is hozzárendelhető a folyamathoz.
Vagyis a rendszer grafikus állapotát az adott diagramon kialakított téglalap alakú tartományra kell korlátozni.
Ha az oldalhiba-arány magas szabad keretek hiányában, akkor a folyamatok egy része felfüggeszthető, és a hozzájuk rendelt folyamatok átcsoportosíthatók más folyamatokhoz. A felfüggesztett folyamatok később újraindulhatnak.