В компютърните науки, траш е лошото представяне на система за виртуална памет (или пейджинг), когато едни и същи страници се зареждат многократно поради липса на основна памет, която да ги запази в паметта. В зависимост от конфигурацията и алгоритъма, действителната производителност на системата може да се влоши с няколко порядъка.
В компютърните науки, тръшкане възниква, когато ресурсите на виртуалната памет на компютъра се използват прекомерно, което води до постоянно състояние на пейджинг и грешки в страниците, възпрепятствайки повечето обработки на ниво приложение. Това води до влошаване или срив на производителността на компютъра. Ситуацията може да продължи безкрайно дълго, докато потребителят затвори някои работещи приложения или активните процеси освободят допълнителни ресурси на виртуалната памет.
За да знаем по-ясно за разбиването, първо, трябва да знаем за грешката на страницата и размяната.
Тръшкане е, когато грешката на страницата и размяната се случват много често с по-висока честота и тогава операционната система трябва да отдели повече време за размяна на тези страници. Това състояние в операционната система е известно като thrashing. Поради разбиване, използването на процесора ще бъде намалено или незначително.
Основната включена концепция е, че ако на даден процес са разпределени твърде малко кадри, тогава ще има твърде много и твърде чести грешки на страницата. В резултат на това процесорът няма да извърши ценна работа и използването на процесора ще намалее драстично.
След това дългосрочният планировчик ще се опита да подобри използването на процесора чрез зареждане на още процеси в паметта, като по този начин ще увеличи степента на мултипрограмиране. За съжаление, това би довело до по-нататъшно намаляване на използването на процесора, предизвиквайки верижна реакция от по-високи грешки на страниците, последвани от увеличаване на степента на мултипрограмиране, наречено разбиване.
Алгоритми по време на Thrashing
Всеки път, когато започне разбиване, операционната система се опитва да приложи алгоритъма за глобална страница или алгоритъма за локална страница.
1. Глобална подмяна на страници
Тъй като глобалната подмяна на страници може да доведе до всяка страница, тя се опитва да доведе повече страници, когато се установи разбиване. Но това, което всъщност ще се случи е, че никой процес не получава достатъчно кадри и в резултат на това разбиването ще се увеличава все повече и повече. Следователно алгоритъмът за глобална замяна на страници не е подходящ, когато се случи разбиване.
2. Замяна на локална страница
За разлика от алгоритъма за глобална замяна на страница, замяната на локална страница ще избере страници, които принадлежат само към този процес. Така че има шанс да се намали разбиването. Но е доказано, че има много недостатъци, ако използваме заместване на локална страница. Следователно подмяната на локална страница е просто алтернатива на глобалната подмяна на страница в сценарий на разбиване.
Причини за разбиване
Програмите или работните натоварвания могат да причинят разбиване и това води до сериозни проблеми с производителността, като например:
- Ако използването на процесора е твърде ниско, ние увеличаваме степента на мултипрограмиране чрез въвеждане на нова система. Използва се глобален алгоритъм за подмяна на страници. Планировчикът на процесора вижда намаляващото използване на процесора и увеличава степента на мултипрограмиране.
- Използването на процесора се нанася спрямо степента на мултипрограмиране.
- С нарастването на степента на мултипрограмиране се увеличава и използването на процесора.
- Ако степента на мултипрограмиране се повиши още повече, настъпва трескане и използването на процесора рязко спада.
- Така че, в този момент, за да увеличим използването на процесора и да спрем разбиването, трябва да намалим степента на мултипрограмиране.
Как да елиминираме трешенето
Трешингът има някои отрицателни въздействия върху здравето на твърдия диск и производителността на системата. Ето защо е необходимо да се предприемат някои действия, за да се избегне това. За да разрешите проблема с разбиването, ето следните методи, като например:
Техники за предотвратяване на разбиване
Замяната на локална страница е по-добра от замяната на глобалната страница, но замяната на локална страница има много недостатъци, така че понякога не е полезна. Ето защо по-долу са някои други техники, които се използват за справяне с разбиване:
1. Модел на местността
Населеното място е набор от страници, които се използват активно заедно. Моделът на местността гласи, че докато процесът се изпълнява, той се премества от едно местоположение в друго. По този начин една програма обикновено се състои от няколко различни местности, които могат да се припокриват.
Например, когато се извика функция, тя дефинира ново местоположение, където се правят препратки към паметта към инструкциите за извикване на функция, локални и глобални променливи и т.н. По същия начин, когато функцията бъде излязла, процесът напуска това местоположение.
2. Модел на работен набор
Този модел се основава на посочената по-горе концепция за модела на местността.
Основният принцип гласи, че ако разпределим достатъчно рамки за даден процес, за да приспособим текущото му местоположение, той ще се повреди само когато се премести в някакво ново местоположение. Но ако разпределените рамки са по-малки от размера на текущото местоположение, процесът непременно ще се разбие.
Съгласно този модел, въз основа на параметър A, работният набор се дефинира като набор от страници в най-новите препратки към страници „A“. Следователно всички активно използвани страници винаги ще бъдат част от работния набор.
байтов масив към низ
Точността на работния набор зависи от стойността на параметър A. Ако A е твърде голям, тогава работните набори може да се припокриват. От друга страна, за по-малки стойности на A, местността може да не бъде покрита изцяло.
Ако D е общото търсене на рамки и WSSiе размерът на работния набор за процес i,
D = ⅀ WSSi
Сега, ако 'm' е броят кадри, налични в паметта, има две възможности:
- D>m, т.е. общото търсене надвишава броя на кадрите, тогава ще настъпи разбиване, тъй като някои процеси няма да получат достатъчно кадри.
- д<=m, then there would be no thrashing.< li> =m,>
Ако има достатъчно допълнителни кадри, тогава в паметта могат да се заредят още процеси. От друга страна, ако сумата от размерите на работния набор надвишава наличността на кадрите, някои от процесите трябва да бъдат спрени (разменени от паметта).
Тази техника предотвратява разбиване заедно с осигуряването на възможно най-висока степен на мултипрограмиране. По този начин той оптимизира използването на процесора.
3. Честота на грешка в страницата
По-директен подход за справяне с разбиването е този, който използва концепцията за честота на грешка на страницата.
Проблемът, свързан с разбиването, е високият процент грешки на страниците и следователно концепцията тук е да се контролира процентът на грешки на страниците.
Ако процентът на грешки в страницата е твърде висок, това показва, че процесът има твърде малко кадри, разпределени за него. Напротив, ниската честота на грешки в страницата показва, че процесът има твърде много кадри.
Могат да се установят горни и долни граници на желаната честота на грешки на страницата, както е показано на диаграмата.
Ако процентът на грешки в страницата падне под долната граница, кадрите могат да бъдат премахнати от процеса. По същия начин, ако честотата на грешките на страницата надвишава горната граница, повече кадри могат да бъдат разпределени за процеса.
С други думи, графичното състояние на системата трябва да бъде ограничено до правоъгълната област, образувана в дадената диаграма.
Ако процентът на грешки в страницата е висок и няма свободни рамки, някои от процесите могат да бъдат спрени и разпределените за тях могат да бъдат пренасочени към други процеси. Спряните процеси могат да се рестартират по-късно.