Windowsin muistinhallinnan vian etsintä työkalu (SFC Scanner) by Microsoft

Hiikeri

Team Intel
Liittynyt
13.12.2016
Viestejä
1 952
Tuli vastaan tälläinen artikkeli vajaan 1kk takaa jossa komentokehotteessa ajetaan käsky, joka tutkii onko koneen muistinhallinnassa virheitä?

How to Fix the Memory Management Error in

Onko kenelläkään kokemuksia tuon käytöstä? Itsellä antoi No integrity violations.

Hiikeri_SFC_Scanner.jpg
 
Liittynyt
20.10.2016
Viestejä
6 186
Tuo "sfc /scannow" -komento nyt ei liity mitenkään muistin tarkistukseen vaan tsekkaa onko Windows asennus kunnossa levyllä...

Taasen komento "mdsched.exe" (Test your RAM with Windows Memory Diagnostic tool) on Microsoftin oma muistin skannaus työkalu ja ei kyllä ole kokemusta. Eiköhän se jonkinlaisen tuloksen anna, mutta mielestäni muistin tarkistamiseen kyllä löytyy paremmat kolmannen osapuolen työkalut.
 

Hiikeri

Team Intel
Liittynyt
13.12.2016
Viestejä
1 952
Ei nyt ole kyse muistien testauksesta vaan muistinhallinnasta ja sen rakenteesta.
 

Freeze

Elitisti
Team Folding @ Home
Liittynyt
17.10.2016
Viestejä
2 108
No SFC ei kuitenkaan muisteja tarkista, se voidaan jo rajata ulos.
 

Requiem

For You
Liittynyt
17.10.2016
Viestejä
2 481
Onhan tuota tullut käytettyä XP ajoista lähtien. Muistiongelma, pienikin, korruptoi ajan kanssa tiedostoja. Samoin sähkökatkot yms. jumittelut.
 
Liittynyt
06.10.2017
Viestejä
675
SFC (System File Scanner) ei taida nykyisin tehdä paljoakaa, DISM (Deployment Image Servicing and Management) komennolla nuita windowsin tiedostoja tullut enempi korjailtua. SFC saattaa valittaa, että tiedosto ei vastaa oletettua, mutta vain dism avulla saa ladattua tuon windowsin haluaman muotoisen tiedoston.
 
Viimeksi muokattu:

Hiikeri

Team Intel
Liittynyt
13.12.2016
Viestejä
1 952
SFC (System File Scanner) ei taida nykyisin tehdä paljoakaa, DISM (Deployment Image Servicing and Management) komennolla nuita windowsin tiedostoja tullut enempi korjailtua. SFC saattaa valittaa, että tiedosto ei vastaa oletettua, mutta vain dism avulla saa ladattua tuon windowsin haluaman muotoisen tiedoston.
No tuollaista jotain fiksua kommenttia olen hakenutkin koska ainakin minulle on uusi asia tuollainen Windowsin muisti rakenteen tarkistus ja sen mahdollinen korjaus.

Tuokin tarkistus ymmärtääkseni koskee lähinnä jos Winukan muistin hallintaan on tehty muutoksia, esimerkiksi automaattinen virtuaalinen muisti otettu kokonaan pois käytöstä koska käyttäjä luulee että hänen 32Gb fyysisellä muistilla hän ei enää tarvitse page-fileä ollenkaan? Tai että se on rajoitettu esim. 4Gb kokoiseksi "virtuaali" muistiksi, kyseessä siis Winukan muistinhallinnan rakenne.

Tuollaista asian laitaa tarkoitin ja luullakseni tuokin tarkistus on tarkoitettu sitä varten?

Koska en tiedä, siksipä laitoinkin aiheen kysymyksen ja kysynkin viisaammilta. Peace.

Muistiongelma, pienikin, korruptoi ajan kanssa tiedostoja. Samoin sähkökatkot yms. jumittelut.
Fyysinen muisti ei ole missään tapauksessa nyt kyseessä, unohtakaa jo se. Nyt on kyse Winukan muistinhallinnan rakenteesta ja sen mahdollisista ongelmista, joka on softaa eikä mitää hardista.
 
Liittynyt
18.03.2017
Viestejä
509
Tuon Hiikerin aloituksessa linkkaaman artikkelin idea oli siis se, että jos Windows kaatuu toistuvasti ja sininen ruutu / WhoCrashed tms. kertoo syylliseksi "Memory_Management", silloin on epäilys että jokin Windowsin järjestelmätiedosto on rikki ja virheen takia esim. jokin ajuri yrittää lukea/kirjoittaa sellaista muistialuetta josta sen kuuluisi pitää näppinsä erossa, tai pahimmassa tapauksessa rikkinäinen Windowsin ydintiedosto jossain tapauksessa kirjoittelisi prosessorin muistinhallintataulukkoon puutaheinää.

Muistinhallinnan järkevyyttä valvoo koko ajan rautatasolla prosessorin muistinhallintayksikkö (Memory Management Unit eli MMU), käyttöjärjestelmän tekemien taulukkojen perusteella. Jos mikä tahansa prosessi koneessa yrittää tehdä jotain mikä ei ole näiden taulukkojen mukaan juuri siinä tilanteessa OK, MMU aiheuttaa keskeytyksen, jolloin ko. prosessoriydin hyppää käyttöjärjestelmän rutiiniin jossa tutkitaan tilannetta vähän tarkemmin. Kyseessä voi olla vaikka normaali tilanne jossa aikaisemmin muistissa ollutta dataa on siirretty käytön vähyyden ja akuutimman muistintarpeen takia sivutustiedostoon, ja silloin keskeytysrutiini käynnistää datan haun sivutustiedostosta takaisin muistiin, ja vasta sen jälkeen päästää prosessin jatkamaan keskeytynyttä toimintoa.

Mutta jos käyttöjärjestelmän muistinhallintakeskeytyksen käsittelyrutiini ei löydä mitään "kelvollista" syytä muistinhallintakeskeytykselle, tilanne käsitellään virheenä, ja jos keskeytyksen aiheuttaja on jokin selkeästi tunnistettava prosessi, sen ajoa ei jatketa vaan ilmoitetaan käyttäjälle että "prosessi x teki muistinkäsittelyvirheen ja kaatui" ja siivotaan prosessin jämät muistista. Jos näin "kaadettu" prosessi oli käyttöjärjestelmään kuuluva ajuri tai palvelu, Windows voi joissain tapauksissa käynnistää sen automaattisesti uudelleen ja toiminta voi jatkua.

Mutta jos muistinhallintavirheelle ei löydy selkeästi osoitettavaa syyllistä, tai syy on käyttöjärjestelmän ytimen ohjelmakoodissa, silloin koko käyttöjärjestelmän tila on epäilyksenalainen: ei voida tietää yrittikö ohjelmakoodi tehdä jotain päätöntä, vai oliko koodi itse asiassa täysin järkevää mutta muistinhallintataulukoissa itsessään virhe? Silloin mennään toiseksi viimeiseen vaihtoehtoon, eli tuotetaan "Memory_Management" bluescreen-virheilmoitus ja kaadetaan koko käyttöjärjestelmä.

Jos sekään ei onnistu vaan aiheuttaa uuden muistinhallintakeskeytyksen jota ei pystytä selvittämään, vihoviimeinen vaihtoehto on sitten se, että MMU resetoi koko prosessorin rautatasolla, jolloin kone vain yksinkertaisesti boottaa ilman varsinaista virheilmoitusta tai ennakkovaroitusta (ns. triple fault handler joka on sisäänrakennettu prosessorin rautaan). Uudelleen käynnistyessään Windows sitten huomaa että edellisellä kierroksella jotain meni ilmeisesti pahasti pieleen.

Tästä kaikesta seuraa se, että muistinhallintataulukot käytännössä "elävät" jatkuvasti niin, että jonkinlaisen ylimääräisen tarkastuksen tekeminen niille edellyttäisi kaiken muun toiminnan jäädyttämistä vähintään siksi aikaa että koneen muistin tilasta saadaan otettua täydellinen kopio. Nykyisissä koneissa on useita prosessoriytimiä, joten ne voivat ihan oikeasti tehdä useita asioita yhtä aikaa: jos tarkistusta yritettäisiin ilman täysjäädytystä, jokin toinen ydin voisi samaan aikaan tehdä jotakin muuta joka aiheuttaa muutoksen taulukon loppupäähän samalla kun alkupäätä vielä tarkastetaan, ja lopputulos olisi aina "tässä on jotakin pielessä".

Ja siksi ajatus "muistinhallinnan rakenteen tarkastamisesta" noin vain ilman esim. toista konetta ja rautatason debuggeria on aika hankala toteuttaa. Tuo linkitetty artikkelikin lähtee siitä ajatuksesta, että itse virheen etsimisen sijasta käydään läpi "muistinhallinnan rakenteen virheiden" todennäköiset alkusyyt ja tarkistetaan ne.

Juuri siitä on "sfc /scannow"-komennossa kysymys: se tarkistaa järjestelmätiedostojen kunnon, jotta voidaan sulkea pois se mahdollisuus että viallisessa järjestelmätiedostossa oleva rikkinäinen ohjelmakoodin pätkä aiheuttaisi muistinhallintavirheitä.
 
Toggle Sidebar

Statistiikka

Viestiketjut
237 484
Viestejä
4 163 893
Jäsenet
70 414
Uusin jäsen
O&G

Hinta.fi

Ylös Bottom