100 fyysistä muistisivuvirhettä. Puuttuvien sivujen virheiden käsittely. Virtuaalimuisti Windowsissa

Kun prosessi käynnistyy Windowsissa, monet EXE- ja DLL-kuvat näyttävät sivut saattavat jo olla muistissa, koska muut prosessit käyttävät niitä. Kirjoitettaville kuvasivuille on merkitty "kopioi-kirjoitus", jotta niitä voidaan jakaa, kunnes niitä on muokattava. Jos käyttöjärjestelmä tunnistaa jo suoritetun EXE:n, se voi tallentaa sivulinkkimallin (käyttämällä tekniikkaa, jota Microsoft kutsuu Super-Fetchiksi). Tämä tekniikka yrittää pumpata monia tarvittavista sivuista etukäteen (vaikka prosessi ei ole vielä saanut niille sivuvirheitä). Tämä vähentää sovelluksen käynnistysviivettä (sivujen lukeminen levyltä menee päällekkäin kuvien alustuskoodin suorittamisen kanssa). Tämä tekniikka parantaa levyn ulostulon suorituskykyä, koska levyohjaimet voivat järjestää lukutoiminnot helpommin (vaaditun hakuajan lyhentämiseksi). Tätä ennaltaehkäisevää hakuprosessia käytetään järjestelmän käynnistyksen aikana sekä silloin, kun taustasovellus tulee etualalle ja kun järjestelmä herää lepotilasta.

Muistinhallinta tukee esihakuhakua, mutta se toteutetaan erillisenä järjestelmäkomponenttina. Sivutettuja sivuja ei lisätä prosessin sivutaulukkoon, vaan ne lisätään valmiustilaluetteloon, josta ne voidaan lisätä nopeasti prosessiin (käsittämättä levyä).

Yhdistämättömät sivut ovat hieman erilaisia ​​- niitä ei alustata lukemalla tiedostosta. Sen sijaan, kun kartoittamattomalle sivulle avataan ensimmäisen kerran, muistinhallinta tarjoaa uuden fyysisen sivun (varmistaen, että sen sisältö on täytetty nolilla turvallisuussyistä). Myöhemmissä sivuvirheissä yhdistämätön sivu on ehkä löydettävä muistista tai se on ehkä luettava sivutiedostosta.

Muistinhallinnan pyynnöstä tapahtuvaa hakua ohjaavat sivuvirheet. Jokainen virhe aiheuttaa keskeytyksen ytimeen. Ydin rakentaa sitten koneesta riippumattoman kuvaajan (joka raportoi tapahtuneesta) ja välittää sen executive memory managerille. Muistinhallinta tarkistaa sitten pääsyn kelvollisuuden. Jos epäonnistunut sivu kuuluu sitoutuneeseen alueeseen, se etsii osoitteen VAD-luettelosta ja löytää (tai luo) prosessin sivutaulukkomerkinnän. Jaetun sivun tapauksessa muistinhallinta käyttää prototyyppisivutaulukkomerkintää (liittyy segmenttiobjektiin) täyttääkseen prosessin uuden sivutaulukkomerkinnän.

Sivutaulukkoelementin muoto vaihtelee prosessorin arkkitehtuurin mukaan. x86- ja x64-suorittimissa näytettävän sivun elementit on esitetty kuvassa. 11.17. Jos elementti on merkitty kelvolliseksi, laitteisto tulkitsee sen sisällön (jotta virtuaaliosoite voidaan kääntää oikealle fyysiselle sivulle). Myös yhdistämättömillä sivuilla on elementtinsä, mutta ne on merkitty virheellisiksi ja laitteisto jättää huomioimatta muun elementin. Ohjelmistomuoto on hieman erilainen kuin laitteisto, ja sen määrittää muistinhallinta. Esimerkiksi renderöimättömälle sivulle (joka on sijoitettava ja nollattava ennen käyttöä) tämä seikka merkitään sivutaulukkoelementtiin.


Laitteisto päivittää suoraan sivutaulukkomerkinnän kaksi tärkeää bittiä. Nämä ovat pääsybitti (A) ja modifioitu bitti (D). Nämä bitit seuraavat tietyn sivukartoituksen käyttöä sivulle pääsyssä ja sitä, voiko tämä käyttö muuttaa sivua. Tämä itse asiassa parantaa järjestelmän suorituskykyä, koska muistinhallinta voi käyttää pääsybittiä toteuttaakseen LRU-hakutoiminnon (Least-Recently Used). LRU:n periaate on, että pisimpään käyttämättömänä olleilla sivuilla on pienin todennäköisyys joutua uudelleen käyttöön lähitulevaisuudessa. Pääsybitin avulla muistinhallinta voi määrittää, että sivua on käytetty. "Muokattu"-bitti kertoo muistinhallinnasta, että sivua on saatettu muokata (tai mikä vielä tärkeämpää, sitä ei ole muokattu). Jos sivua ei ole muokattu sen jälkeen, kun se on luettu levyltä, muistinhallinnan ei tarvitse kirjoittaa sen sisältöä levylle (ennen kuin käyttää sitä johonkin muuhun).

Sekä x86- että x64-arkkitehtuurit käyttävät 64-bittistä sivutaulukkomerkintää (katso kuva 11.17).

Jokainen sivuvirhe voidaan luokitella johonkin viidestä kategoriasta:

1. Sivua ei ole korjattu.

2. Yritys päästä sivulle, jolla on luparikkomus.

3. Yritys muokata kopiointi-kirjoitussivua.

1. Pinoa on lisättävä.

2. Sivu on jumiutunut, mutta sitä ei tällä hetkellä näytetä.

Ensimmäinen ja toinen tapaus ovat ohjelmointivirheitä. Jos ohjelma yrittää käyttää osoitetta, jolla ei ole kelvollista kartoitusta, tai yrittää suorittaa laitonta toimintoa (kuten yrittää kirjoittaa vain luku -sivulle), tätä kutsutaan käyttöoikeusrikkomukseksi ja se yleensä aiheuttaa prosessin päättymisen. . Käyttöoikeusrikkomus johtuu usein virheellisistä osoitinarvoista, mukaan lukien pääsy prosessista irrotettuun ja irrotettuun muistiin.

Kolmannessa tapauksessa on samat oireet kuin toisessa (yritetään kirjoittaa vain luku -sivulle), mutta sen käsittely on erilainen. Koska sivu on merkitty kopioitavaksi, muistinhallinta ei ilmoita käyttörikkomuksesta. Sen sijaan se luo sivusta yksityisen kopion nykyistä prosessia varten ja palauttaa sitten hallinnan säikeelle, joka yritti kirjoittaa sivulle. Säie toistaa kirjoitustoiminnon, joka nyt päättyy ilman sivuvirhettä.

Neljäs tapaus tapahtuu, kun säie työntää arvon pinoonsa ja osuu sivulle, jota ei ole vielä varattu. Muistinhallinta tunnistaa tämän erikoistapaukseksi. Niin kauan kuin pinolle varatuilla virtuaalisivuilla on tilaa, muistinhallinta toimittaa uusia sivuja, nollaa ne ja kartoittaa ne prosessiin. Kun säiettä jatketaan, se yrittää käyttää sitä uudelleen, ja tällä kertaa se onnistuu.

Ja lopuksi, viides tapaus on normaali sivuvirhe. Siinä on kuitenkin useita alivaihtoehtoja. Jos sivu on yhdistetty tiedostoon, muistinhallinnan on tarkasteltava sen tietorakenteita (kuten segmenttiobjektiin liittyvää prototyyppisivutaulukkoa) varmistaakseen, ettei siitä ole kopiota muistissa. Jos kopio on olemassa (esimerkiksi toisessa prosessissa, valmiustilan luettelossa tai muokattujen sivujen luettelossa), hän yksinkertaisesti jakaa sen (hänen on ehkä merkittävä se kopiointi-kirjoitussivuksi tee tämä, jos muutoksia ei ole tarkoitus jakaa). Jos kopiota ei vielä ole, muistinhallinta varaa vapaan fyysisen sivun ja valmistelee sen kopioimaan tiedostosivun levyltä sille, ellei toista sivua siirretä levyltä sillä hetkellä (jolloin sinun tarvitsee vain odottaa siirto on valmis).

Jos muistinhallinta pystyy käsittelemään sivuvian etsimällä sivun muistista (eikä lukemalla sitä levyltä), vikaa kutsutaan pehmeäksi viaksi. Jos tarvitset kopion levyltä, tämä on kova vika. Pehmeät virheet ovat paljon halvempia ja niillä on vain vähän vaikutusta sovelluksen suorituskykyyn (verrattuna koviin virheisiin). Pehmeitä virheitä voi esiintyä, koska jaettu sivu on jo kartoitettu toiseen prosessiin tai se tarvitsee vain uuden nollatun sivun tai haluttu sivu on poistettu prosessin työjoukosta, mutta sitä pyydetään uudelleen ennen kuin sitä käytetään uudelleen. Pehmeitä virheitä voi esiintyä myös siksi, että sivut on pakattu fyysisen muistin koon kasvattamiseksi tehokkaasti. Useimmissa suoritinkokoonpanoissa on tehokkaampaa pakata muisti ja I/O nykyisissä järjestelmissä sen sijaan, että aiheutuisi kallis I/O (suorituskyvyn ja tehon suhteen), joka vaatii sivun lukemista levyltä.

Kun fyysistä sivua ei enää yhdistetä minkään prosessin sivutaulukkoon, se siirtyy johonkin kolmesta luettelosta: ilmainen, muokattu tai varattu. Sivut, joita ei enää koskaan tarvita (kuten lopetusprosessin pinosivut), vapautetaan välittömästi. Sivut, jotka todennäköisesti aiheuttavat sivuvirheitä uudelleen, päätyvät joko muokattuun luetteloon tai valmiustilaluetteloon (riippuen siitä, onko "muokattu" bitti asetettu jollekin sivutaulukkomerkinnölle, joka on näyttänyt kyseisen sivun sen jälkeen, kun se on viimeksi luettu levyltä) . Muokatun luettelon sivut kirjoitetaan lopulta levylle ja siirretään sitten varallaololuetteloon.

Muistinhallinta voi varata sivuja tarpeen mukaan (joko vapaa- tai varasivuluettelon avulla). Ennen sivun varaamista ja kopioimista levyltä muistinhallinta tarkistaa aina vara- ja muokattujen sivujen luettelot nähdäkseen, onko sivu jo muistissa. Windowsin eteenpäinhakumalli muuntaa tulevat kovat virheet pehmeiksi virheiksi (lukemalla mahdollisesti tarvittavat sivut ja sijoittamalla ne valmiustilan sivuluetteloon). Muistinhallinta itse suorittaa pienen määrän sivua eteenpäin - se käyttää peräkkäisten sivujen ryhmiä (eikä yksittäisiä sivuja). Lisäsivut sijoitetaan välittömästi valmiustilan sivuluetteloon. Tämä ei ole turhaa, koska muistinhallinnan yleiskustannukset ovat paljon pienemmät kuin I/O-toimintojen suorittamisen kustannukset. Kokonaisen sivujoukon lukeminen on hieman kalliimpaa kuin yhden sivun lukeminen.

Kuvan sivutaulukon elementit. 11.17 viittaavat fyysisiin (ei virtuaalisiin) sivunumeroihin. Sivutaulukkomerkinnän (ja sivuhakemiston) päivittämiseksi ytimen on käytettävä virtuaalisia osoitteita. Windows kartoittaa nykyisen prosessin sivutaulukot ja sivuhakemistot ytimen virtuaaliseen osoiteavaruuteen käyttämällä sivuhakemiston self-map-elementtiä (Kuva 11.18). Yhdistämällä sivuhakemistoelementti sivuhakemistoon (self-map) saadaan virtuaalisia osoitteita, joilla voidaan viitata sivuhakemistoelementteihin (Kuva 11.18, a) ja sivutaulukkoelementteihin (Kuva 11.18, b). Itsekartta varaa 8 Mt ytimen virtuaaliosoitteita kullekin prosessille (x86-suorittimissa). Yksinkertaisuuden vuoksi kuvassa on x86-selvityselementti 32-bittisille PTE-merkinnöille (Page-Table Entries). Itse asiassa Windows käyttää 64-bittisiä PTE-tietueita, joten järjestelmä voi hyödyntää yli 4 Gt fyysistä muistia. 32-bittisillä PTE-merkinnöillä itsekartoituselementti käyttää vain yhtä PDE- (Page-Directory Entry) -merkintää sivuhakemistossa ja varaa siksi vain 4 megatavua osoitteita 8 megatavun sijasta.

Ennaltaehkäisevät/ei-ennaltaehkäisevät algoritmit.

Ennaltaehkäisevän algoritmin tapauksessa käyttöjärjestelmä voi keskeyttää nykyisen säikeen suorittamisen milloin tahansa ja vaihtaa prosessorin toiseen säikeeseen. Ei-ennaltaehkäisevissä algoritmeissa prosessorille annettu säie päättää vain, milloin ohjaus siirretään käyttöjärjestelmälle.

Algoritmit kvantisoinnilla.

Jokaiselle säikeelle annetaan aikaviipale, jonka aikana säiettä voi suorittaa prosessorissa. Kun kvantti vanhenee, käyttöjärjestelmä vaihtaa prosessorin jonon seuraavaan säikeeseen. Kvantti on yleensä yhtä suuri kuin kokonaisluku järjestelmän ajastinvälien 1.

Algoritmit prioriteeteilla.

Jokaiselle säikeelle on määritetty prioriteetti - kokonaisluku, joka ilmaisee säikeen etuoikeusasteen. Jos käynnissä on useita säikeitä, käyttöjärjestelmä valitsee säikeen, jolla on korkein prioriteetti.

Windows toteuttaa sekaajoitusalgoritmin - ennaltaehkäisevän, joka perustuu kvantisointiin ja prioriteetteihin.

  1. Moniajotyyppi DOS-sovellukselle
  2. Palvelun takuut
  3. Etualan prosessien ajoittaminen
  4. Sivutustiedoston tarkoitus
  5. Prosessit P1, P2, P3 varaavat 100, 20, 80 MB muistia. Järjestelmässä on 128 Mt RAM-muistia. Mikä on sivutiedoston varatun muistin koko. Mikä on swap-tiedoston koko.
  1. Mikä on "sivuvirhe"?

Keskeytys 14 -Sivun vika (#PF): Intel386…

Luodaan, jos sivukone on aktivoitu (CR0.PG = 1) ja jokin seuraavista tilanteista tapahtuu käännettäessä lineaarinen osoite fyysiseksi:

  • osoitteen käännöksessä käytettävä sivutaulukon tai sivuhakemiston elementti, on nolla läsnäolobitti, eli vaadittua sivutaulukkoa tai sivua ei ole fyysisessä muistissa;
  • menettelyllä ei ole etuoikeustaso, riittää valitun sivun avaamiseen tai yrittää kirjoittaa sivulle, joka on kirjoitussuojattu nykyisellä käyttöoikeustasolla.

Sivuviankäsittelijä saa tiedon sen syystä kahdesta lähteestä: pinoon työnnettävästä virhekoodista ja CR2-rekisterin sisällöstä, joka sisältää virheen aiheuttaneen lineaarisen osoitteen. Sivun vikakoodilla on erityinen muoto (kuva 3.7.).

Keskeytettyä ohjelmaa sivuvian aiheuttaneiden syiden poistamisen jälkeen (esimerkiksi sivun fyysiseen muistiin lataamisen jälkeen) voidaan jatkaa ilman lisäsäätöjä.

Jos sivuvika johtui sivun suojausoikeuksien rikkomisesta, vastaavan sivuhakemistomerkinnän pääsybitti (A) asetetaan. Pääsybitin toimintaa vastaavassa sivutaulukon elementissä tässä tapauksessa ei säädetä Intel-prosessoreissa ja se voi vaihdella eri malleissa.

  1. Korkea sivun virheprosentti osoittaa:

Ohjelman epävarmuus

RAM-muistin epäluotettavuus

Muu: selitä

Sarake "Muistista puuttuu sivun virheet/s."

Sarakkeessa "Sivun virheet muisti täynnä/s." (Hard Faults/sec) näyttää keskimääräisen sivumuistin virheiden määrän sekunnissa viimeisen minuutin aikana. Jos prosessi yrittää käyttää enemmän fyysistä muistia kuin tällä hetkellä on käytettävissä, järjestelmä kirjoittaa osan tiedoista muistista levylle - sivutiedostoon. Levylle tallennettujen tietojen myöhempää käyttöä kutsutaan sivu muistin loppumisesta -virheeksi.

Mitä muisti loppuu -virheet tarkoittavat?

Nyt kun sinulla on käsitys siitä, mitä tietoja Prosessit-taulukkoon kerätään, katsotaanpa, kuinka voit käyttää sitä muistin varauksen valvontaan. Kun sovelluksia suoritetaan ja tiedostoja käsitellään, muistinhallinta valvoo kunkin prosessin työjoukon kokoa ja tallentaa lisämuistiresursseja koskevat pyynnöt. Prosessin työskentelyjoukon kasvaessa lähettäjä sovittaa nämä pyynnöt ytimen ja muiden prosessien tarpeisiin. Jos käytettävissä oleva osoitetila ei riitä, lähettäjä pienentää työjoukon kokoa tallentamalla tietoja muistista levylle.

Myöhemmin, kun luet näitä tietoja levyltä, tapahtuu sivu muistissa -virhe. Tämä on aivan normaalia, mutta jos virheitä esiintyy samanaikaisesti eri prosesseissa, järjestelmä vaatii lisäaikaa tietojen lukemiseen levyltä. Liian usein suoritetut muistin loppumisvirheet heikentävät järjestelmän suorituskykyä. Olet todennäköisesti kokenut odottamattomia hidastuksia kaikissa sovelluksissa, jotka sitten yhtäkkiä pysähtyivät. Tämä hidastuminen johtui lähes varmasti aktiivisesta tietojen uudelleenjaosta fyysisen muistin ja swapin välillä.

Johtopäätös on seuraava: jos tietyn prosessin muistin loppuminen -virheitä esiintyy liian usein ja säännöllisesti, Tietokoneessa ei ole tarpeeksi fyysistä muistia.

Voit helpottaa prosessien tarkkailua, jotka aiheuttavat usein muistin loppumisvirheitä, merkitsemällä ne lipuilla. Tässä tapauksessa valitut prosessit siirtyvät luettelon alkuun ja sivulta puuttuvien virheiden kaaviossa ne esitetään oranssina käyränä.

On syytä pitää mielessä, että muistin varaus riippuu useista muista tekijöistä, ja muistin loppumisen virheiden tarkkailu ei ole paras tai ainoa tapa tunnistaa ongelmia. Se voi kuitenkin toimia hyvänä lähtökohtana havainnointiin.

  1. Miten säikeen prioriteetti määritetään Windowsissa?

Prioriteetit

Windows-käyttöjärjestelmä toteuttaa ennaltaehkäisevän prioriteetin ajoituksen, kun jokaiselle säikeelle on määritetty tietty numeerinen arvo - prioriteetti, jonka mukaisesti prosessori sille allokoidaan. Säikeet, joilla on sama prioriteetti, ajoitetaan Round Robin -algoritmin (karuselli) mukaisesti. Järjestelmän tärkeä etu on kyky ennaltaehkäistä ydintilassa käynnissä olevia säikeitä - toimeenpanojärjestelmän koodi on täysin palaava. Vain säikeitä, joissa on spinlock, ei oteta ennalta (katso "Säikeiden synkronointi"). Siksi spinlockeja käytetään erittäin huolellisesti, ja ne on asetettu minimiajaksi.

Järjestelmä tarjoaa 32 prioriteettitasoa. Kuusitoista prioriteettiarvoa (16-31) vastaavat reaaliaikaista prioriteettiryhmää, viisitoista arvoa (1-15) ovat normaaleille säikeille ja arvo 0 on varattu järjestelmäsivun nollaussäikeelle (katso kuva 6.2). ).

Riisi. 6.2. Viestiketjun prioriteetit

Vapauttaakseen käyttäjän tarpeesta muistaa prioriteettien numeeriset arvot ja pystyä muokkaamaan ajastinta, kehittäjät ottivat järjestelmään ensisijainen abstraktiokerros. Esimerkiksi tietyn prosessin kaikkien säikeiden prioriteettiluokka voidaan asettaa käyttämällä SetPriorityClass-funktion vakioparametreja, joilla voi olla seuraavat arvot:

  • reaaliaikainen (REALTIME_PRIORITY_CLASS) - 24
  • korkea (HIGH_PRIORITY_CLASS) - 13
  • normaalia korkeampi (ABOVE_NORMAL_PRIORITY_CLASS) 10
  • normaali (NORMAL_PRIORITY_CLASS) - 8
  • alle normaalin (BELOW_NORMAL_PRIORITY_CLASS) - 6
  • ja vapaa (IDLE_PRIORITY_CLASS) 4

Säikeen suhteellinen prioriteetti asetetaan vastaavilla SetThreadPriority-funktion parametreilla:

Kuuden prosessin prioriteettiluokan ja seitsemän säikeen prioriteettiluokan joukko muodostaa 42 mahdollista yhdistelmää ja mahdollistaa ns. perussäikeen prioriteetin muodostamisen

Prosessin ja ensisijaisen säikeen oletusperusprioriteetti on arvo prosessin prioriteettialueiden keskellä ( 24, 13, 10, 8, 6 tai 4). Prosessin prioriteetin muuttaminen edellyttää kaikkien sen säikeiden prioriteettien muuttamista, kun taas niiden suhteelliset prioriteetit pysyvät ennallaan.

Prioriteetit 16 - 31 eivät todellakaan ole reaaliaikaisia ​​prioriteetteja, koska Windowsin pehmeä reaaliaikainen tuki ei takaa säikeiden ajoitusta. Nämä ovat yksinkertaisesti korkeampia prioriteetteja, jotka on varattu järjestelmäsäikeille ja säikeille, joille käyttäjä, jolla on järjestelmänvalvojan oikeudet, on antanut tällaisen prioriteetin. Kuitenkin reaaliaikaisten prioriteettien läsnäolo sekä ydinkoodin ennaltaehkäisy, muistisivujen lokalisointi (katso "Muistinhallinnan toiminta") ja joukko lisäominaisuuksia - kaikki tämä mahdollistaa pehmeän reaaliaikaisen käytön sovelluksia, kuten multimediaa, Windows-käyttöjärjestelmäympäristössä. Nollaprioriteettinen järjestelmäsäie tyhjentää muistisivuja. Tavallisten käyttäjien säikeillä voi olla prioriteetti 1-15.


Liittyviä tietoja.


Edellisessä artikkelissani "" puhuin Windows 7 Resource Monitorin (Resource Monitorin) ominaisuuksista, selitin, kuinka sitä käytetään järjestelmäresurssien jakautumisen seuraamiseen prosessien ja palveluiden välillä, ja mainitsin myös, että sitä voidaan käyttää tiettyjen ongelmia - esimerkiksi analysoida muistin kulutusta. Juuri tästä tässä artikkelissa keskustellaan.

Vähän muistista

Ennen kuin aloitan analyysin, puhun lyhyesti muistin hallinnasta. Näin sinun on helpompi ymmärtää, mitä tietoja Windows 7 Resource Monitorissa näytetään.

Windows 7 Memory Manager luo virtuaalisen muistijärjestelmän, joka koostuu käytettävissä olevasta fyysisestä RAM-muistista ja kiintolevyllä olevasta sivutiedostosta. Tämän ansiosta käyttöjärjestelmä voi varata kiinteäpituisia muistilohkoja (sivuja) peräkkäisillä osoitteilla fyysisessä ja virtuaalisessa muistissa.

Käynnistetään Windows 7 Resource Monitor

Käynnistä Windows 7 Resource Monitor avaamalla Käynnistä-valikko, kirjoittamalla hakupalkkiin "Resmon.exe" ja napsauttamalla . Valitse avautuvasta ikkunasta "Muisti"-välilehti (kuva A).

Kuva A: Windows 7 Resource Monitorin Muisti-välilehti tarjoaa yksityiskohtaisia ​​muistin varaustietoja.

Prosessitaulukko

Muisti-välilehdessä on Prosessit-taulukko (Kuva B), jossa luetellaan kaikki käynnissä olevat prosessit ja jaetaan muistin käyttö useisiin luokkiin.


Kuva B: Kunkin prosessin muistin käyttötiedot on jaettu useisiin luokkiin.

Sarake "Kuva"

"Image"-sarake osoittaa prosessin suoritettavan tiedoston nimen. Sovellusten suorittamat prosessit on erittäin helppo tunnistaa - esimerkiksi prosessi “notepad.exe” kuuluu selvästi Notepadiin. Prosessit nimeltä "svchost.exe" edustavat erilaisia ​​käyttöjärjestelmäpalveluita. Palvelun nimi näkyy suluissa prosessin nimen vieressä.

Prosessin tunnus -sarake

Prosessitunnus (PID) -sarake osoittaa prosessin numeron - ainutlaatuisen numeroyhdistelmän, jonka avulla voit tunnistaa käynnissä olevan prosessin.

"Valmis" sarake

Commit-sarake ilmaisee virtuaalimuistin määrän kilotavuina, jonka järjestelmä on varannut tätä prosessia varten. Tämä sisältää sekä käytetyn fyysisen muistin että sivutustiedostoon tallennetut sivut.

Sarake "Työjoukko"

Working Set -sarake osoittaa prosessin tietyllä hetkellä käyttämän fyysisen muistin määrän kilotavuina. Työsarja koostuu julkisesta ja yksityisestä muistista.

Sarake "Yleistä"

Jaettava sarake ilmaisee fyysisen muistin määrän kilotavuina, jonka tämä prosessi jakaa muiden kanssa. Yhden muistisegmentin tai vaihtosivun jakaminen vastaavia prosesseja varten voi säästää muistitilaa. Tämä tallentaa fyysisesti vain yhden kopion sivusta, joka sitten kartoitetaan muiden sitä käyttävien prosessien virtuaaliseen osoiteavaruuteen. Esimerkiksi kaikki järjestelmän DLL-tiedostojen - Ntdll, Kernel32, Gdi32 ja User32 - käynnistämät prosessit käyttävät jaettua muistia.

sarake "yksityinen"

Yksityinen sarake ilmaisee yksinomaan tämän prosessin käyttämän fyysisen muistin määrän kilotavuina. Tämän arvon avulla voit määrittää, kuinka paljon muistia tietty sovellus tarvitsee toimiakseen.

Sarake "Muistista puuttuu sivun virheet/s."

Sarakkeessa "Sivun virheet muisti täynnä/s." (Hard Faults/sec) näyttää keskimääräisen sivumuistin virheiden määrän sekunnissa viimeisen minuutin aikana. Jos prosessi yrittää käyttää enemmän fyysistä muistia kuin tällä hetkellä on käytettävissä, järjestelmä kirjoittaa osan tiedoista muistista levylle - sivutiedostoon. Levylle tallennettujen tietojen myöhempää käyttöä kutsutaan sivu muistin loppumisesta -virheeksi.

Mitä muisti loppuu -virheet tarkoittavat?

Nyt kun sinulla on käsitys siitä, mitä tietoja Prosessit-taulukkoon kerätään, katsotaanpa, kuinka voit käyttää sitä muistin varauksen valvontaan. Kun sovelluksia suoritetaan ja tiedostoja käsitellään, muistinhallinta valvoo kunkin prosessin työjoukon kokoa ja tallentaa lisämuistiresursseja koskevat pyynnöt. Prosessin työskentelyjoukon kasvaessa lähettäjä sovittaa nämä pyynnöt ytimen ja muiden prosessien tarpeisiin. Jos käytettävissä oleva osoitetila ei riitä, lähettäjä pienentää työjoukon kokoa tallentamalla tietoja muistista levylle.

Myöhemmin, kun luet näitä tietoja levyltä, tapahtuu sivu muistissa -virhe. Tämä on aivan normaalia, mutta jos virheitä esiintyy samanaikaisesti eri prosesseissa, järjestelmä vaatii lisäaikaa tietojen lukemiseen levyltä. Liian usein tapahtuvat muistin loppumisvirheet heikentävät järjestelmän suorituskykyä. Olet todennäköisesti kokenut odottamattomia hidastuksia kaikissa sovelluksissa, jotka sitten yhtäkkiä pysähtyivät. Tämä hidastuminen johtui lähes varmasti aktiivisesta tietojen uudelleenjaosta fyysisen muistin ja swapin välillä.

Johtopäätös on seuraava: jos tietyn prosessin muistin loppuminen -virheitä esiintyy liian usein ja säännöllisesti, tietokoneella ei ole tarpeeksi fyysistä muistia.

Voit helpottaa prosessien tarkkailua, jotka aiheuttavat usein muistin loppumisvirheitä, merkitsemällä ne lipuilla. Tässä tapauksessa valitut prosessit siirtyvät luettelon alkuun ja sivulta puuttuvien virheiden kaaviossa ne esitetään oranssina käyränä.

On syytä pitää mielessä, että muistin varaus riippuu useista muista tekijöistä, ja muistin loppumisen virheiden tarkkailu ei ole paras tai ainoa tapa tunnistaa ongelmia. Se voi kuitenkin toimia hyvänä lähtökohtana havainnointiin.

Taulukko "Fyysinen muisti"

Prosessit-taulukko antaa yksityiskohtaista tietoa muistin allokoinnista yksittäisten prosessien välillä, ja Fyysinen muisti -taulukko antaa yleiskuvan RAM-muistin käytöstä. Sen avainkomponentti on ainutlaatuinen histogrammi, joka näkyy kuvassa. C.


Kuva C: Fyysinen muisti -taulukon histogrammi tarjoaa yleiskatsauksen muistin jakautumisesta Windows 7:ssä.

Jokainen histogrammin osa on merkitty omalla värillään ja edustaa tiettyä muistisivujen ryhmää. Kun järjestelmää käytetään, muistinhallinta siirtää tietoja näiden ryhmien välillä taustalla ja ylläpitää herkkää tasapainoa fyysisen ja virtuaalisen muistin välillä varmistaakseen, että kaikki sovellukset toimivat tehokkaasti. Katsotaanpa tarkemmin histogrammia.

Osio "Varatut laitteet"

Vasemmalla on Harmaalla merkitty osa "Hardware Reserved": tämä on liitetyn laitteiston tarpeisiin varattu muisti, jota se käyttää vuorovaikutukseen käyttöjärjestelmän kanssa. Laitteistolle varattu muisti on lukittu, eikä muistinhallinta voi käyttää sitä.

Tyypillisesti laitteille varatun muistin määrä vaihtelee 10 - 70 megatavua, mutta tämä luku riippuu tietystä järjestelmäkokoonpanosta ja voi joissain tapauksissa nousta useisiin satoihin megatavuihin. Varatun muistin määrään vaikuttavia osia ovat:

;
emolevyn komponentit - kuten Advanced Programmable I/O Interrupt Controller (APIC);
äänikortit ja muut laitteet, jotka suorittavat muistikartoitettua syöttöä/tulostusta;
PCI Express (PCIe) -väylä;
videokortit;
erilaisia ​​piirisarjoja;
flash-asemat.

Jotkut käyttäjät valittavat, että heidän järjestelmänsä varaavat epänormaalin määrän muistia laitteistolleen. En ole koskaan törmännyt tällaiseen tilanteeseen, enkä siksi voi taata ehdotetun ratkaisun tehokkuutta, mutta monet huomauttavat, että BIOS-version päivittäminen voi ratkaista ongelman.

"Käytössä" -osio

Vihreänä näkyvä Käytössä-osio ilmaisee järjestelmän, ohjainten ja käynnissä olevien prosessien käyttämän muistin määrän. Käytetyn muistin määrä lasketaan "Total"-arvosta vähennettynä "Modified", "Standby" ja "Free" -ilmaisimien summalla. "Total"-arvo puolestaan ​​on "Asennettu RAM" -osoitin miinus "Varattu laitteisto" -ilmaisin.

Osio "Muutettu"

"Muokattu"-osio on korostettu oranssilla, mikä edustaa muokattua mutta käyttämätöntä muistia. Itse asiassa sitä ei käytetä, mutta sitä voidaan käyttää milloin tahansa tarvittaessa uudelleen. Jos muistia ei ole käytetty pitkään aikaan, tiedot siirretään sivutiedostoon ja muisti siirtyy "Odottaa"-luokkaan.

Osio "Odottaa"

Odottaa-osio, joka näkyy sinisellä, edustaa muistisivuja, jotka on poistettu työsarjoista, mutta jotka on edelleen liitetty niihin. Toisin sanoen "Odottaa"-luokka on itse asiassa välimuisti. Tämän luokan muistisivuille on asetettu prioriteetti 0 - 7 (enintään). Korkean prioriteetin prosesseihin liittyvät sivut saavat suurimman prioriteetin. Esimerkiksi jaetuilla prosesseilla on korkea prioriteetti, joten niihin liittyvät sivut saavat korkeimman prioriteetin Odottaa-luokassa.

Jos prosessi vaatii tietoja odotussivulta, muistinhallinta palauttaa välittömästi sivun työjoukkoon. Kaikki Odottaa-luokan sivut ovat kuitenkin käytettävissä muiden prosessien tietojen tallentamiseen. Kun prosessi vaatii lisämuistia eikä vapaata muistia ole tarpeeksi, muistinhallinta valitsee alhaisimman prioriteetin omaavan odotussivun, alustaa sen ja varaa sen pyytävälle prosessille.

Osio "Ilmainen"

Sinisellä merkitty Vapaa-luokka edustaa muistisivuja, joita ei ole vielä varattu millekään prosessille tai jotka on vapautettu prosessin päättyessä. Tämä osio näyttää sekä käyttämättömän että vapautuneen muistin, mutta itse asiassa käyttämätön muisti kuuluu toiseen luokkaan - "Zero Pages", jota kutsutaan niin, koska nämä sivut on alustettu nollaan ja valmiita käyttöön.

Tietoja vapaan muistin ongelmasta

Nyt kun sinulla on perusymmärrys muistinhallinnan toiminnasta, tarkastellaan hetki yleistä väärinkäsitystä muistinhallintajärjestelmästä Windows 7:ssä. Kuten näet kuvasta 1. C, Vapaa muistiosa on yksi histogrammin pienimmistä. On kuitenkin virhe olettaa tällä perusteella, että Windows 7 kuluttaa liikaa muistia ja että järjestelmä ei voi toimia kunnolla, jos vapaata muistia on niin vähän.

Itse asiassa asia on aivan päinvastoin. Windows 7:n muistinhallinnan lähestymistavan yhteydessä vapaa muisti on hyödytöntä. Mitä enemmän muistia käytetään, sen parempi. Maksimoimalla muistin ja siirtämällä sivuja jatkuvasti luokasta toiseen ensisijaisen järjestelmän avulla Windows 7 parantaa tehokkuutta ja estää tietojen päätymisen sivutiedostoon estäen sivun ulkopuolisia virheitä hidastamasta suorituskykyä.

Muistin valvonta

Haluatko nähdä Windows 7:n muistinhallintajärjestelmän toiminnassa? Käynnistä tietokone uudelleen ja avaa heti käynnistyksen jälkeen Windows 7 Resource Monitor. Siirry Muisti-välilehteen ja kiinnitä huomiota fyysisen muistin histogrammin osien suhteeseen.

Aloita sitten sovellusten käynnistäminen. Kun juokset, katso histogrammin muutosta. Kun olet käynnistänyt mahdollisimman monta sovellusta, aloita niiden sulkeminen yksi kerrallaan ja seuraa kuinka fyysisen muistin histogrammin osien suhde muuttuu.

Suorittamalla tämän äärimmäisen kokeilun ymmärrät, kuinka Windows 7 hallitsee tietyn tietokoneesi muistia, ja voit käyttää Windows 7 Resource Monitoria muistin varaamisen seuraamiseen normaaleissa päivittäisissä käyttöolosuhteissa.

Mitä mieltä sinä olet?

Pidätkö ajatuksesta käyttää Windows 7 Resource Monitoria muistin varauksen valvontaan? Jaa mielipiteesi kommenteissa!

Olet liittänyt uuden laitteen, mutta se toimii hitaasti tai vanha laite on lakannut toimimasta tai ei toimi oikein. Mitä tehdä näissä tapauksissa? Asenna kaikki uudelleen? Se on hankalaa, eikä se ole aina välttämätöntä. Kuinka selvittää syy ja miten se voidaan poistaa? Erittäin yksinkertainen. Tosiasia on, että Windows-käyttöjärjestelmäperheessä eikä vain, on olemassa tiettyLaitehallinta, itse asiassa erittäin tarpeellinen ja hyödyllinen johtaja, jos voit sanoa häntä sellaiseksi. Tässä hän on, hän auttaa meitä selvittämään, mikä on ongelman syy, ja huijauslehteni auttaa meitä korjaamaan ongelman. Eli yllä mainitussaLaitehallinta laitteiden toiminnan virheistä jää jäljet ​​koodien muodossa. Virhekoodin tiedossa ei ole vaikeaa määrittää ongelman syytä. Asiattomille koodit ovat vain käsittämättömiä ja merkityksettömiä numeroita. Mutta asiantuntevalle käyttäjälle he voivat kertoa paljon. Yritän parhaani mukaan valaista tätä aihetta.


Laitevirheiden tarkastelemiseksi meidän on ensin syötettävä itse Laitehallinta. Se on tehty näin. Kirjaudu sisäänOhjauspaneeli valikostaAlkaa ( Voiko,Minun tietokone , oikea avain -Ominaisuudet Laitehallinta, tai voit tehdä sen määrittämällä komennonsuorittaa , mutta miksi monimutkaistaa kaikkea). Jos astumme sisäänPaneeli hallinta , niin polku on:Järjestelmä - Laitteet - Laitehallinta . Valitse siirtymällä valikkoonLaitehallinta , laitetyyppi, josta olemme kiinnostuneita (näppäimistö, tulostin, modeemi jne.), kaksoisnapsauta sitä, jolloin näemme tähän tyyppiin kuuluvat laitteet. Valitse tarvitsemamme laite ja kaksoisnapsauta sitä. Katso Tietoja-välilehden sarakettayleinen, Laitteen tila. Jos laitteen toiminnassa on ongelma, se näytetään tässä virhekoodina. Joten näemme numeroita ja lukuja. Mitä he tarkoittavat? Alla on täydellinen luettelo virheistä sekä lyhyt kuvaus virheestä ja mahdollisista ratkaisuista. Virhekoodi on korostettu punaisella, sen kuvaus sinisellä ja ratkaisu mustalla.

Koodi 1Laitteen asennuksessa on ongelma, asetukset ovat virheelliset tai ohjain puuttuu. Napsauta painiketta Päivitä ohjain , käynnistääksesi ohjatun toiminnonLaitteistopäivitys . Jos ohjainta ei ole ollenkaan, asenna se.

Koodi 3Laiteohjain on vaurioitunut tai RAM-muisti ei riitä laitteen toimimiseen.1. Poistetaan vaurioitunut ohjain ja asennetaan uusi. Voit tehdä tämän seuraavasti: Ominaisuudet - Ohjain - Poista ja noudata sitten ohjatun toiminnon ohjeita. Käynnistä uudelleen. Avataan taasLaitehallinta Toiminta Päivitä laitteistokokoonpano ja noudata mestarin ohjeita. 2. Jos ongelma johtuu virtuaalimuistin puutteesta, sulje käynnissä olevat sovellukset vapauttaaksesi muistia. Tarkistaaksemme muistin tilan, johon meidän on mentäväTehtävienhallinta , tehdä tämä painamalla pikanäppäintäCtrl+Shift+Esc.Näemme virtuaalisen muistin asetukset napsauttamalla hiiren kakkospainikkeellaTietokoneeni Ominaisuudet - Lisäasetukset - Suorituskyky - Asetukset (valinnat) . Voit yrittää lisätä swap-tiedostoa (kuvasin, kuinka tämä tehdään yhdessä aiemmista blogiartikkeleistani), mutta tämä ei ole kaukana radikaalista toimenpiteestä. Sinun on lisättävä RAM-muistia. Kuinka tämä tehdään, on erillinen aihe tämän postauksen ulkopuolella.

Koodi 10Rekisteriosiossa on laitetta vastaava parametriFailReasonString,tämän parametrin arvo näkyy virhetiedoissa, eli jos parametria ei sellaisenaan ole, tulee virhekoodi, eli laitetta ei voida käynnistää. Päivitä ajuri kuten yllä. Tai asenna uudempi.

Koodi 12Tämä laite ei vaadi resursseja. Poista käytöstä muut toimivat laitteet, ainakin yksi, tehdäksesi tämän käyttämällä ohjattua vianetsintätoimintoa, joka, jos noudatat sen ohjeita, poistaa ristiriitaisen laitteen käytöstä. (Muistutan teitä lyhyesti: Ominaisuudet - Yleistä - Vianetsintä.)

Koodi 14Vaatii tietokoneen uudelleenkäynnistyksen, jotta tämä laite toimii.

Koodi 16On mahdotonta tunnistaa laitteen toimintaan tarvittavia resursseja. Laite ei ole täysin konfiguroitu. Sinun on määritettävä lisäresursseja laitteelle. Mutta tämä voidaan tehdä ilman ongelmia, jos laite kuuluuPlug and Play.

Ominaisuudet - Resurssit. Jos resurssiluettelossa on resurssi, jonka merkki on ?, määritä se valitulle laitteelle valitsemalla se. Jos resurssia ei voi muuttaa, napsautaVaihda asetuksia , jos tämä toiminto ei ole käytettävissä, poista valintaAutomaattinen asetus

Koodi 18Asenna laiteohjain uudelleen. Yritämme päivittää ohjaimen tai poistaa sen ja tehdä sen kuten esimerkissäkoodi 3.

Koodi 19Rekisterissä ei ole riittävästi tietoa laitteen asetuksista tai asetukset ovat vioittuneet. JuostaOhjattu vianetsintätoiminto ja seuraa hänen ohjeitaan. Jos se ei auta, asenna laite uudelleen yllä mainitulla tavalla. (koodi 3). Tai jos se ei auta, lataaViimeisin tunnettu hyvä kokoonpano. Jos tämä ei auta, tarvitset asiantuntijan apua, aivan kuten sinun täytyy muokata järjestelmärekisteriä. Ilman tietoa ja kokemusta et voi tehdä mitään itse, mikä tahansa järjestelmänvalvoja vahvistaa tämän sinulle. Hän, joka tietää ja osaa, osaa tehdä sen itse, ilman minua. Ja kokemattomalle on parempi olla yrittämättä. Rekisteri on käyttöjärjestelmän sydän ja vain kokenut asiantuntija tai hänen valvonnassaan saa suorittaa toimenpiteitä sillä. En halua loukata ketään millään tavalla, mutta jos et ole työskennellyt järjestelmärekisterin kanssa ja jos arvostat tietokonettasi, neuvoni on unohtaa tie sinne. En kirjoita ammattilaisille, he eivät tarvitse sitä, vaan tavalliselle käyttäjälle. Tietysti voin kirjoittaa, miten ja mitä siellä tehdään, mutta tämä on manuaalinen selitys ja jos vaurioitat tietokonettasi pienimmänkin virheen seurauksena, olen syyllinen. En tarvitse tätä ollenkaan, etkä sinäkään.

Koodi 21 Laitetta poistetaan järjestelmästä, eli käyttöjärjestelmä yrittää poistaa laitetta, mutta prosessi ei ole vielä valmis.


Pysäytä muutama sekunti ja paina näppäintä


Koodi 22 Laite on poistettu käytöstä. Laitteen on oltava päällä.Toimi - Ota käyttöön ja noudata lisäohjeita.


Koodi 24 Laite puuttuu tai asennettu väärin, ajurissa on toimintahäiriö, laite on ehkä valmisteltu poistettavaksi. Irrota laite ja asenna se uudelleen.


Koodi 28 Ei kuljettajaa. Asenna ohjain. Tätä varten sinun on päivitettävä ohjain ja noudatettava koodin 1 ohjeiden ohjeita.


Koodi 29Laite poistettu käytöstä . Sinun on annettava laitteen toimia asetuksetBIOSLue laitteen käyttöohjeet.


Koodi 31Järjestelmä ei voinut ladata tämän laitteen ohjaimia . Päivitä ajurit yllä kuvatulla tavalla.


Koodi 32Tämän laitteen ohjain on poistettu käytöstä järjestelmärekisterissä . Poista ja asenna ohjain uudelleen (kuvattu yllä)


Koodi 33Käyttöjärjestelmä ei voi määrittää resursseja tähän laitteet . Asenna laite tai vaihda se.


Koodi 34Käyttöjärjestelmä ei pysty tunnistamaan asetuksia laitteet . Tarkista laitteen mukana toimitetut asiakirjat ja määritä asetukset manuaalisesti Resurssit-välilehdellä.


Koodi 35PC:n laiteohjelmistolla ei ole tarvittavia tietoja oikein laitteen toimintaa . Pitää päivittääBIOS.Ohjeita tämän tekemiseen saat toimittajaltasi tai vielä parempaa, käytä kokeneen teknikon palveluita.


Koodi 36Laite vaatii keskeytyksen toimiakseen.PCIja laite on määritetty keskeyttämäänON,tai päinvastoin . Asetuksia on muutettavaBIOSota yhteyttä kokeneeseen teknikkoon.


Koodi 37Käyttöjärjestelmä ei tunnista tämän laitteen ohjainta . Asenna ohjain uudelleen (kuvattu yllä).


Koodi 38Käyttöjärjestelmä ei voi ladata laitteen ohjainta, koska ajurin edellinen versio säilyy muistissa . Sinun on käynnistettävä tietokoneesi uudelleen. Suorita ohjattu vianmääritystoiminto, jos se ei käynnisty (Ominaisuudet - Yleiset - Vianetsintä) ja noudata ohjatun toiminnon ohjeita. Sen jälkeen on pakollinen uudelleenkäynnistys.


Koodi 39Käyttöjärjestelmä ei voi ladata laiteohjainta. Kuljettaja on vaurioitunut tai sitä ei ole ollenkaan . Asenna ohjain uudelleen yllä kuvatulla tavalla.


Koodi 40Laitteisiin ei pääse käsiksi, koska järjestelmärekisterissä ei ole tietoja tai tiedoissa on virhe . Asenna ohjain uudelleen.


Koodi 41Laitetta ei havaittu . Suorita ohjattu vianmääritystoiminto (kuvattu yllä), jos se ei auta, päivitä laitteistokokoonpano (katso yllä) tai päivitä ohjain. Jos ei, asenna uudempi versio ohjaimesta.


Koodi 42Järjestelmässä on jo tällainen ajuri. Eli kahdella eri laitteella on sama nimi, mahdollisesti virheen vuoksi . Käynnistä tietokone uudelleen.


Koodi 43Laitteen pysäyttäminen sen toimintaongelmien vuoksi . Suorita ohjattu vianmääritystoiminto ja noudata sen ohjeita.


Koodi 44Sovellus tai palvelu on pysäyttänyt laitteesi . Käynnistä tietokone uudelleen.


Koodi 45Laitetta ei ole yhdistetty . Yhdistä laitteesi.


Koodi 46Tämä virhe ilmenee, kun käyttöjärjestelmä sammuu. Sinun ei tarvitse tehdä mitään, kun seuraavan kerran käynnistät käyttöjärjestelmän, kaikki toimii.


Koodi 47 Laite on valmisteltu turvalliseen poistoon, mutta sitä ei ole vielä poistettu (esimerkiksi flash-asema) . Irrota laite, yhdistä sitten uudelleen ja käynnistä tietokone uudelleen.


Koodi 48Laite tai pikemminkin sen ohjelmisto on estetty . Päivitä ohjain tai asenna uusi.


Koodi 49Laitetta ei voida käynnistää, koska siinä on suuri järjestelmärekisterirakenne, joka ylittää hyväksyttävät rekisteriparametrit . Poista käyttämättömät laitteet rekisteristä. Voit tehdä tämän: Laitehallinta - Näytä - Näytä piilotetut laitteet. Täällä näet piilotetut laitteet, joita ei ole yhdistetty tietokoneeseesi. Valitse poistettavat laitteet, napsauta laitteen ominaisuudet - Ohjain - Poista, noudata ohjatun toiminnon ohjeita ja käynnistä tietokone lopuksi uudelleen.


Opas virusten poistamiseen tietokoneesta omin käsin. Kaikki todella toimivat ja käytännössä testatut virusten poistomenetelmät, vaiheittaiset ohjeet kuvilla - yksinkertaista ja koululaisellekin saatavilla + video-opetusohjelmat + ultraiso-ohjelma luodaksesi latausohjelmia + hyödyllisiä linkkejä työkaluihin virusten torjunnassa. Lataa arkisto

Muistin varaaminen Windows 9x:ssä ja Windows NT:ssä. Windows 7 Resource Monitor Tutki muistiin liittyviä kohteita ja välilehtiä. Windows 7 Resource Monitorin käyttäminen muistin varauksen valvontaan. Sivutustiedoston (virtuaalimuistin) koon suurentaminen. Muistin tarkistaminen Windowsin avulla.

3.1. Muistin varaaminen Windows 9x:ssä

Windows 9x -käyttöjärjestelmä on 32-bittinen monisäikeinen käyttöjärjestelmä, jossa on ennaltaehkäisevä moniajo ja graafinen käyttöliittymä. Käynnistykseen he käyttävät MS-DOS 7.0:aa, joka tarjoaa kaksi prosessorin toimintatilaa - todellisen (BootGUI=0 on kirjoitettu MSDOS.SYS-tiedostoon) ja suojatun (BootGUI=1). Suojattu tila asennetaan välittömästi ennen Windows 9x:n käynnistystä, minkä seurauksena prosessori alkaa hallita muistia sivutusmekanismilla virtuaalisten osoitteiden muuntamiseksi fyysisiksi. Virtuaalinen osoiteavaruusalue koostuu 4 kilotavun sivuista, jotka sijaitsevat RAM-muistissa tai levyllä.

Kaikki prosessit käyttävät yhdessä virtuaalisen osoiteavaruuden alempia osoitteita yhteensopivuuden varmistamiseksi reaaliaikaisten laiteajureiden, paikallisten Windows-ohjelmien jne. kanssa. Tämä on toisaalta kätevää, mutta toisaalta heikentää luotettavuutta (yksi käyttöjärjestelmän tärkeimmistä ominaisuuksista), koska mikä tahansa prosessi voi vioittaa näissä osoitteissa olevia komponentteja.

Jokainen 32-bittinen Windows-sovellusohjelma toimii omassa osoiteavaruudessaan, mutta pääsy tarvittaviin osoitteisiin on mahdollista, ts. virtuaalisten osoitteiden järjestäminen ei käytä kaikkea mikroprosessorin sisäänrakennettua laitteistosuojausta. 16-bittiset ohjelmat jakavat yhteisen osoiteavaruuden ja ovat myös haavoittuvia toisilleen. Windows 9x -muistimalli on esitetty kuvassa 3.1.

Riisi. 3.1. OP-jakelut Windows 9x:ssä

OP:n alempi 64 KB ei ole 32-bittisten ohjelmien käytettävissä, mutta 16-bittiset ohjelmat voivat kirjoittaa tietonsa tähän. Alle 4 Mt:n osoitteet kartoitetaan kunkin sovellusohjelman osoiteavaruuteen, ja ne jaetaan kaikkien prosessien kesken. Tämä tekee tästä alueesta alttiita tahattomille kirjoituksille.

Pienin vaadittava muistimäärä Windows 9x:n toimintaan on 4 Mt, mutta tällä määrällä muistia on käytännössä mahdotonta työskennellä. Sivun tiedosto , jonka avulla virtuaalimuistimekanismi toteutetaan, sijaitsee Windows-hakemistossa ja sen koko on muuttuva, järjestelmä itse muuttaa sitä tarvittaessa. Sen mitat voidaan asettaa järjestelmätyökaluilla (Ohjauspaneeli → Järjestelmä → Suorituskyky → Tiedostojärjestelmä) tai määrittää tiedoston SYSTEM.INI-osiossa - aseman ja tiedostonimen osoittavat rivit:

Pagingfive=c:\PageFile.sys

MinPagingFileSize=65536 (64 Mt)

MaxPagingFileSize=262144 (256 Mt)

Ensimmäinen ja toinen rivi määrittelevät tiedoston nimen ja sen sijainnin, ja kaksi viimeistä - sivutiedoston alku- ja enimmäiskoko kilotavuina.

Sivutustiedoston vähimmäiskoko voidaan saada suorittamalla SysMon (System Monitor) ja valitsemalla sivutustiedoston koko ja vapaan muistin määrä vaadituiksi parametreiksi, jotta voidaan arvioida eniten käytettyjen sovellusten muistitarve.

3.2. Muistin varaus Windows NT:ssä

Jakelujärjestelmän ja Windows 9x:n väliset erot ovat seuraavat:

1) mikroprosessorin laitteistomuistin suojauksen vakavampi käyttö;

2) kaikki järjestelmäohjelmistomoduulit sijaitsevat omissa virtuaalisissa osoiteavaruuksissaan, eivätkä sovellusohjelmat pääse niihin käsiksi.

Osoitetilan jakautuminen Windows NT:ssä on esitetty kuvassa. 3.2.

Riisi. 3.2. OP-jakelut Windows NT:ssä

Sovellusohjelmille on varattu 2 Gt paikallista (omaa) lineaarista (strukturoimatonta) osoiteavaruutta (ensimmäiset 64 kt eivät ole käytettävissä). Ne on eristetty toisistaan ​​ja voivat kommunikoida keskenään vain leikepöydän kautta tai DDE (Dynamic Data Exchange) ja OLE (Object Linking and Embedding) -mekanismien kautta.

2 Gt:n alueen yläosa sisältää koodin järjestelmä DLL:ille (dynaamisesti linkitetyille kirjastoille), jotka toimivat palvelinprosesseina. He tarkistavat kyselyparametrien arvot, suorittavat pyydetyn toiminnon ja lähettävät tulokset takaisin kutsuvan ohjelman osoiteavaruuteen.

Osoitealueella 2-4 Gt on Windowsin järjestelmäkomponentteja (matalan tason) (eli korkein suojan taso luvatonta käyttöä vastaan: ydin, säikeen ajoitus, muistinhallinta).

16-bittisille Windows-sovelluksille WOW (Windows On Windows) -istunnot toteutetaan ennaltaehkäisevässä moniajotilassa, yksittäin omissa osoiteavaruuksissaan tai yhdessä jaetussa osoiteavaruudessa.

Kun sovellus käynnistetään, luodaan prosessi, jossa on oma tietorakenne, jonka sisällä tehtävä käynnistetään. Se voi suorittaa muita tehtäviä. Seurauksena on moniajo-toimintatapa.

Muistinhallinnan (allokointi, varaus, vapauttaminen, haku) suorittaa VMM-virtuaalimuistin hallinta (Virtual Memory Manager). Jokainen virtuaalinen sivu siirretään fyysiselle sivulle - sivukehykseen, joka on alun perin täytetty nolilla (tämä on C2-tason turvajärjestelmästandardin päävaatimus, joka määrittää sen, että niiden aikaisempaa sisältöä ei voi käyttää muilla prosesseilla). Sivunvaihtoa varten on varattu tilaa sivutiedostossa Pagefile.sys, joka on varattu levytilalohko.

Kaikki Windows NT -muisti on jaettu varattu(dynaamiseen käyttöön prosesseissa tehtäviä suoritettaessa), omistettu(joille lataaminen on varattu Pagefile.sys:ssä) ja saatavilla(loppu vapaasta muistista).

      Virtuaalimuisti Windowsissa

Yleisin syy Windows-pohjaisen järjestelmän hidastumiseen on fyysisen muistin täyttyminen. Samaan aikaan Windows aloittaa niin kutsutun "hakutoiminnon" - koodi- ja ohjelmatietojen lohkojen siirtämisen (jokaista tällaista lohkoa kutsutaan sivuksi) fyysisestä muistista kiintolevylle. Sivutiedoston käyttäminen ajoittain on normaalia, eikä se heikennä järjestelmän suorituskykyä, mutta toistuva tietopyyntö levyllä olevasta tiedostosta voi merkittävästi vähentää järjestelmän yleistä nopeutta. Tämä ongelma on erityisen havaittavissa, kun vaihdetaan useiden muistiintensiivisten ohjelmien välillä tietokoneessa, jossa ei ole tarpeeksi fyysistä muistia. Tämän seurauksena levy on lähes jatkuvasti käytössä, koska järjestelmä yrittää "pumppata" tietoja siitä muistiin ja takaisin.

Jos varatun muistin kokonaiskoko ylittää fyysisen muistin kokonaismäärän, Windowsin on "pumppattava" sivuja nopean RAM-muistin ja sivutiedoston paljon hitaamman virtuaalimuistin välillä, mikä saa järjestelmän hidastumaan.

Windows XP:n asennuksen aikana sivutustiedosto luodaan automaattisesti juurikansioon samalle asemalle, jossa Windowsin järjestelmätiedostot sijaitsevat. Sivutustiedoston koko määräytyy järjestelmän fyysisen muistin määrän perusteella. Oletuksena sivutiedoston vähimmäiskoko on 1,5 kertaa fyysisen muistin määrä ja enimmäiskoko on 3 kertaa koko. Swap-tiedosto näkyy Explorer-ikkunassa, jos otat käyttöön piilo- ja järjestelmätiedostojen näyttötilan (kuva 3.3).

Riisi. 3.3. Salli piilotettujen ja järjestelmätiedostojen näyttämisen

Yleensä Windows-käyttöjärjestelmä itse asettaa optimaalisen määrän virtuaalimuistia ja se riittää useimpiin tehtäviin, mutta jos tietokoneessa on paljon muistia vaativia sovelluksia, niin virtuaalimuistin määrää voidaan muuttaa.

Tätä varten sinun on suoritettava seuraava toimintosarja:

1. Kirjaudu järjestelmään järjestelmänvalvojat-ryhmän tilillä ja avaa "Ohjauspaneeli - Järjestelmä" -ikkuna.

2. Napsauta "Lisäasetukset"-välilehden "Suorituskyky"-osiossa "Asetukset"-painiketta (Kuva 3.4).

3. Valitse Suorituskykyasetukset-valintaikkunassa Lisäasetukset-välilehti ja napsauta Muuta-painiketta (Kuva 3.5) näyttääksesi Virtual Memory -valintaikkunan, joka näkyy kuvassa 3.5. 3.6 Windows XP:lle ja kuvassa 3.7 Windows 7:lle.

Nykyiset sivutustiedoston asetukset näkyvät "Kaikkien asemien sivutustiedoston kokonaiskoko" -kentässä.

4. Valitse mikä tahansa asema valintaikkunan yläosassa olevasta luettelosta määrittääksesi aseman asetukset.

Voit muuttaa seuraavia asetuksia:

- Erikoiskoko. Syötä arvo kenttään Alkuperäinen koko asettaaksesi pagefile.sys-tiedoston alkuperäisen koon määritetyllä levyllä (megatavuina). Kentällä Suurin koko syötä numero, joka on vähintään kenttään arvo Alkuperäinen koko, mutta enintään 4096 Mt (4 Gt).

- Koko järjestelmävalinnan mukaan. Valitse tämä vaihtoehto, jos haluat ottaa käyttöön tämän aseman sivutustiedoston koon dynaamisen hallinnan. Valitse tämä vaihtoehto, jos et halua muuttaa Windowsin tarjoamia oletusasetuksia.

- Ei swap-tiedostoa. Käytä kaikissa asemissa, joissa et tarvitse sivutiedostoa. Varmista, että vähintään yhdessä asemassa on swap-tiedosto.

5. Kun olet tehnyt muutokset, napsauta Aseta tallentaa muutokset.

6. Toista vaiheet 4 ja 5 muille asemille (tarvittaessa). Napsauta OK sulkeaksesi valintaikkunan, kun olet valmis.

Riisi. 3.4. "Asetukset"-painike siirtyäksesi katseluun ja/tai

virtuaalimuistin parametrien muuttaminen

Riisi. 3.5. "Muuta" -painike siirtyä muuttamaan virtuaalimuistin asetuksia Windows XP:ssä (vasemmalla) ja Windows 7:ssä

Riisi. 3.6. Ikkuna virtuaalimuistin koon tarkastelua ja asetusta varten

Riisi. 3.7. Ikkuna virtuaalimuistin koon tarkastelua ja asetusta varten Windows 7:ssä

Jos tietokoneessasi on useita fyysisiä levyjä, on parasta sijoittaa sivutiedosto nopein, ja on suositeltavaa, jos Windowsin järjestelmätiedostot sijaitsevat toisella levyllä. On vielä parempi jakaa sivutiedosto useaan osaan fyysistä levyt, koska levyohjain voi käsitellä useita kirjoitus- ja lukupyyntöjä rinnakkain.

Älä yritä sijoittaa sivutustiedostoa yhden fyysisen aseman useille loogisille asemille!!!

Jos järjestelmässä on yksi kiintolevy, joka on jaettu osioon C, D ja E ja sivutiedosto on jaettu useisiin osioihin, järjestelmä voi jopa hidastua, koska tässä kokoonpanossa kiintolevyn magneettipäiden on luettava tietoja useita alueita, eikä yhdeltä levyn alueelta.

Jos pienennät sivutustiedoston vähimmäis- tai enimmäiskokoa ja luot uuden sivutustiedoston levylle, sinun on käynnistettävä järjestelmä uudelleen, jotta muutokset tulevat voimaan. Sivutiedoston koon kasvattaminen ei yleensä vaadi tietokoneen uudelleenkäynnistystä.

Jos sinulla on paljon fyysistä muistia, saatat tuntea houkutusta poistaa sivutiedosto kokonaan käytöstä. Älä tee sitä! !!

Windows XP on suunniteltu käyttämään sivutiedostoa joidenkin ydintehtävien suorittamiseen, joten jotkin kolmannen osapuolen ohjelmat voivat ilmoittaa muistin vähistä yrittäessään poistaa virtuaalimuistin kokonaan käytöstä.

Windows ei käytä sivutiedostoa ennen kuin sitä tarvitaan, joten virtuaalimuistin poistaminen käytöstä ei paranna suorituskykyä!!!

Windows voi dynaamisesti suurentaa sivun tiedostokokoa tarpeen mukaan. Tämä toiminto toimii vain, kun valitset " Järjestelmän koko valittavissa", sekä määritettäessä enimmäiskokoa, joka on suurempi kuin sivutiedoston nykyinen koko.

Aiemmista Windows-versioista saatujen kokemusten perusteella jotkut käyttäjät yrittävät luoda kiinteäkokoisen sivutustiedoston, jonka alku- ja enimmäiskoot ovat samat. Teoriassa tämän pitäisi parantaa suorituskykyä, koska se eliminoi sivutiedoston pirstoutumisen mahdollisuuden. Sivutusalijärjestelmä on kuitenkin suunniteltu niin, että käytännössä tiedosto vie vain suuria levytilalohkoja, mikä tekee pirstoutumisesta minimaalisen. Saatat huomata pienen suorituskyvyn heikkenemisen, kun Windows lisää sivutiedoston kokoa, mutta tämä on kertaluonteinen toimenpide, eikä sillä ole vaikutusta keskimääräiseen suorituskykyyn.

      Muistin käytön seuranta Windowsissa

Helpoin tapa saada selville, kuinka paljon RAM-muistia kulloinkin käytetään, on avata Tehtävienhallinta napsauttamalla ++ ja siirtymällä "Suorituskyky"-välilehdelle (kuva 3.8). Yksityiskohtainen kuvaus Windows XP:n "Suorituskyky"-välilehden tiedoista on esitetty taulukossa. 3.1.

Taulukko 3.1. Task Manager -tietojen salauksen purku

Windows7:n Suorituskyky-välilehdellä on merkittäviä innovaatioita verrattuna vastaavaan Windows XP Task Managerin välilehteen.

"Physical Memory" -osion "Total" -sarakkeessa oleva numero ilmaisee tämän järjestelmän RAM-muistin kokonaismäärän. Välimuistissa oleva sarake näyttää järjestelmän resurssien äskettäin käyttämän fyysisen muistin määrän. Se säilyy välimuistissa siltä varalta, että järjestelmä tarvitsee sitä uudelleen, mutta on muiden prosessien käytettävissä. Uusi "Käytettävissä"-sarake osoittaa tällä hetkellä käyttämättömän fyysisen muistin määrän ja "Vapaa"-sarake osoittaa välimuistin käyttämän muistin määrän, mutta se ei sisällä hyödyllistä tietoa.

"Ydinmuisti" -osiossa on kaksi saraketta - "Paged" ja "Nonpaged". Yhdessä ne osoittavat kuinka paljon muistia ydin käyttää. Sivuttu on virtuaalimuisti ja ei-sivuttu fyysinen muisti.

"Järjestelmä"-osiossa ilmestyi sarakkeita "Kahvoja" ja "Säikeitä", jotka liittyvät prosessien osakomponentteihin. "Descriptors" -sarake ilmaisee käynnissä olevien prosessien käyttämien objektitunnisteiden (kuvaustekijöiden) määrän. Säikeet-sarake näyttää suuremmissa prosesseissa käynnissä olevien aliprosessien määrän. Prosessit-sarakkeen numero ilmaisee tietysti käynnissä olevien prosessien kokonaismäärän, joka näkyy "Prosessit"-välilehdellä.

"Up Time" -sarake näyttää, kuinka kauan on kulunut tietokoneen viimeisestä käynnistyskerrasta. "Sitoudu"-sarake sisältää tietoja sivutustiedostosta. Ensimmäinen numero ilmaisee tällä hetkellä käytössä olevan fyysisen ja virtuaalisen muistin kokonaismäärän ja toinen numero periaatteessa tietyn tietokoneen kokonaismuistin määrän.

Tarkempia tietoja saat napsauttamalla “Resource Monitor” -painiketta ja valitsemalla “Memory”-välilehden (kuva 3.9).

Riisi. 3.9. Windows 7 Resource Monitor -ikkunan Muisti-välilehti

”Muisti”-välilehdellä on ”Prosessit”-taulukko, jossa luetellaan kaikki käynnissä olevat prosessit ja tiedot kullekin prosessille käytetystä muistista on jaettu useisiin luokkiin (kuva 3.10).

Riisi. 3.10. Prosessitaulukko

Kolumnissa" Kuva" osoittaa prosessin suoritettavan tiedoston nimen. Sovellusten suorittamat prosessit on erittäin helppo tunnistaa - esimerkiksi prosessi “Winword.exe” kuuluu selvästi Wordin tekstieditoriin. Prosessit nimeltä "svchost.exe" edustavat erilaisia ​​käyttöjärjestelmäpalveluita. Palvelun nimi näkyy suluissa prosessin nimen vieressä.

Kolumnissa" Prosessin tunnus» osoittaa prosessin numeron - ainutlaatuinen numeroyhdistelmä, jonka avulla voit tunnistaa käynnissä olevan prosessin.

Sarakkeessa " Valmis" osoittaa virtuaalimuistin määrän kilotavuina, jonka järjestelmä on varannut tätä prosessia varten. Tämä sisältää sekä käytetyn fyysisen muistin että sivutustiedostoon tallennetut sivut.

Sarakkeessa " Toimiva setti" osoittaa prosessin tietyllä hetkellä käyttämän fyysisen muistin määrän kilotavuina. Työsarja koostuu julkisesta ja yksityisestä muistista.

Kolumnissa" Kenraali" osoittaa fyysisen muistin määrän kilotavuina, jonka tämä prosessi jakaa muiden kanssa. Yhden muistisegmentin tai vaihtosivun jakaminen vastaavia prosesseja varten voi säästää muistitilaa. Tämä tallentaa fyysisesti vain yhden kopion sivusta, joka sitten kartoitetaan muiden sitä käyttävien prosessien virtuaaliseen osoiteavaruuteen. Esimerkiksi kaikki järjestelmän DLL-tiedostojen - Ntdll, Kernel32, Gdi32 ja User32 - käynnistämät prosessit käyttävät jaettua muistia.

Sarakkeessa " Yksityinen" ilmaisee yksinomaan tämän prosessin käyttämän fyysisen muistin määrän kilotavuina. Tämän arvon avulla voit määrittää, kuinka paljon muistia tietty sovellus tarvitsee toimiakseen.

Sarakkeessa " Sivu muisti täynnä virheitä/s."Muisti täynnä -virheiden keskimääräinen määrä sekunnissa viimeisen minuutin aikana näytetään. Jos prosessi yrittää käyttää enemmän fyysistä muistia kuin tällä hetkellä on käytettävissä, järjestelmä kirjoittaa osan tiedoista muistista levylle - sivutiedostoon. Levylle tallennettujen tietojen myöhempää käyttöä kutsutaan sivu muistin loppumisesta -virheeksi.

Kun sovelluksia suoritetaan ja tiedostoja käsitellään, muistinhallinta valvoo kunkin prosessin työjoukon kokoa ja tallentaa lisämuistiresursseja koskevat pyynnöt. Prosessin työskentelyjoukon kasvaessa lähettäjä sovittaa nämä pyynnöt ytimen ja muiden prosessien tarpeisiin. Jos käytettävissä oleva osoitetila ei riitä, lähettäjä pienentää työjoukon kokoa tallentamalla tietoja muistista levylle.

Myöhemmin, kun luet näitä tietoja levyltä, tapahtuu sivu muistissa -virhe. Tämä on aivan normaalia, mutta jos virheitä esiintyy samanaikaisesti eri prosesseissa, järjestelmä vaatii lisäaikaa tietojen lukemiseen levyltä. Liian usein tapahtuvat muistin loppumisvirheet heikentävät järjestelmän suorituskykyä. Tämä ilmenee odottamattomina hidastumisina kaikissa sovelluksissa, jotka myös pysähtyvät odottamatta. Hidastuminen johtuu aktiivisesta datan uudelleenjaosta fyysisen muistin ja swapin välillä.

Johtopäätös on seuraava: jos tietyn prosessin muistin loppuminen -virheitä esiintyy liian usein ja säännöllisesti, tietokoneella ei ole tarpeeksi fyysistä muistia.

Voit helpottaa prosessien tarkkailua, jotka aiheuttavat usein muistin loppumisvirheitä, merkitsemällä ne lipuilla. Tässä tapauksessa valitut prosessit siirtyvät luettelon alkuun ja sivulta puuttuvien virheiden kaaviossa ne esitetään oranssina käyränä.

On syytä pitää mielessä, että muistin varaus riippuu useista muista tekijöistä, ja muistin loppumisen virheiden tarkkailu ei ole paras tai ainoa tapa tunnistaa ongelmia. Se voi kuitenkin toimia hyvänä lähtökohtana havainnointiin.

Prosessit-taulukko antaa yksityiskohtaista tietoa muistin allokoinnista yksittäisten prosessien välillä, ja Fyysinen muisti -taulukko antaa yleiskuvan RAM-muistin käytöstä. Sen avainkomponentti on ainutlaatuinen histogrammi, joka näkyy kuvassa. 3.11.


Kuva 3.11. "Fyysinen muisti" -taulukon histogrammi antaa sinulle yleiskatsauksen muistin jakautumisesta Windows 7:ssä

Jokainen histogrammin osa on merkitty omalla värillään ja edustaa tiettyä muistisivujen ryhmää. Kun järjestelmää käytetään, muistinhallinta siirtää tietoja näiden ryhmien välillä taustalla ja ylläpitää herkkää tasapainoa fyysisen ja virtuaalisen muistin välillä varmistaakseen, että kaikki sovellukset toimivat tehokkaasti. Katsotaanpa tarkemmin histogrammia.

Vasemmalla on osa " Varatut varusteet", merkitty harmaalla: tämä on liitetyn laitteen tarpeisiin varattu muisti, jota se käyttää vuorovaikutukseen käyttöjärjestelmän kanssa. Laitteistolle varattu muisti on lukittu, eikä muistinhallinta voi käyttää sitä. Tyypillisesti laitteille varatun muistin määrä vaihtelee 10 - 70 megatavua, mutta tämä luku riippuu tietystä järjestelmäkokoonpanosta ja voi joissain tapauksissa nousta useisiin satoihin megatavuihin.

Varatun muistin määrään vaikuttavia osia ovat:

Emolevyn komponentit - kuten Advanced Programmable I/O Interrupt Controller (APIC);

Äänikortit ja muut laitteet, jotka suorittavat muistikartoitettua syöttöä/lähtöä;

PCI Express (PCIe) -väylä;

Näytönohjaimet;

Erilaisia ​​piirisarjoja;

Flash-asemat.

jakso " Käytetty", merkitty vihreällä, edustaa järjestelmän, ohjainten ja käynnissä olevien prosessien käyttämää muistin määrää. Käytetyn muistin määrä lasketaan arvona " Kaikki yhteensä» miinus indikaattoreiden summa « Muutettu», « Odotus"ja" Vapaa" Arvo puolestaan ​​" Kaikki yhteensä"on indikaattori" Asennettu"miinus indikaattori" Varatut varusteet».