Datorzinātnēs, thrash ir vāja virtuālās atmiņas (vai peidžeru) sistēmas veiktspēja, kad tās pašas lapas tiek atkārtoti ielādētas, jo trūkst galvenās atmiņas, lai tās saglabātu atmiņā. Atkarībā no konfigurācijas un algoritma faktiskā sistēmas caurlaidspēja var pasliktināties par vairākām kārtām.
Datorzinātnēs, dauzīt rodas, ja datora virtuālās atmiņas resursi tiek pārmērīgi izmantoti, izraisot pastāvīgu peidžeru stāvokli un lappušu kļūdas, kavējot lielāko daļu lietojumprogrammu līmeņa apstrādes. Tas izraisa datora veiktspējas pasliktināšanos vai sabrukumu. Situācija var turpināties bezgalīgi, līdz lietotājs aizver dažas darbojošās programmas vai aktīvie procesi atbrīvos papildu virtuālās atmiņas resursus.
Lai skaidrāk uzzinātu par sagraušanu, vispirms mums ir jāzina par lapu kļūmēm un apmaiņu.
Traukāšana Tas ir tad, kad lapas kļūme un apmaiņa notiek ļoti bieži ar lielāku ātrumu, un tad operētājsistēmai ir jāpavada vairāk laika, lai nomainītu šīs lapas. Šis stāvoklis operētājsistēmā ir pazīstams kā sagraušana. Sagraušanas dēļ CPU izmantošana samazināsies vai būs nenozīmīga.
Iesaistītā pamatkoncepcija ir tāda, ka, ja procesam tiek piešķirts pārāk maz kadru, būs pārāk daudz un pārāk biežu lapu kļūdu. Tā rezultātā centrālais procesors neveiks nekādu vērtīgu darbu, un CPU izmantošana krasi samazinātos.
Ilgtermiņa plānotājs tad mēģinātu uzlabot CPU izmantošanu, ielādējot atmiņā vēl dažus procesus, tādējādi palielinot vairākprogrammēšanas pakāpi. Diemžēl tas izraisītu CPU noslogojuma turpmāku samazināšanos, izraisot lielāku lapu kļūdu ķēdes reakciju, kam sekotu vairāku programmēšanas pakāpes palielināšanās, ko sauc par sagraušanu.
Algoritmi sagraušanas laikā
Ikreiz, kad tiek sākta sagraušana, operētājsistēma mēģina lietot globālo lapu aizstāšanas algoritmu vai lokālo lapu aizstāšanas algoritmu.
1. Globālā lapas nomaiņa
Tā kā globālā lapu aizstāšana var ienest jebkuru lapu, tā mēģina ienest vairāk lapu ikreiz, kad tiek konstatēta sagraušana. Bet patiesībā notiks tas, ka neviens process nesaņem pietiekami daudz kadru, un rezultātā dauzīšana palielināsies arvien vairāk. Tāpēc globālais lapu aizstāšanas algoritms nav piemērots, ja notiek sagraušana.
2. Vietējās lapas nomaiņa
Atšķirībā no globālā lapu aizstāšanas algoritma, vietējā lapu aizstāšana atlasīs lapas, kas pieder tikai šim procesam. Tātad ir iespēja samazināt kulšanu. Taču ir pierādīts, ka lokālās lapas aizstāšanai ir daudz trūkumu. Tāpēc lokāla lapu aizstāšana ir tikai alternatīva globālai lapu aizstāšanai sagraušanas scenārijā.
Sagraušanas cēloņi
Programmas vai darba slodzes var izraisīt sagraušanu, kā arī nopietnas veiktspējas problēmas, piemēram:
- Ja CPU noslogojums ir pārāk zems, mēs paaugstinām daudzprogrammēšanas pakāpi, ieviešot jaunu sistēmu. Tiek izmantots globāls lapas aizstāšanas algoritms. CPU plānotājs redz CPU noslogojuma samazināšanos un palielina daudzprogrammēšanas pakāpi.
- CPU izmantošana tiek attēlota attiecībā pret daudzprogrammēšanas pakāpi.
- Palielinoties daudzprogrammēšanas pakāpei, palielinās arī CPU noslodze.
- Ja vairākprogrammēšanas pakāpe tiek vēl vairāk palielināta, sākas sagraušana un CPU noslodze strauji samazinās.
- Tāpēc šajā brīdī, lai palielinātu CPU noslogojumu un pārtrauktu dauzīšanu, mums ir jāsamazina daudzprogrammēšanas pakāpe.
Kā novērst sagraušanu
Sagraušanai ir zināma negatīva ietekme uz cietā diska stāvokli un sistēmas veiktspēju. Tāpēc ir jāveic dažas darbības, lai no tā izvairītos. Lai atrisinātu kulšanas problēmu, izmantojiet šādas metodes, piemēram:
Sitiena novēršanas paņēmieni
Vietējās lapas aizstāšana ir labāka nekā globālās lapas aizstāšana, taču vietējai lapas aizstāšanai ir daudz trūkumu, tāpēc dažreiz tā nav noderīga. Tāpēc tālāk ir norādīti daži citi paņēmieni, kas tiek izmantoti, lai apstrādātu kulšanu:
1. Vietnes modelis
Vieta ir lapu kopa, kas tiek aktīvi izmantota kopā. Vietnes modelis nosaka, ka procesam izpildoties, tas pārvietojas no vienas vietas uz citu. Tādējādi programma parasti sastāv no vairākām dažādām vietām, kuras var pārklāties.
Piemēram, kad funkcija tiek izsaukta, tā definē jaunu vietu, kurā tiek veiktas atmiņas atsauces uz funkcijas izsaukšanas instrukcijām, vietējiem un globālajiem mainīgajiem utt. Līdzīgi, kad funkcija tiek izsaukta, process atstāj šo vietu.
2. Darba komplekta modelis
Šis modelis ir balstīts uz iepriekš minēto Vietas modeļa koncepciju.
Pamatprincips nosaka, ka, ja procesam piešķiram pietiekami daudz kadru, lai pielāgotos tā pašreizējai vietai, tas radīs kļūdu tikai tad, kad tas pārceļas uz kādu jaunu vietu. Bet, ja piešķirtie kadri ir mazāki par pašreizējās vietas lielumu, process ir saistīts ar thrash.
Saskaņā ar šo modeli, pamatojoties uz parametru A, darba kopa tiek definēta kā lappušu kopa jaunākajās “A” lappušu atsaucēs. Tādējādi visas aktīvi izmantotās lapas vienmēr būtu daļa no darba kopas.
java parseint
Darba kopas precizitāte ir atkarīga no parametra A vērtības. Ja A ir pārāk liela, darba kopas var pārklāties. No otras puses, mazākām A vērtībām apgabals var nebūt aptverts pilnībā.
Ja D ir kopējais kadru un WSS pieprasījumsiir procesa i darba komplekta lielums,
D = ⅀ WSSi
Tagad, ja “m” ir atmiņā pieejamo kadru skaits, ir divas iespējas:
- D>m, t.i., kopējais pieprasījums pārsniedz kadru skaitu, tad notiks sagraušana, jo daži procesi nesaņems pietiekami daudz kadru.
- D<=m, then there would be no thrashing.< li> =m,>
Ja ir pietiekami daudz papildu kadru, tad atmiņā var ielādēt vēl dažus procesus. No otras puses, ja darba kopu izmēru summēšana pārsniedz kadru pieejamību, daži procesi ir jāaptur (jānomaina no atmiņas).
Šis paņēmiens novērš sagraušanu, kā arī nodrošina visaugstāko iespējamo daudzprogrammēšanas pakāpi. Tādējādi tas optimizē CPU izmantošanu.
3. Lapas kļūdu biežums
Tiešāka pieeja, lai apstrādātu sagraušanu, ir tā, kurā tiek izmantota Page-Fault Frequency koncepcija.
Problēma, kas saistīta ar sagraušanu, ir lielais lappušu kļūdu līmenis, un tādējādi šeit ir paredzēts kontrolēt lapas kļūdu biežumu.
Ja lapas kļūdu līmenis ir pārāk augsts, tas norāda, ka procesam ir piešķirts pārāk maz kadru. Gluži pretēji, zems lappušu kļūdu līmenis norāda, ka procesam ir pārāk daudz kadru.
Augšējo un apakšējo robežu var noteikt vēlamajam lappuses kļūdu biežumam, kā parādīts diagrammā.
Ja lapas kļūdu biežums nokrītas zem apakšējās robežas, kadrus var noņemt no procesa. Tāpat, ja lapas kļūdu līmenis pārsniedz augšējo robežu, procesam var piešķirt vairāk kadru.
Citiem vārdiem sakot, sistēmas grafiskais stāvoklis ir jāierobežo ar taisnstūra apgabalu, kas izveidots dotajā diagrammā.
Ja lapas kļūdu līmenis ir augsts, ja nav brīvu kadru, dažus procesus var apturēt un tiem piešķirtos procesus var pārdalīt citiem procesiem. Apturētos procesus var atsākt vēlāk.