logo

Какво е Thrash?

В компютърните науки, траш е лошото представяне на система за виртуална памет (или пейджинг), когато едни и същи страници се зареждат многократно поради липса на основна памет, която да ги запази в паметта. В зависимост от конфигурацията и алгоритъма, действителната производителност на системата може да се влоши с няколко порядъка.

В компютърните науки, тръшкане възниква, когато ресурсите на виртуалната памет на компютъра се използват прекомерно, което води до постоянно състояние на пейджинг и грешки в страниците, възпрепятствайки повечето обработки на ниво приложение. Това води до влошаване или срив на производителността на компютъра. Ситуацията може да продължи безкрайно дълго, докато потребителят затвори някои работещи приложения или активните процеси освободят допълнителни ресурси на виртуалната памет.

За да знаем по-ясно за разбиването, първо, трябва да знаем за грешката на страницата и размяната.

    Грешка в страницата:Знаем, че всяка програма е разделена на няколко страници. Грешка на страницата възниква, когато програма се опита да получи достъп до данни или код в своето адресно пространство, но в момента не се намира в системната RAM.Размяна:Всеки път, когато възникне грешка в страницата, операционната система ще се опита да извлече тази страница от вторичната памет и да се опита да я размени с една от страниците в RAM. Този процес се нарича размяна.

Тръшкане е, когато грешката на страницата и размяната се случват много често с по-висока честота и тогава операционната система трябва да отдели повече време за размяна на тези страници. Това състояние в операционната система е известно като thrashing. Поради разбиване, използването на процесора ще бъде намалено или незначително.

Какво е траш

Основната включена концепция е, че ако на даден процес са разпределени твърде малко кадри, тогава ще има твърде много и твърде чести грешки на страницата. В резултат на това процесорът няма да извърши ценна работа и използването на процесора ще намалее драстично.

След това дългосрочният планировчик ще се опита да подобри използването на процесора чрез зареждане на още процеси в паметта, като по този начин ще увеличи степента на мултипрограмиране. За съжаление, това би довело до по-нататъшно намаляване на използването на процесора, предизвиквайки верижна реакция от по-високи грешки на страниците, последвани от увеличаване на степента на мултипрограмиране, наречено разбиване.

Алгоритми по време на Thrashing

Всеки път, когато започне разбиване, операционната система се опитва да приложи алгоритъма за глобална страница или алгоритъма за локална страница.

1. Глобална подмяна на страници

Тъй като глобалната подмяна на страници може да доведе до всяка страница, тя се опитва да доведе повече страници, когато се установи разбиване. Но това, което всъщност ще се случи е, че никой процес не получава достатъчно кадри и в резултат на това разбиването ще се увеличава все повече и повече. Следователно алгоритъмът за глобална замяна на страници не е подходящ, когато се случи разбиване.

2. Замяна на локална страница

За разлика от алгоритъма за глобална замяна на страница, замяната на локална страница ще избере страници, които принадлежат само към този процес. Така че има шанс да се намали разбиването. Но е доказано, че има много недостатъци, ако използваме заместване на локална страница. Следователно подмяната на локална страница е просто алтернатива на глобалната подмяна на страница в сценарий на разбиване.

Причини за разбиване

Програмите или работните натоварвания могат да причинят разбиване и това води до сериозни проблеми с производителността, като например:

  • Ако използването на процесора е твърде ниско, ние увеличаваме степента на мултипрограмиране чрез въвеждане на нова система. Използва се глобален алгоритъм за подмяна на страници. Планировчикът на процесора вижда намаляващото използване на процесора и увеличава степента на мултипрограмиране.
  • Използването на процесора се нанася спрямо степента на мултипрограмиране.
  • С нарастването на степента на мултипрограмиране се увеличава и използването на процесора.
  • Ако степента на мултипрограмиране се повиши още повече, настъпва трескане и използването на процесора рязко спада.
  • Така че, в този момент, за да увеличим използването на процесора и да спрем разбиването, трябва да намалим степента на мултипрограмиране.

Как да елиминираме трешенето

Трешингът има някои отрицателни въздействия върху здравето на твърдия диск и производителността на системата. Ето защо е необходимо да се предприемат някои действия, за да се избегне това. За да разрешите проблема с разбиването, ето следните методи, като например:

    Коригирайте размера на суап файла:Ако системният суап файл не е конфигуриран правилно, може да ви се случи и разбиване на диска.Увеличете количеството RAM:Тъй като недостатъчната памет може да причини разбиване на диска, едно от решенията е да добавите повече RAM към лаптопа. С повече памет вашият компютър може лесно да се справя със задачите и не трябва да работи прекомерно. Като цяло това е най-доброто дългосрочно решение.Намалете броя на приложенията, работещи на компютъра:Ако има твърде много приложения, работещи във фонов режим, вашият системен ресурс ще изразходва много. И оставащият системен ресурс е бавен, което може да доведе до разбиване. Така че, докато се затварят, някои приложения ще освободят някои ресурси, така че да можете да избегнете разбиване до известна степен.Замяна на програми:Заменете тези програми, които заемат много памет, с еквиваленти, които използват по-малко памет.

Техники за предотвратяване на разбиване

Замяната на локална страница е по-добра от замяната на глобалната страница, но замяната на локална страница има много недостатъци, така че понякога не е полезна. Ето защо по-долу са някои други техники, които се използват за справяне с разбиване:

1. Модел на местността

Населеното място е набор от страници, които се използват активно заедно. Моделът на местността гласи, че докато процесът се изпълнява, той се премества от едно местоположение в друго. По този начин една програма обикновено се състои от няколко различни местности, които могат да се припокриват.

Например, когато се извика функция, тя дефинира ново местоположение, където се правят препратки към паметта към инструкциите за извикване на функция, локални и глобални променливи и т.н. По същия начин, когато функцията бъде излязла, процесът напуска това местоположение.

2. Модел на работен набор

Този модел се основава на посочената по-горе концепция за модела на местността.

Основният принцип гласи, че ако разпределим достатъчно рамки за даден процес, за да приспособим текущото му местоположение, той ще се повреди само когато се премести в някакво ново местоположение. Но ако разпределените рамки са по-малки от размера на текущото местоположение, процесът непременно ще се разбие.

Съгласно този модел, въз основа на параметър A, работният набор се дефинира като набор от страници в най-новите препратки към страници „A“. Следователно всички активно използвани страници винаги ще бъдат част от работния набор.

байтов масив към низ

Точността на работния набор зависи от стойността на параметър A. Ако A е твърде голям, тогава работните набори може да се припокриват. От друга страна, за по-малки стойности на A, местността може да не бъде покрита изцяло.

Ако D е общото търсене на рамки и WSSiе размерът на работния набор за процес i,

D = ⅀ WSSi

Сега, ако 'm' е броят кадри, налични в паметта, има две възможности:

  • D>m, т.е. общото търсене надвишава броя на кадрите, тогава ще настъпи разбиване, тъй като някои процеси няма да получат достатъчно кадри.
  • д<=m, then there would be no thrashing.< li>

Ако има достатъчно допълнителни кадри, тогава в паметта могат да се заредят още процеси. От друга страна, ако сумата от размерите на работния набор надвишава наличността на кадрите, някои от процесите трябва да бъдат спрени (разменени от паметта).

Тази техника предотвратява разбиване заедно с осигуряването на възможно най-висока степен на мултипрограмиране. По този начин той оптимизира използването на процесора.

3. Честота на грешка в страницата

По-директен подход за справяне с разбиването е този, който използва концепцията за честота на грешка на страницата.

Какво е траш

Проблемът, свързан с разбиването, е високият процент грешки на страниците и следователно концепцията тук е да се контролира процентът на грешки на страниците.

Ако процентът на грешки в страницата е твърде висок, това показва, че процесът има твърде малко кадри, разпределени за него. Напротив, ниската честота на грешки в страницата показва, че процесът има твърде много кадри.

Могат да се установят горни и долни граници на желаната честота на грешки на страницата, както е показано на диаграмата.

Ако процентът на грешки в страницата падне под долната граница, кадрите могат да бъдат премахнати от процеса. По същия начин, ако честотата на грешките на страницата надвишава горната граница, повече кадри могат да бъдат разпределени за процеса.

С други думи, графичното състояние на системата трябва да бъде ограничено до правоъгълната област, образувана в дадената диаграма.

Ако процентът на грешки в страницата е висок и няма свободни рамки, някои от процесите могат да бъдат спрени и разпределените за тях могат да бъдат пренасочени към други процеси. Спряните процеси могат да се рестартират по-късно.