Memorija grešaka na stranici Windows 7. Kodovi grešaka upravitelja uređaja. Nadgledanje upotrebe memorije u Windows-u

U svom posljednjem članku "" govorio sam o mogućnostima Windows 7 Resource Monitora (Resource Monitor), objasnio kako ga koristiti za praćenje distribucije sistemskih resursa između procesa i usluga, a također spomenuo da se može koristiti za rješavanje specifičnih probleme - na primjer, za analizu potrošnje memorije. Upravo o tome će se raspravljati u ovom članku.

Malo o pamćenju

Prije početka analize, ukratko ću govoriti o tome kako se kontrolira pamćenje. Ovo će vam olakšati razumijevanje koje su informacije predstavljene u Windows 7 Resource Monitoru.

Windows 7 Memory Manager kreira virtuelni memorijski sistem koji se sastoji od dostupne fizičke RAM memorije i datoteke stranice na čvrstom disku. Ovo omogućava operativnom sistemu da dodijeli memorijske blokove (stranice) fiksne dužine sa sekvencijalnim adresama u fizičkoj i virtuelnoj memoriji.

Pokretanje Windows 7 Resource Monitor

Da biste pokrenuli Windows 7 Resource Monitor, otvorite Start meni, upišite "Resmon.exe" u traku za pretragu i kliknite . U prozoru koji se otvori odaberite karticu “Memorija” (slika A).

Slika A: Kartica Memorija u Windows 7 Resource Monitor pruža detaljne informacije o dodjeli memorije.

Tabela procesa

Kartica Memorija ima tabelu Procesi (slika B) koja navodi sve pokrenute procese i razbija upotrebu memorije u nekoliko kategorija.


Slika B: Informacije o upotrebi memorije za svaki proces podijeljene su u nekoliko kategorija.

Kolona "Slika"

U koloni “Slika” je naznačeno ime izvršnu datoteku proces. procesi, pokrenut od strane aplikacija, vrlo je lako saznati - na primjer, proces "notepad.exe" očigledno pripada Notepad-u. Procesi pod nazivom "svchost.exe" predstavljaju različite usluge operativnog sistema. Ime usluge se pojavljuje u zagradama pored naziva procesa.

Stupac ID procesa

Stupac ID procesa (PID) označava broj procesa - jedinstvenu kombinaciju brojeva koja vam omogućava da identifikujete proces koji je u toku.

Kolona "Završeno".

Kolona Urezivanje označava količinu virtuelne memorije, u kilobajtima, koju je sistem rezervisao za ovaj proces. Ovo uključuje i korišćenu fizičku memoriju i stranice pohranjene u datoteci stranične memorije.

Kolona "Radni set"

Kolona Radni skup pokazuje količinu fizičke memorije u kilobajtima koju koristi proces u ovog trenutka vrijeme. Radni set se sastoji od javne i privatne memorije.

Kolona "Općenito"

Stupac za dijeljenje označava količinu fizičke memorije u kilobajtima koju ovaj proces dijeli s drugima. Dijeljenje jednog memorijskog segmenta ili swap stranice za povezane procese može uštedjeti memorijski prostor. Ovo fizički pohranjuje samo jednu kopiju stranice, koja se zatim mapira u virtuelni adresni prostor drugih procesa koji joj pristupaju. Na primjer, svi procesi pokrenuti od strane sistema DLL-ovi- Ntdll, Kernel32, Gdi32 i User32 - koriste zajedničku memoriju.

Kolona "privatno"

Kolona Privatno označava količinu fizičke memorije, u kilobajtima, koju koristi isključivo ovaj proces. Ova vrijednost vam omogućava da odredite koliko memorije treba da radi određena aplikacija.

Kolona “Greške zbog nedostatka stranice u memoriji/s.”

U koloni "Greške stranice bez memorije/sek." (Hard Faults/sec) prikazuje prosječan broj grešaka stranica bez memorije u sekundi u posljednjem minutu. Ako proces pokušava da iskoristi više fizičke memorije nego što je trenutno dostupno, sistem upisuje neke od podataka iz memorije na disk - u datoteku stranice. Naknadni pristup podacima sačuvanim na disku naziva se greška stranice bez memorije.

Šta znače greške stranice bez memorije?

Sada kada imate ideju o tome koje su informacije prikupljene u tabeli Procesi, da vidimo kako ih možete koristiti za nadgledanje dodjele memorije. Prilikom pokretanja aplikacija i rada s datotekama, upravitelj memorije prati veličinu radnog skupa svakog procesa i bilježi zahtjeve za dodatnim memorijskim resursima. Kako se radni skup procesa povećava, dispečer usklađuje ove zahtjeve s potrebama kernela i drugih procesa. Ako je raspoloživi adresni prostor nedovoljan, dispečer smanjuje veličinu radnog skupa pohranjivanjem podataka iz memorije na disk.

Kasnije, prilikom čitanja ovih podataka sa diska, dolazi do greške stranice bez memorije. Ovo je sasvim normalno, ali ako se greške javljaju istovremeno za različite procese, sistemu je potrebno dodatno vrijeme za čitanje podataka s diska. Previše česte greške stranica bez memorije posljedično smanjuju performanse sistema. Vjerovatno ste iskusili neočekivana usporavanja u svim aplikacijama, koja su zatim iznenada prestala. Ovo usporavanje je gotovo sigurno bilo zbog aktivne preraspodjele podataka između fizičke memorije i zamjene.

Slijedi zaključak: ako se greške stranice van memorije za određeni proces javljaju prečesto i redovno, računalo nema dovoljno fizičke memorije.

Da biste bili praktičniji za praćenje procesa koji uzrokuju česte greške stranica bez memorije, možete ih označiti zastavicama. U tom slučaju, odabrani procesi će se pomaknuti na vrh liste, a na grafikonu grešaka koje nedostaju na stranici biće predstavljeni narandžastom krivom.

Vrijedi uzeti u obzir da alokacija memorije ovisi o nizu drugih faktora, a praćenje grešaka stranica izvan memorije nije ni najbolje ni jedini način identifikovanje problema. Međutim, može poslužiti kao dobra polazna tačka za posmatranje.

Tabela "Fizička memorija"

Tabela Procesi pruža detaljne informacije o raspodjeli memorije između pojedinačnih procesa, dok tablica Physical Memory daje cjelokupnu sliku Upotreba RAM-a. Njegova ključna komponenta je jedinstveni histogram prikazan na Sl. C.


Slika C: Histogram u tabeli Fizička memorija pruža pregled raspodele memorije u Windows 7.

Svaki dio histograma označen je svojom bojom i predstavlja određenu grupu memorijskih stranica. Kako se sistem koristi, upravitelj memorije je u pozadini premešta podatke između ovih grupa, održavajući delikatnu ravnotežu između fizičke i virtuelne memorije kako bi se osiguralo da sve aplikacije rade efikasno. Pogledajmo pobliže histogram.

Sekcija “Rezervisana oprema”

Na lijevoj strani je odjeljak “Hardver Reserved”, označen sivom bojom: ovo je memorija dodijeljena za potrebe povezanog hardvera, koju koristi za interakciju s operativnim sistemom. Memorija rezervirana za hardver je zaključana i upravitelj memorije joj ne može pristupiti.

Obično se količina memorije dodijeljene opremi kreće od 10 do 70 MB, ali ova brojka ovisi o specifičnoj konfiguraciji sistema i u nekim slučajevima može doseći nekoliko stotina megabajta. Komponente koje utječu na količinu rezervirane memorije uključuju:

;
Komponente matična ploča- na primjer, napredni programabilni kontroler prekida ulaza/izlaza (APIC);
zvučne kartice i drugi uređaji koji obavljaju memorijski mapirani ulaz/izlaz;
PCI Express (PCIe) sabirnica;
video kartice;
razni čipsetovi;
fleš diskovi.

Neki korisnici se žale da njihovi sistemi rezervišu nenormalnu količinu memorije za svoj hardver. Nikada se nisam susreo sa takvom situacijom i stoga ne mogu jamčiti za efikasnost predloženog rješenja, ali mnogi napominju da ažuriranje verzije BIOS-a može riješiti problem.

Odjeljak „U upotrebi“.

Odjeljak U upotrebi, prikazan zelenom bojom, predstavlja količinu memorije koju koriste sistem, upravljački programi i pokrenuti procesi. Količina korišćene memorije izračunava se kao vrednost "Ukupno" umanjena za zbir indikatora "Modifikovano", "Standby" i "Free". Zauzvrat, vrijednost "Ukupno" je indikator "Instalirana RAM" minus indikator "Rezervisana oprema".

Odjeljak "Promijenjeno"

Odjeljak “Izmijenjeno” je istaknut narandžastom bojom, što predstavlja memoriju koja je izmijenjena, ali nije korištena. Zapravo, ne koristi se, ali se može ponovo koristiti u bilo kojem trenutku ako je potrebno. Ako memorija nije korištena duže vrijeme, podaci se prenose u datoteku stranice i memorija prelazi u kategoriju "Čekanje".

Odjeljak "Čekanje"

Odjeljak na čekanju, prikazan plavom bojom, predstavlja memorijske stranice koje su uklonjene iz radnih skupova, ali su i dalje povezane s njima. Drugim riječima, kategorija "Čekanje" je zapravo keš memorija. Memorijske stranice u ovoj kategoriji imaju prioritet od 0 do 7 (maksimalno). Stranice povezane sa procesima visokog prioriteta dobijaju maksimalni prioritet. Na primjer, dijeljeni procesi imaju visoki prioritet, tako da stranicama pridruženim njima se daje najveći prioritet u kategoriji Na čekanju.

Ako proces zahtijeva podatke sa stranice na čekanju, upravitelj memorije odmah vraća tu stranicu u radni skup. Međutim, sve stranice u kategoriji Na čekanju su dostupne za snimanje podataka iz drugih procesa. Kada proces treba dodatna memorija, a nema dovoljno slobodne memorije, menadžer memorije bira stranicu na čekanju s najnižim prioritetom, inicijalizira je i dodjeljuje je procesu koji traži.

Odjeljak "Besplatno"

Kategorija Slobodno, označena plavom bojom, predstavlja stranice memorije koje još nisu dodijeljene nijednom procesu ili su oslobođene kada se proces završi. Ovaj odjeljak prikazuje i neiskorištenu i oslobođenu memoriju, ali u stvari, neiskorištena memorija spada u drugu kategoriju - „Nulte stranice“, koja se tako zove jer su ove stranice inicijalizirane na nulu i spremne za korištenje.

O problemu slobodne memorije

Sada kada imate osnovno razumevanje kako funkcioniše menadžer memorije, hajde da odvojimo trenutak da se pozabavimo uobičajenom zabludom o sistemu upravljanja memorijom u Windows 7. Kao što možete videti na slici 1. C, Sekcija slobodne memorije je jedna od najmanjih u histogramu. Međutim, pogrešno je pretpostaviti na osnovu toga da Windows 7 troši previše memorije i da sistem ne može ispravno raditi ako ima tako malo slobodne memorije.

U stvari, sasvim je suprotno. U kontekstu Windows 7 pristupa upravljanju memorijom, slobodna memorija je beskorisna. Što se više memorije koristi, to bolje. Maksimiziranjem memorije i stalnim premeštanjem stranica iz jedne kategorije u drugu koristeći sistem prioriteta, Windows 7 poboljšava efikasnost i sprečava da podaci završe u datoteci stranice, sprečavajući da greške van stranice uspore performanse.

Praćenje memorije

Želite da vidite sistem upravljanja memorijom u operativnom sistemu Windows 7? Ponovo pokrenite računar i odmah nakon pokretanja otvorite Monitor resursa Windows 7. Idite na karticu Memorija i obratite pažnju na odnos sekcija u histogramu fizičke memorije.

Zatim počnite pokretati aplikacije. Dok trčite, gledajte kako se histogram mijenja. Nakon što pokrenete što više aplikacija, počnite ih zatvarati jednu po jednu i gledajte kako se mijenja omjer sekcija u histogramu fizičke memorije.

Radeći ovaj ekstremni eksperiment, shvatićete kako Windows 7 upravlja memorijom na vašem računaru i moći ćete da koristite Windows 7 Resource Monitor da nadgledate dodelu memorije u normalnim svakodnevnim radnim uslovima.

Šta ti misliš?

Da li vam se sviđa ideja da koristite Windows 7 Resource Monitor za praćenje raspodjele memorije? Podijelite svoje mišljenje u komentarima!

Preemptivni/nepreventivni algoritmi.

U slučaju preventivnog algoritma operativni sistem u svakom trenutku može prekinuti izvršavanje trenutne niti i prebaciti procesor na drugu nit. U algoritmima bez prevencije, nit koja je data procesoru samo odlučuje kada će prenijeti kontrolu na operativni sistem.

Algoritmi sa kvantizacijom.

Svakoj niti je dat vremenski odsječak tokom kojeg se nit može izvršiti na procesoru. Kada kvantum istekne, operativni sistem prebacuje procesor na sljedeću nit u redu čekanja. Kvant je obično jednak cijelom broju intervala sistemskog tajmera 1.

Algoritmi sa prioritetima.

Svakoj niti je dodijeljen prioritet - cijeli broj koji pokazuje stepen privilegije niti. Operativni sistem, ako postoji nekoliko niti spremnih za pokretanje, bira nit sa najvišim prioritetom.

Windows implementira mješoviti algoritam planiranja - preventivni, zasnovan na kvantizaciji i prioritetima.

  1. Multitasking tip za DOS aplikaciju
  2. Servisne garancije
  3. Planiranje procesa u prvom planu
  4. Svrha datoteke stranične stranice
  5. Procesi P1, P2, P3 izdvajaju 100, 20, 80 MB memorije. Sistem ima 128MB RAM-a. Koja je veličina zauzete memorije u datoteci stranice. Koja je veličina swap datoteke.
  1. Šta je "greška stranice"?

Prekid 14 -Greška stranice (#PF): Intel386…

Generiše se ako je motor stranice aktiviran (CR0.PG = 1) i dogodi se jedna od sljedećih situacija kada se linearna adresa prevede u fizičku:

  • element tabele stranica ili direktorija stranica koji se koristi u prijevodu adresa, ima nulti bit prisutnosti, tj. potrebna tabela stranica ili stranica nije prisutna u fizičkoj memoriji;
  • procedura nema nivo privilegija, dovoljno za pristup odabranoj stranici, ili pokušava pisati na stranicu koja je zaštićena od pisanja za trenutni nivo privilegija.

Rukovalac greške stranice dobija informacije o njenom uzroku iz dva izvora: koda greške, koji se gura u stog, i sadržaja CR2 registra, koji sadrži linearnu adresu koja je izazvala grešku. Kod greške stranice ima poseban format (slika 3.7.).

Prekinuti program, nakon otklanjanja razloga koji su uzrokovali grešku stranice (na primjer, učitavanje stranice u fizičku memoriju), može se nastaviti bez ikakvih dodatnih podešavanja.

Ako je greška stranice nastala zbog kršenja sigurnosnih privilegija stranice, postavlja se pristupni bit (A) u odgovarajućem unosu direktorija stranice. Ponašanje pristupnog bita u odgovarajućem elementu tablica stranica za ovaj slučaj nije regulirano u Intel procesori i mogu se razlikovati u različitim modelima.

  1. Visok intenzitet greške stranice kaže:

Nesigurnosti programa

RAM nepouzdanost

Ostalo: objasniti

Kolona “Greške zbog nedostatka stranice u memoriji/s.”

U koloni "Greške stranice bez memorije/sek." (Hard Faults/sec) prikazuje prosječan broj grešaka stranica bez memorije u sekundi u posljednjem minutu. Ako proces pokušava da iskoristi više fizičke memorije nego što je trenutno dostupno, sistem upisuje neke od podataka iz memorije na disk - u datoteku stranice. Naknadni pristup podacima sačuvanim na disku naziva se greška stranice bez memorije.

Šta znače greške stranice bez memorije?

Sada kada imate ideju o tome koje su informacije prikupljene u tabeli Procesi, da vidimo kako ih možete koristiti za nadgledanje dodjele memorije. Prilikom pokretanja aplikacija i rada s datotekama, upravitelj memorije prati veličinu radnog skupa svakog procesa i bilježi zahtjeve za dodatnim memorijskim resursima. Kako se radni skup procesa povećava, dispečer usklađuje ove zahtjeve s potrebama kernela i drugih procesa. Ako je raspoloživi adresni prostor nedovoljan, dispečer smanjuje veličinu radnog skupa pohranjivanjem podataka iz memorije na disk.

Kasnije, prilikom čitanja ovih podataka sa diska, dolazi do greške stranice bez memorije. Ovo je sasvim normalno, ali ako se greške javljaju istovremeno za različite procese, sistemu je potrebno dodatno vrijeme za čitanje podataka s diska. Prečeste greške stranica bez memorije, odnosno, smanjuju performanse sistema. Vjerovatno ste iskusili neočekivana usporavanja u svim aplikacijama, koja su zatim iznenada prestala. Ovo usporavanje je gotovo sigurno bilo zbog aktivne preraspodjele podataka između fizičke memorije i zamjene.

Slijedi zaključak: ako se greške stranice van memorije za određeni proces javljaju prečesto i redovno, Računar nema dovoljno fizičke memorije.

Da biste bili praktičniji za praćenje procesa koji uzrokuju česte greške stranica bez memorije, možete ih označiti zastavicama. U tom slučaju, odabrani procesi će se pomaknuti na vrh liste, a na grafikonu grešaka koje nedostaju na stranici biće predstavljeni narandžastom krivom.

Vrijedno je imati na umu da dodjela memorije ovisi o nizu drugih faktora, a praćenje grešaka stranica izvan memorije nije najbolji niti jedini način za identifikaciju problema. Međutim, može poslužiti kao dobra polazna tačka za posmatranje.

  1. Kako se određuje prioritet niti u Windowsu?

Prioriteti

Windows OS implementira preventivno raspoređivanje prioriteta, kada se svakoj niti dodjeljuje određena numerička vrijednost - prioritet, u skladu s kojim joj se dodjeljuje procesor. Niti sa istim prioritetima se raspoređuju prema Round Robin algoritmu (karusel). Važna prednost sistema je mogućnost iskorištavanja niti koje se pokreću u kernel modu - izvršni sistemski kod je potpuno reentiran. Samo niti koje imaju spinlock nisu preuzete (pogledajte "Sinhroniziranje niti"). Stoga se spinlocks koriste s velikom pažnjom i postavljaju se na minimalno vrijeme.

Sistem pruža 32 nivoa prioriteta. Šesnaest vrijednosti prioriteta (16-31) odgovara grupi prioriteta u realnom vremenu, petnaest vrijednosti (1-15) je za normalne niti, a vrijednost 0 je rezervirana za nit nuliranja stranice sistema (vidi sliku 6.2 ).

Rice. 6.2. Prioriteti niti

Da spasimo korisnika da ne mora da pamti numeričke vrijednosti prioritete i biti u mogućnosti da modifikuju planer, programeri su uveli u sistem prioritetni sloj apstrakcije. Na primjer, klasa prioriteta za sve niti određenog procesa može se postaviti korištenjem skupa konstantnih parametara funkcije SetPriorityClass, koji mogu imati sljedeće vrijednosti:

  • realno vrijeme (REALTIME_PRIORITY_CLASS) - 24
  • visok (VISOKI_PRIORITY_CLASS) - 13
  • iznad normalnog (IZNAD_NORMALNO_PRIORITY_CLASS) 10
  • normalan (NORMAL_PRIORITY_CLASS) - 8
  • ispod normalnog (ISPORED_NORMALNO_PRIORITY_CLASS) - 6
  • i neaktivan (IDLE_PRIORITY_CLASS) 4

Relativni prioritet niti je postavljen sličnim parametrima funkcije SetThreadPriority:

Skup od šest klasa prioriteta procesa i sedam klasa prioriteta niti formira 42 moguće kombinacije i omogućava nam da formiramo takozvani osnovni prioritet niti

Zadani osnovni prioritet procesa i primarne niti je vrijednost u sredini raspona prioriteta procesa ( 24, 13, 10, 8, 6 ili 4). Promjena prioriteta procesa podrazumijeva promjenu prioriteta svih njegovih niti, dok njihovi relativni prioriteti ostaju nepromijenjeni.

Prioriteti od 16 do 31 zapravo nisu prioriteti u realnom vremenu jer Windowsova mekana podrška u realnom vremenu ne daje garancije o vremenu niti. To su jednostavno viši prioriteti koji su rezervirani za sistemske niti i one kojima takav prioritet daje korisnik s administrativnim pravima. Međutim, prisustvo prioriteta u realnom vremenu, kao i mogućnost preuzimanja koda kernela, lokalizacija memorijskih stranica (pogledajte „Rad menadžera memorije“) i niz dodatne funkcije- sve ovo vam omogućava da ga izvodite u OS okruženju Windows aplikacije meko realno vrijeme, na primjer, multimedija. Sistemska nit sa nultim prioritetom je zauzeta brisanjem memorijskih stranica. Redovne korisničke niti mogu imati prioritete od 1 do 15.


Povezane informacije.


Dodjela memorije u Windows 9x i Windows NT. Monitor resursa Windows 7. Istražite stavke i kartice vezane za memoriju. Korištenje Windows 7 Resource Monitor za praćenje dodjele memorije. Povećanje veličine datoteke stranične memorije (virtuelne memorije). Provjera memorije koristeći Windows.

3.1. Dodjela memorije u Windows 9x

Windows 9x OS je 32-bitni višenitni OS sa preventivnim multitaskingom i grafičkim korisničkim interfejsom. Za pokretanje koriste MS-DOS 7.0, koji omogućava dva načina rada procesora - pravi (BootGUI=0 je upisan u datoteku MSDOS.SYS) i zaštićeni (BootGUI=1). Zaštićeni način se instalira neposredno prije pokretanja Windows 9x, što uzrokuje da procesor počne upravljati memorijom koristeći mehanizam straničnog virtuelne adrese u fizičke. Područje virtuelnog adresnog prostora sastoji se od stranica od 4 kilobajta koje se nalaze u RAM-u ili na disku.

Adrese nižeg reda virtuelnog adresnog prostora zajednički koriste svi procesi kako bi se osigurala kompatibilnost sa drajverima uređaja u realnom vremenu, rezidentnim Windows programima, itd. Ovo je, s jedne strane, zgodno, ali, s druge strane, smanjuje pouzdanost (jedan od glavnih kvaliteta OS), jer bilo koji proces može oštetiti komponente koje se nalaze na ovim adresama.

Svaki 32-bitni Windows aplikacijski program radi u svom adresnom prostoru, ali je moguć pristup potrebnim adresama, tj. organizacija virtuelnih adresa ne koristi svu hardversku zaštitu ugrađenu u mikroprocesor. 16-bitni programi dijele zajednički adresni prostor i također su ranjivi jedni na druge. Memorijski model Windows 9x prikazan je na slici 3.1.

Rice. 3.1. OP distribucije u Windows 9x

Donjih 64 KB OP-a nisu dostupni 32-bitnim programima, ali 16-bitni programi mogu ovdje zapisati svoje podatke. Adrese ispod 4 MB se mapiraju u adresni prostor svakog aplikacijskog programa i dijele ih svi procesi. Ovo čini ovu oblast ranjivom na slučajno pisanje.

Minimalna potrebna količina memorije da bi Windows 9x funkcionirao je 4 MB, ali je praktično nemoguće raditi s ovom količinom memorije. Datoteka stranice , uz pomoć kojeg je implementiran mehanizam virtuelne memorije, nalazi se u Windows direktoriju i ima promjenjivu veličinu, koju po potrebi mijenja sam sistem. Njegove dimenzije se mogu podesiti pomoću sistemskih alata (Kontrolna tabla → Sistem → Performanse → Sistem datoteka) ili navesti u odeljku SYSTEM.INI datoteke - linije koje označavaju naziv disk jedinice i datoteke:

Pagingfive=c:\PageFile.sys

MinPagingFileSize=65536 (64 MB)

MaxPagingFileSize=262144 (256 MB)

Prvi i drugi red definiraju naziv datoteke i njegovu lokaciju, a zadnja dva – početnu i maksimalnu veličinu datoteke stranice u KB.

Minimalna veličina datoteke stranične memorije se može dobiti pokretanjem SysMon-a (System Monitor) i odabirom veličine datoteke stranice i količine slobodne memorije kao potrebnih parametara za procjenu memorijskih zahtjeva najčešće korištenih aplikacija.

3.2. Dodjela memorije u Windows NT-u

Razlike između sheme distribucije i Windows 9x svode se na sljedeće:

1) ozbiljnije korišćenje hardverske memorijske zaštite obezbeđene u mikroprocesoru;

2) svi moduli sistemskog softvera nalaze se u svojim virtuelnim adresnim prostorima i aplikativni programi im ne mogu pristupiti.

Distribucija adresnog prostora u Windows NT prikazana je na Sl. 3.2.

Rice. 3.2. OP distribucije u Windows NT

Aplikacijskim programima je dodijeljeno 2 GB lokalnog (vlastitog) linearnog (nestrukturiranog) adresnog prostora (prvih 64 KB nije dostupno). One su izolovane jedna od druge i mogu međusobno komunicirati samo preko međuspremnika, ili preko DDE (Dynamic Data Exchange) i OLE (Object Linking and Embedding) mehanizama.

Gornji dio područja od 2 GB sadrži kod za sistemske DLL-ove (dinamički povezane biblioteke) koje djeluju kao serverski procesi. Oni provjeravaju vrijednosti parametara upita, izvršavaju traženu funkciju i šalju rezultate natrag u adresni prostor pozivajućeg programa.

U rasponu adresa od 2-4 GB nalaze se sistemske (niskorazine) komponente Windows-a (tj. najviši nivo zaštite od neovlaštenog pristupa: kernel, planer niti, menadžer memorije).

Za 16-bitne Windows aplikacije, WOW (Windows na Windows) sesije se implementiraju u preventivnom multitasking modu, pojedinačno u vlastitim adresnim prostorima ili zajedno u zajedničkom adresnom prostoru.

Kada se aplikacija pokrene, kreira se proces sa vlastitom informacijskom strukturom u okviru koje se pokreće zadatak. Može izvoditi druge zadatke. Kao rezultat, organiziran je multitasking način rada.

Upravljanje memorijom (dodjela, rezervacija, oslobađanje, stranica) se vrši pomoću VMM upravitelja virtualne memorije (Virtual Memory Manager). Svaka virtuelna stranica se prenosi na fizičku stranicu - okvir stranice, u početku ispunjen nulama (ovo je glavni zahtjev standarda sigurnosnog sistema C2 nivoa, koji određuje nemogućnost korištenja njihovog prethodnog sadržaja od strane drugih procesa). Prostor za zamjenu stranica je rezervisan u datoteci stranice Pagefile.sys, koja je rezervisani blok prostora na disku.

Sve Windows memorija NT je podijeljen na rezervisano(za dinamičku upotrebu od strane procesa prilikom izvršavanja zadataka), posvećeno(za koje je otpremanje rezervisano u Pagefile.sys) i pristupačno(ostatak slobodne memorije).

      Virtuelna memorija u Windows-u

Najčešći razlog usporavanja sistema je Windows kontrola- popunjavanje fizičke memorije. Istovremeno, Windows započinje takozvano „paging“ - premještanje blokova koda i programskih podataka (svaki takav blok se zove stranica) iz fizičke memorije na tvrdi disk. Pristup datoteci stranice s vremena na vrijeme je normalan i ne degradira performanse sistema, ali česti zahtjevi za podacima iz datoteke na disku mogu značajno smanjiti ukupnu brzinu sistema. Ovaj problem je posebno uočljiv kada se prebacujete između više memorijsko intenzivnih programa na računaru koji ne sadrži dovoljno fizičke memorije. Kao rezultat toga, disk je gotovo stalno u upotrebi, jer sistem pokušava da “pumpa” podatke sa njega u memoriju i nazad.

Ako ukupna veličina dodijeljene memorije premašuje ukupnu količinu fizičke memorije, Windows mora "pumpati" stranice između brze RAM-a i mnogo sporije virtuelne memorije u datoteci stranice, uzrokujući usporavanje sistema.

U toku Windows instalacije XP datoteka stranice se automatski kreira u root folderu na istom disku na kojem se nalaze sistemske datoteke Windows fajlovi. Veličina datoteke stranične memorije određuje se na osnovu količine fizičke memorije na sistemu. Default minimalna veličina Datoteka stranice je 1,5 puta veća od količine fizičke memorije, a maksimalna veličina je 3 puta veća. Swap fajl se može videti u prozoru Explorera ako omogućite režim za prikaz skrivenih i sistemskih fajlova (slika 3.3).

Rice. 3.3. Omogućavanje prikaza skrivenih i sistemskih datoteka

Obično sam Windows operativni sistem postavlja optimalnu količinu virtuelne memorije i ona je dovoljna za većinu zadataka, ali ako računar pokreće aplikacije koje zahtevaju mnogo memorije, tada se količina virtuelne memorije može promeniti.

Da biste to učinili, morate izvršiti sljedeći niz radnji:

1. Prijavite se na sistem koristeći nalog iz grupe Administratori i otvorite prozor „Kontrolna tabla – Sistem“.

2. Na kartici “Napredno” kliknite na dugme “Opcije” u odeljku “Performanse” (slika 3.4).

3. U dijalogu Performance Options, izaberite karticu Advanced i kliknite na dugme Change (Slika 3.5) da biste prikazali okvir za dijalog Virtuelna memorija, koji je prikazan na slici 3.5. 3.6 za Windows XP i na Sl. 3.7 za Windows 7.

Trenutne postavke datoteke stranične memorije se odražavaju u polju „Ukupna veličina datoteke stranične memorije na svim diskovima“.

4. Izaberite bilo koju disk jedinicu sa liste na vrhu dijaloga da biste konfigurisali postavke za tu disk jedinicu.

Možete promijeniti sljedeće postavke:

- Posebna veličina. Unesite vrijednost u polje Originalna veličina da postavite početnu veličinu datoteke pagefile.sys na navedenom disku (u megabajtima). U polju Maksimalna veličina unesite broj koji nije manji od vrijednosti u polje Originalna veličina, ali ne prelazi 4096 MB (4 GB).

- Veličina prema izboru sistema. Odaberite ovu opciju da omogućite dinamičko upravljanje veličinom datoteke stranične stranice za ovog diska. Izaberite ovu opciju ako ne želite da promenite podrazumevane postavke koje Windows nudi.

- Nema swap fajla. Koristite za sve diskove na kojima vam ne treba datoteka stranice. Provjerite postoji li swap datoteka na barem jednom disku.

5. Nakon što izvršite bilo kakve promjene, kliknite Set za snimanje promjena.

6. Ponovite korake 4 i 5 za druge disk jedinice (ako je potrebno). Kliknite OK da zatvorite dijaloški okvir kada završite.

Rice. 3.4. Dugme “Opcije” za prelazak na pregled i/ili

mijenjanje parametara virtuelne memorije

Rice. 3.5. Dugme “Promijeni” za promjenu postavki virtuelne memorije u WindowsXP (lijevo) i u Windows7

Rice. 3.6. Prozor za pregled i podešavanje veličine virtuelne memorije

Rice. 3.7. Prozor za pregled i podešavanje veličine virtuelne memorije u Windows 7

Ako vaš računar ima više fizičkih diskova, najbolje je postaviti datoteku stranice na najbrzi, a poželjno je ako sistemske datoteke Windows će biti na drugom disku. Još je bolje podijeliti datoteku stranice na nekoliko fizički diskove jer kontroler diska može obraditi više zahtjeva za pisanje i čitanje paralelno.

Ne pokušavajte da postavite straničnu datoteku na nekoliko logičkih diskova jednog fizičkog diska!!!

Ako sistem ima jedan čvrsti disk podijeljen na particije C, D i E, a datoteka stranice je raspoređena na nekoliko particija, tada se sistem može čak i usporiti, jer u ovoj konfiguraciji magnetne glave tvrdog diska moraju čitati podatke sa nekoliko oblasti, a ne od jedne do druge.jedno područje diska.

Ako smanjite minimalnu ili maksimalnu veličinu datoteke stranične stranice i kreirate novu datoteku stranice na disku, morate ponovo pokrenuti sistem da bi promjene stupile na snagu. Povećanje veličine datoteke stranice obično ne zahtijeva ponovno pokretanje računara.

Ako imate puno fizičke memorije, možda ćete biti u iskušenju da potpuno onemogućite datoteku stranice. Nemoj to raditi! !!

Windows XP je dizajniran da koristi datoteku stranice za obavljanje nekih zadataka kernela, tako da neki programi trećih strana mogu prijaviti malo memorije kada pokušavaju potpuno onemogućiti virtualnu memoriju.

Windows ne koristi datoteku stranice dok nije potrebna, tako da onemogućavanje virtuelne memorije neće poboljšati performanse!!!

Windows može dinamički povećati veličinu datoteke stranice po potrebi. Ova funkcija radi samo kada odaberete " Veličina po izboru sistema", kao i pri postavljanju maksimalne veličine veće od trenutne veličine datoteke stranične stranice.

Na osnovu iskustva sa prethodnim verzijama Windowsa, neki korisnici pokušavaju da kreiraju datoteku stranične memorije fiksne veličine sa jednakim početnim i maksimalne dimenzije. U teoriji, ovo bi trebalo poboljšati performanse jer eliminira mogućnost fragmentacije datoteke stranice. Međutim, podsistem straničnog pregleda je dizajniran tako da u praksi datoteka zauzima samo velike blokove diskovnog prostora, čineći fragmentaciju minimalnom. Možda ćete primijetiti blagi pad performansi kada Windows poveća veličinu datoteke stranice, ali ovo je jednokratna operacija i nema utjecaja na prosječne performanse.

      Nadgledanje upotrebe memorije u Windows-u

Najlakši način da saznate koliko RAM-a se koristi u datom trenutku je da otvorite Task Manager tako što ćete kliknuti na ++ i otići na karticu “Performanse” (slika 3.8). Detaljan opis informacija na kartici “Performanse” za Windows XP predstavljen je u tabeli. 3.1.

Tabela 3.1. Dešifriranje podataka upravitelja zadataka

Kartica “Performanse” za Windows7 ima značajne inovacije u poređenju sa odgovarajućom karticom Manager Windows zadaci XP.

Broj u koloni “Ukupno” u odeljku “Fizička memorija” označava ukupnu količinu RAM-a za ovaj sistem. Kolona keširano prikazuje količinu fizičke memorije koju su nedavno koristili sistemski resursi. Ostaje u kešu u slučaju da ga sistem ponovo zatreba, ali je dostupan drugim procesima. Nova kolona “Dostupno” označava količinu trenutno neiskorištene fizičke memorije, a kolona “Free” označava količinu memorije koju koristi keš memorija, ali ne sadrži korisne informacije.

Odjeljak “Kernel Memory” sadrži dvije kolone – “Page” i “Nonpaged”. Zajedno pokazuju koliko memorije kernel koristi. Stranična je virtuelna memorija, a nestranica fizička memorija.

U odjeljku "Sistem" pojavile su se kolone za "Handles" i "Threads", povezane sa sastavnim komponentama procesa. Stupac “Deskriptori” označava broj identifikatora objekata (deskriptora) koje koriste trenutno pokrenuti procesi. Stupac Threads prikazuje broj potprocesa koji se izvode unutar većih procesa. Broj u koloni “Procesi”, naravno, označava ukupan broj pokrenutih procesa, što se može vidjeti na kartici “Procesi”.

Kolona „Vreme rada“ pokazuje koliko je vremena prošlo od poslednjeg pokretanja računara. Kolona “Urezivanje” sadrži informacije o straničnoj datoteci. Prvi broj označava ukupnu količinu fizičke i virtuelne memorije koja se trenutno koristi, a drugi broj označava ukupnu količinu memorije za dati računar u principu.

Još detaljnije informacije se mogu dobiti klikom na dugme “Resource Monitor” i odabirom kartice “Memory” (slika 3.9).

Rice. 3.9. Kartica Memorija prozora Windows 7 Resource Monitor

Na kartici „Memorija“ nalazi se tabela „Procesi“ u kojoj su navedeni svi pokrenuti procesi, a informacije o memoriji koja se koristi za svaki proces su podeljene u nekoliko kategorija (slika 3.10).

Rice. 3.10. Tabela procesa

u koloni" Slika" označava naziv izvršne datoteke procesa. Procese koje pokreću aplikacije vrlo je lako prepoznati – na primjer, proces “Winword.exe” jasno pripada Word uređivaču teksta. Procesi pod nazivom "svchost.exe" predstavljaju različite usluge operativnog sistema. Ime usluge se pojavljuje u zagradama pored naziva procesa.

u koloni" ID procesa» označava broj procesa - jedinstvenu kombinaciju brojeva koja vam omogućava da identifikujete proces koji je u toku.

U rubrici " Završeno" označava količinu virtuelne memorije u kilobajtima koju je sistem rezervisao za ovaj proces. Ovo uključuje i korišćenu fizičku memoriju i stranice pohranjene u datoteci stranične memorije.

U rubrici " Radni set" označava količinu fizičke memorije u kilobajtima koju proces koristi u datom trenutku. Radni set se sastoji od javne i privatne memorije.

u koloni" Generale" označava količinu fizičke memorije u kilobajtima koju ovaj proces dijeli s drugima. Dijeljenje jednog memorijskog segmenta ili swap stranice za povezane procese može uštedjeti memorijski prostor. Ovo fizički pohranjuje samo jednu kopiju stranice, koja se zatim mapira u virtuelni adresni prostor drugih procesa koji joj pristupaju. Na primjer, svi procesi su pokrenuti sistemske biblioteke DLL-ovi - Ntdll, Kernel32, Gdi32 i User32 - koriste zajedničku memoriju.

U rubrici " Privatno" označava količinu fizičke memorije u kilobajtima koju koristi isključivo ovaj proces. Ova vrijednost vam omogućava da odredite koliko memorije treba da radi određena aplikacija.

U rubrici " Greške bez memorije stranice/sek.„Naveden je prosječan broj grešaka stranica bez memorije u sekundi u posljednjem trenutku. Ako proces pokušava da iskoristi više fizičke memorije nego što je trenutno dostupno, sistem upisuje neke od podataka iz memorije na disk - u datoteku stranice. Naknadni pristup podacima sačuvanim na disku naziva se greška stranice bez memorije.

Prilikom pokretanja aplikacija i rada s datotekama, upravitelj memorije prati veličinu radnog skupa svakog procesa i bilježi zahtjeve za dodatnim memorijskim resursima. Kako se radni skup procesa povećava, dispečer usklađuje ove zahtjeve s potrebama kernela i drugih procesa. Ako je raspoloživi adresni prostor nedovoljan, dispečer smanjuje veličinu radnog skupa pohranjivanjem podataka iz memorije na disk.

Kasnije, prilikom čitanja ovih podataka sa diska, dolazi do greške stranice bez memorije. Ovo je sasvim normalno, ali ako se greške javljaju istovremeno za različite procese, sistemu je potrebno dodatno vrijeme za čitanje podataka s diska. Previše česte greške stranica bez memorije posljedično smanjuju performanse sistema. To se očituje u neočekivanim usporavanjima u svim aplikacijama, koja se onda neočekivano zaustavljaju. Do usporavanja dolazi zbog aktivne preraspodjele podataka između fizičke memorije i zamjene.

Slijedi zaključak: ako se greške stranice van memorije za određeni proces javljaju prečesto i redovno, računalo nema dovoljno fizičke memorije.

Da biste bili praktičniji za praćenje procesa koji uzrokuju česte greške stranica bez memorije, možete ih označiti zastavicama. U tom slučaju, odabrani procesi će se pomaknuti na vrh liste, a na grafikonu grešaka koje nedostaju na stranici biće predstavljeni narandžastom krivom.

Vrijedno je imati na umu da dodjela memorije ovisi o nizu drugih faktora, a praćenje grešaka stranica izvan memorije nije najbolji niti jedini način za identifikaciju problema. Međutim, može poslužiti kao dobra polazna tačka za posmatranje.

Tabela Procesi pruža detaljne informacije o raspodjeli memorije između pojedinačnih procesa, a tablica Physical Memory daje ukupnu sliku korištenja RAM-a. Njegova ključna komponenta je jedinstveni histogram prikazan na Sl. 3.11.


Slika 3.11. Histogram u tabeli "Fizička memorija" omogućava vam da dobijete pregled distribucije memorije u Windows 7

Svaki dio histograma označen je svojom bojom i predstavlja određenu grupu memorijskih stranica. Kako se sistem koristi, menadžer memorije premešta podatke između ovih grupa u pozadini, održavajući delikatnu ravnotežu između fizičke i virtuelne memorije kako bi se osiguralo da sve aplikacije rade efikasno. Pogledajmo pobliže histogram.

Na lijevoj strani je dio “ Rezervisana oprema", označeno sivom bojom: ovo je memorija dodijeljena potrebama povezane opreme, koju koristi za interakciju s operativnim sistemom. Memorija rezervirana za hardver je zaključana i upravitelj memorije joj ne može pristupiti. Obično se količina memorije dodijeljene opremi kreće od 10 do 70 MB, ali ova brojka ovisi o specifičnoj konfiguraciji sistema i u nekim slučajevima može doseći nekoliko stotina megabajta.

Komponente koje utječu na količinu rezervirane memorije uključuju:

Komponente matične ploče - kao što je Advanced Programmable I/O Interrupt Controller (APIC);

Zvučne kartice i drugi uređaji koji obavljaju memorijsko mapirani ulaz/izlaz;

PCI Express (PCIe) sabirnica;

Video kartice;

Razni čipsetovi;

Flash diskovi.

Odjeljak " Koristi se", označeno zelenom bojom, predstavlja količinu memorije koju koriste sistem, upravljački programi i pokrenuti procesi. Količina korištene memorije izračunava se kao vrijednost " Ukupno» minus zbir pokazatelja « Promijenjeno», « Očekivanje" i " Besplatno" Zauzvrat, vrijednost " Ukupno"je indikator" Instalirano" minus indikator " Rezervisana oprema».

Kada se proces pokrene u Windows-u, mnoge stranice koje prikazuju EXE i DLL slike možda su već u memoriji jer ih koriste drugi procesi. Stranice sa slikama koje se mogu pisati imaju oznaku "kopiraj-na-piši" tako da se mogu dijeliti dok ih ne treba mijenjati. Ako operativni sistem prepozna EXE koji je već izvršen, može snimiti obrazac veze na stranicu (koristeći tehnologiju koju Microsoft naziva Super-Fetch). Ova tehnologija pokušava unaprijed napumpati mnoge potrebne stranice (iako proces još nije primio greške stranica na njima). Ovo smanjuje kašnjenje pokretanja aplikacije (čitanje stranica sa diska se preklapa sa izvršavanjem inicijalizacionog koda slika). Ova tehnologija poboljšava izlazne performanse diska jer drajveri diska mogu lakše organizirati operacije čitanja (kako bi se smanjilo potrebno vrijeme traženja). Ovaj proces pre-paging se koristi i tokom pokretanja sistema i kada pozadinska aplikacija dolazi u prvi plan kada sistem izađe iz hibernacije.

Unaprijed dohvaćanje stranica je podržano od strane menadžera memorije, ali je implementirano kao posebna komponenta sistema. Stranične stranice se ne ubacuju u tabelu stranica procesa, već se ubacuju u listu pripravnosti iz koje se mogu brzo ubaciti u proces (bez pristupa disku).

Nemapirane stranice se malo razlikuju - ne inicijaliziraju se čitanjem iz datoteke. Umjesto toga, prvi put kada se pristupi nekoj nemapiranoj stranici, upravitelj memorije daje novu fizičku stranicu (provjeravajući da je njen sadržaj popunjen nulama iz sigurnosnih razloga). U narednim greškama stranice, nemapirana stranica će se možda morati pronaći u memoriji ili će se možda morati pročitati iz datoteke stranice.

Straničenje na zahtjev u upravitelju memorije je kontrolirano greškama stranice. Svaka greška uzrokuje prekid kernela. Kernel zatim pravi mašinski nezavisan deskriptor (koji izveštava šta se dogodilo) i prosleđuje ga izvršnom menadžeru memorije. Upravitelj memorije zatim provjerava ispravnost pristupa. Ako neuspješna stranica spada u urezani region, traži adresu na VAD listi i pronalazi (ili kreira) unos u tablicu stranica procesa. U slučaju dijeljene stranice, upravitelj memorije koristi unos tablice prototipa stranice (pridružen objektu segmenta) da popuni novi unos tablice stranice procesa.

Format elementa tabele stranica varira u zavisnosti od arhitekture procesora. Za x86 i x64 procesore, elementi prikazane stranice prikazani su na Sl. 11.17. Ako je element označen kao važeći, tada se njegov sadržaj tumači od strane hardvera (tako da se virtuelna adresa može prevesti u ispravnu fizičku stranicu). Nerenderirane stranice također imaju svoje elemente, ali su označeni kao nevažeći, i Hardver zanemaruje ostatak elementa. Softverski format se malo razlikuje od hardverskog i određuje ga upravitelj memorije. Na primjer, za nerenderiranu stranicu (koja mora biti pozicionirana i resetirana prije upotrebe), ova činjenica je zabilježena u elementu tablice stranica.


Dva važna bita unosa u tablicu stranica se ažuriraju direktno od strane hardvera. To su pristupni bit (A) i modificirani bit (D). Ovi bitovi prate upotrebu datog mapiranja stranice za pristup stranici i da li se stranica može modificirati tim pristupom. Ovo zapravo poboljšava performanse sistema jer upravitelj memorije može koristiti pristupni bit za implementaciju stranica sa najmanje nedavno korištenim (LRU). Princip LRU-a je da one stranice koje su najduže bile nekorištene imaju najmanju vjerovatnoću ponovnog korištenja u bliskoj budućnosti. Pristupni bit omogućava upravitelju memorije da utvrdi da je stranici pristupljeno. "Modified" bit govori menadžeru memorije da je stranica možda izmijenjena (ili, što je još važnije, nije modificirana). Ako stranica nije izmijenjena otkako je pročitana s diska, tada upravitelj memorije ne treba da upisuje njen sadržaj na disk (prije nego što je koristi za nešto drugo).

I x86 i x64 arhitekture koriste 64-bitni unos u tablicu stranica (pogledajte sliku 11.17).

Svaka greška stranice može se klasificirati u jednu od pet kategorija:

1. Stranica nije popravljena.

2. Pokušaj pristupa stranici s kršenjem dozvole.

3. Pokušaj modifikacije stranice za kopiranje na upisivanje.

1. Potrebno je povećati stog.

2. Stranica je popravljena, ali dato vrijeme nije prikazano.

Prvi i drugi slučaj su programske greške. Ako program pokuša upotrijebiti adresu koja nema valjano mapiranje ili pokuša izvršiti ilegalnu operaciju (kao što je pokušaj pisanja na stranicu samo za čitanje), to se naziva kršenje pristupa i obično uzrokuje prekid procesa . Kršenje pristupa često je rezultat nevažećih vrijednosti pokazivača, uključujući pristup memoriji koja je oduzeta i odvojena od procesa.

Treći slučaj ima iste simptome kao i drugi (pokušaj pisanja na stranicu samo za čitanje), ali je rukovanje drugačije. Budući da je stranica označena kao kopiranje na upisivanje, upravitelj memorije ne prijavljuje kršenje pristupa. Umjesto toga, kreira privatnu kopiju stranice za trenutni proces, a zatim vraća kontrolu niti koja je pokušala upisati stranicu. Nit ponavlja operaciju pisanja, koja će se sada završiti bez greške stranice.

Četvrti slučaj se događa kada nit gurne vrijednost na svoj stog i pogodi stranicu koja još nije dodijeljena. Upravitelj memorije to prepoznaje kao poseban slučaj. Sve dok u virtuelnim stranicama ima prostora rezerviranog za stog, upravitelj memorije će dostaviti nove stranice, nulirati ih i mapirati ih u proces. Kada nit nastavi sa izvršavanjem, pokušat će ponovo pristupiti i ovaj put će biti uspješna.

I konačno, peti slučaj je uobičajena greška stranice. Međutim, ima nekoliko podopcija. Ako je stranica mapirana u datoteku, upravitelj memorije mora pogledati njene strukture podataka (kao što je prototipska tablica stranica povezana s objektom segmenta) kako bi osigurao da nema njene kopije u memoriji. Ako postoji kopija (na primjer, u drugom procesu, na listi pripravnosti ili na listi modificiranih stranica), onda će je jednostavno podijeliti (možda će je morati označiti kao stranicu za kopiranje pri pisanju da uradite to ako se promjene ne dijele pretpostavljaju). Ako još nema kopije, upravitelj memorije će dodijeliti slobodnu fizičku stranicu i pripremiti je za kopiranje stranice datoteke s diska na nju, osim ako se druga stranica u tom trenutku ne prenosi s diska (u tom slučaju samo trebate pričekati dok transfer je završen).

Ako upravitelj memorije može upravljati greškom stranice lociranjem stranice u memoriji (umjesto da je čita s diska), greška se naziva meka greška. Ako vam je potrebna kopija s diska, onda je ovo teška greška. Meke greške su mnogo jeftinije i imaju mali uticaj na performanse aplikacije (u poređenju sa teškim greškama). Mogu se pojaviti lagane greške jer je dijeljena stranica već mapirana u drugi proces, ili jednostavno treba novu nultu stranicu, ili željenu stranicu je uklonjen iz radnog skupa procesa, ali je ponovo upitan prije ponovnog korištenja. Meke greške se također mogu pojaviti jer su stranice komprimirane na efektivno povećanje veličina fizičke memorije. Za većinu konfiguracija centralni procesor Memorija i I/O u trenutnim sistemima su efikasnije komprimovani, a ne trošeni na skupe I/O (u smislu performansi i snage) koji zahtevaju čitanje stranice sa diska.

Kada fizička stranica više nije mapirana u tablicu stranica bilo kojeg procesa, ona ide na jednu od tri liste: slobodna, modificirana ili rezervirana. One stranice koje više nikada nisu potrebne (kao što su stranice steka u procesu koji se završava) se odmah oslobađaju. Stranice za koje postoji vjerovatnoća da će opet biti greška na stranici završavaju ili na izmijenjenoj listi ili na pripravnoj listi (u zavisnosti od toga da li je "modificirani" bit postavljen za bilo koji unos u tablici stranica koji prikazuje tu stranicu od posljednjeg čitanja s diska) . Stranice sa modifikovane liste će na kraju biti zapisane na disk, a zatim prebačene na rezervnu listu.

Upravitelj memorije može dodijeliti stranice po potrebi (koristeći listu slobodnih ili rezervnih stranica). Prije dodjele stranice i kopiranja sa diska, upravitelj memorije uvijek provjerava liste rezervnih i izmijenjenih stranica da vidi da li je stranica već u memoriji. Shema za prosljeđivanje stranica u Windows-u pretvara buduće teške greške u soft greške (čitanjem stranica koje bi mogle biti potrebne i stavljanjem ih na listu stranica u stanju pripravnosti). Sam upravitelj memorije obavlja malu količinu stranica unaprijed - pristupa grupama uzastopnih stranica (a ne pojedinačnim stranicama). Dodatne stranice se odmah stavljaju na listu stranica u stanju pripravnosti. Ovo nije rasipničko jer su troškovi upravljanja memorijom mnogo manji od troškova izvođenja I/O operacija. Čitanje čitave grupe stranica je nešto skuplje od čitanja jedne stranice.

Elementi tabele stranica na sl. 11.17 odnosi se na fizičke (ne virtuelne) brojeve stranica. Da ažurira unos tabele stranica (i direktorijum stranica), kernel treba da koristi virtuelne adrese. Windows mapira tabele stranica i direktorije stranica za trenutni proces u virtuelni adresni prostor kernela koristeći element self-map u direktoriju stranica (slika 11.18). Preslikavanjem elementa direktorija stranice u direktorij stranica (samo-map), dobijamo virtuelne adrese koje se mogu koristiti za referenciranje elemenata direktorija stranica (slika 11.18, a) i elemenata tabele stranica (slika 11.18, b). Samo-mapa zauzima 8 MB virtualnih adresa kernela za svaki proces (na x86 procesorima). Radi jednostavnosti, slika prikazuje x86 element self-map za 32-bitne PTE unose (unosi u tablicu stranica). U stvari, Windows koristi 64-bitne PTE zapise, tako da sistem može iskoristiti više od 4 GB fizičke memorije. Sa 32-bitnim PTE unosima, element self-map koristi samo jedan PDE (Page-Directory Entry) unos u direktoriju stranica i stoga zauzima samo 4 MB adresa umjesto 8 MB.

Povezali ste novi uređaj, ali on sporo radi, ili je stari uređaj prestao da radi ili ne radi ispravno. Šta učiniti u ovim slučajevima? Ponovno instalirati sve? To je problematično i nije uvijek neophodno. Kako saznati šta je razlog i kako ga otkloniti? Veoma jednostavno. Činjenica je da u Windows porodici operativnih sistema, i ne samo, postoji izvesnaMenadžer uređaja, u stvari, veoma potreban i koristan menadžer, ako ga možete tako nazvati. Evo ga, on će nam pomoći da otkrijemo šta je uzrok problema, a moja varalica će nam pomoći da riješimo problem. Dakle, u gore navedenomMenadžer uređaja tragovi grešaka u radu uređaja ostaju u obliku kodova. Poznavajući kod greške, nije teško utvrditi uzrok problema. Za neupućene, šifre su samo nerazumljivi i besmisleni brojevi. Ali dobro upućenom korisniku mogu puno reći. Pokušaću, koliko god mogu, da rasvetlim ovu temu.


Da bismo vidjeli greške uređaja, prvo moramo ući u sam Device Manager. To se radi ovako. Prijavite seKontrolna tabla iz menijaZapočni ( može,Moj kompjuter , desni ključ -Svojstva Menadžer uređaja, ili to možete učiniti navođenjem komande uizvršiti , ali zašto sve komplikovati). Ako uđemo krozPanel menadžment , tada je put:Sistem - Oprema - Upravljač uređajima . Odaberite ulaskom u meniMenadžer uređaja , tip uređaja koji nas zanima (tastatura, štampač, modem, itd.), dvaput kliknite na njega, kao rezultat ćemo vidjeti uređaje koji su uključeni u ovu vrstu. Odaberite uređaj koji nam je potreban i dvaput kliknite na njega. Pogledajte kolonu na kartici Aboutopćenito, status uređaja. Ako postoji problem s radom uređaja, ovdje će se prikazati kao kod greške. Dakle, vidimo brojeve i brojeve. šta oni znače? Ispod dajem puna lista greške, sa kratak opis greške i mogući načini eliminacija. Šifra greške je označena crvenom bojom, njen opis plavom, a rešenje crnom.

Šifra 1Postoji problem pri postavljanju uređaja, ne ispravna podešavanja ili vozač nedostaje. Kliknite na dugme Ažurirajte drajver , da pokrenete čarobnjakaAžuriranje hardvera . Ako uopšte nema drajvera, instalirajte ga.

Šifra 3Upravljački program uređaja je oštećen ili nema dovoljno RAM-a da bi uređaj ispravno funkcionirao.1. Uklonimo oštećeni drajver i instaliramo novi. Da biste to učinili: Svojstva - Upravljački program - Izbriši, zatim slijedite upute čarobnjaka. Ponovo pokreni. Opet se otvaraMenadžer uređaja Akcija Ažurirajte konfiguraciju hardvera i slijedite upute majstora. 2. Ako je problem nedostatak virtuelne memorije, zatvorite pokrenute aplikacije da biste oslobodili memoriju. Da bismo provjerili stanje memorije moramo ići uTask Manager , da biste to uradili, pritisnite prečicu na tastaturiCtrl+Shift+Esc.Postavke virtuelne memorije možemo vidjeti desnim klikomMoj kompjuter Svojstva - Napredno - Performanse - Postavke (Opcije) . Možete pokušati povećati swap datoteku (opisao sam kako se to radi u jednom od mojih prethodnih članaka na blogu), ali ovo je daleko od radikalne mjere. Moraćete da povećate RAM. Kako se to radi je posebna tema izvan okvira ovog posta.

Šifra 10U odjeljku registra nalazi se parametar koji odgovara uređajuFailReasonString,vrijednost ovog parametra se prikazuje u podacima o grešci, odnosno ako ne postoji parametar kao takav, tada se pojavljuje kod greške, drugim riječima, uređaj se ne može pokrenuti. Ažurirajte drajver kao gore. Ili instalirajte noviju.

Šifra 12Za ovaj uređaj nisu potrebni resursi. Onemogućite druge radne uređaje, barem jedan, da biste to učinili, koristite čarobnjaka za rješavanje problema, koji će, ako slijedite njegova uputstva, onemogućiti konfliktni uređaj. (Dozvolite mi da vas ukratko podsjetim: Svojstva - Općenito - Rješavanje problema.)

Šifra 14Za rad ovog uređaja potrebno je ponovno pokretanje računara.

Šifra 16Nemoguće je identifikovati resurse koji su neophodni za rad uređaja; uređaj nije u potpunosti konfigurisan. Morate dodijeliti dodatne resurse uređaju. Ali to se može učiniti bez problema ako uređaj pripadaPlug and Play.

Svojstva - Resursi. Ako na listi resursa postoji resurs sa znakom ?, odaberite ga da biste ga dodijelili odabranom uređaju. Ako se resurs ne može promijeniti, kliknitePromijenite postavke , ako ova funkcija nije dostupna, poništite izborAutomatsko podešavanje

Šifra 18Ponovo instalirajte drajver uređaja. Pokušavamo ažurirati drajver ili ga ukloniti i to učiniti kao u primjeru sakod 3.

Šifra 19U registru nema dovoljno informacija o postavkama uređaja ili su postavke oštećene. TrčiČarobnjak za rješavanje problema i slijedite njegove upute, ako ne pomogne, ponovo instalirajte uređaj kao što je gore navedeno. (šifra 3). Ili, ako to ne pomogne, preuzmiteZadnja poznata dobra konfiguracija. Ako to ne pomogne, potrebna vam je pomoć stručnjaka, kao što trebate urediti sistemski registar. Bez znanja i iskustva nemate šta da radite sami, to će vam potvrditi svaki administrator sistema. Ko zna i ume, zna i sam, bez mene. A za neiskusnu osobu, bolje je da ne pokušava. Registar je srce operativnog sistema i samo iskusni stručnjak, ili pod njegovim nadzorom, treba da obavlja operacije na njemu. Ne želim nikoga da uvrijedim na bilo koji način, ali ako niste radili sa sistemskim registrom i ako cijenite svoj računar, moj savjet je da zaboravite put do tamo. Ne pišem za profesionalce, njima ne treba, već za prosječnog korisnika. Naravno, tu mogu napisati kako i šta da radim, ali ovo će biti ručno objašnjenje i ako i najmanjom greškom oštetite računar, ja ću biti kriv. Meni ovo uopšte ne treba, a ni tebi.

Šifra 21 Uređaj se uklanja iz sistema, odnosno operativni sistem pokušava da ukloni uređaj, ali proces još nije završen.


Pauzirajte nekoliko sekundi i pritisnite tipku


Šifra 22 Uređaj je onemogućen. Uređaj mora biti uključen.Akcija - Omogući i slijedite daljnje upute.


Kod 24 Uređaj nedostaje ili je instaliran pogrešno, upravljački program ne radi, uređaj je možda pripremljen za uklanjanje. Uklonite uređaj i ponovo ga instalirajte.


Šifra 28 Nema vozača. Instalirajte drajver. Da biste to učinili, morate ažurirati upravljački program, slijedite korake kao u uputama za Code 1.


Šifra 29Uređaj je onemogućen . Morate dozvoliti uređaju da radi postavkeBIOSPročitajte upute za korištenje uređaja.


Šifra 31Sistem nije mogao učitati drajvere za ovaj uređaj . Ažurirajte upravljačke programe kako je gore opisano.


Kod 32Upravljački program za ovaj uređaj je onemogućen u sistemskom registru . Deinstalirajte i ponovo instalirajte drajver (opisano gore)


Kod 33Operativni sistem ne može odrediti resurse za ovo uređaja . Postavite uređaj ili ga zamijenite.


Kod 34Operativni sistem ne može otkriti postavke uređaja . Pregledajte dokumentaciju isporučenu s opremom i ručno konfigurirajte konfiguraciju na kartici Resursi.


Kod 35Firmver računara nema potrebne informacije za ispravan rad uređaja . Treba ažuriratiBIOS.Za upute kako to učiniti, kontaktirajte svog dobavljača, ili još bolje, koristite usluge iskusnog tehničara.


Kod 36Uređaju je potreban prekid za rad.PCIi uređaj je konfiguriran za prekidJE,ili obrnuto . Postavke treba promijenitiBIOSkontaktirajte iskusnog tehničara.


Kod 37Operativni sistem ne prepoznaje drajver za ovaj uređaj . Ponovo instalirajte drajver (opisano gore).


Kod 38OS ne može učitati drajver za uređaj jer, prethodna verzija drajvera ostaje u memoriji . Morate ponovo pokrenuti računar. Pokrenite Čarobnjak za rješavanje problema ako se ne pokrene (Svojstva - Općenito - Rješavanje problema) i slijedite upute čarobnjaka. Nakon toga slijedi obavezno ponovno pokretanje.


Kod 39OS ne može učitati drajver uređaja. Vozač je oštećen ili uopšte ne postoji . Ponovo instalirajte drajver kao što je gore opisano.


Šifra 40Nema pristupa opremi jer nema informacija u sistemskom registru ili informacija sadrži grešku . Ponovo instalirajte drajver.


Šifra 41Uređaj nije otkriven . Pokrenite Čarobnjak za rješavanje problema (gore opisan), ako ovo ne pomogne, ažurirajte konfiguraciju hardvera (pogledajte gore) ili ažurirajte upravljački program. Ako ne, instalirajte još nova verzija vozači.


Šifra 42Sistem već ima takav drajver. Odnosno, postoje dva različitim uređajima sa istim imenom, vjerovatno zbog greške . Ponovo pokrenite računar.


Kod 43Zaustavljanje uređaja zbog problema s njegovim radom . Pokrenite Čarobnjak za rješavanje problema i slijedite njegova uputstva.


Kod 44Aplikacija ili usluga zaustavila je vaš uređaj . Ponovo pokrenite računar.


Kod 45Uređaj nije povezan . Povežite svoj uređaj.


Kod 46Ova greška se pojavljuje kada se operativni sistem isključi. Ne morate ništa da radite, sledeći put kada pokrenete OS sve će raditi.


Kod 47 Uređaj je pripremljen za sigurno uklanjanje, ali još nije uklonjen (na primjer, fleš disk) . Uklonite uređaj, zatim se ponovo povežite, ponovo pokrenite računar.


Kod 48Uređaj, odnosno njegov softver je blokiran . Ažurirajte drajver ili instalirajte novi.


Kod 49Uređaj se ne može pokrenuti jer ima veliku košnicu sistemskog registra koja premašuje prihvatljive parametre registra . Uklonite uređaje koji se ne koriste iz registra. Ovo možete učiniti: Upravitelj uređaja - Prikaz - Prikaži skrivene uređaje. Ovdje ćete vidjeti skrivene uređaje koji nisu povezani s vašim računarom. Izaberite uređaje koje želite da uklonite, kliknite na Svojstva za uređaj - Driver - Remove, zatim pratite uputstva čarobnjaka i na kraju ponovo pokrenite računar.


Vodič za uklanjanje virusa s računala vlastitim rukama. Sve metode uklanjanja virusa stvarno rade i testirane su u praksi, instrukcija korak po korak sa ilustracijama - jednostavno i dostupno čak i za školarce + video tutorijali + ultraiso program za kreiranje programa za preuzimanje + korisnih linkova do alata u borbi protiv virusa. Preuzmite arhivu