Windows 7-sidefeilminne. Feilkoder for enhetsbehandling. Overvåking av minnebruk i Windows

I min forrige artikkel "" snakket jeg om egenskapene til Windows 7 Resource Monitor (Resource Monitor), forklarte hvordan du bruker den til å overvåke fordelingen av systemressurser mellom prosesser og tjenester, og nevnte også at den kan brukes til å løse spesifikke problemer - for eksempel å analysere minneforbruk. Dette er nøyaktig hva denne artikkelen vil diskutere.

Litt om hukommelse

Før jeg starter analysen, vil jeg kort snakke om hvordan minnet styres. Dette vil gjøre det lettere for deg å forstå hvilken informasjon som presenteres i Windows 7 Resource Monitor.

Windows 7 Memory Manager lager et virtuelt minnesystem som består av tilgjengelig fysisk RAM og en sidefil på harddisken. Dette gjør at operativsystemet kan tildele minneblokker (sider) med fast lengde med sekvensielle adresser i fysisk og virtuelt minne.

Starter Windows 7 Resource Monitor

For å starte Windows 7 Resource Monitor, åpne Start-menyen, skriv "Resmon.exe" i søkefeltet og klikk . I vinduet som åpnes velger du "Minne"-fanen (fig. A).

Figur A: Minne-fanen i Windows 7 Resource Monitor gir detaljert minnetildelingsinformasjon.

Prosesstabell

Minne-fanen har en prosesstabell (figur B) som viser alle kjørende prosesser og deler opp minnebruk i flere kategorier.


Figur B: Informasjon om minnebruk for hver prosess er delt inn i flere kategorier.

Kolonne "Bilde"

I "Bilde"-kolonnen er navnet angitt kjørbar fil prosess. Prosesser, lansert av applikasjoner, det er veldig enkelt å finne ut - for eksempel hører prosessen "notepad.exe" helt klart til Notepad. Prosesser kalt "svchost.exe" representerer ulike operativsystemtjenester. Tjenestenavnet vises i parentes ved siden av prosessnavnet.

Prosess ID kolonne

Kolonnen Prosess ID (PID) indikerer prosessnummeret - en unik kombinasjon av tall som lar deg identifisere prosessen som kjører.

«Fullført»-kolonnen

Commit-kolonnen angir mengden virtuelt minne, i kilobyte, som systemet har reservert for denne prosessen. Dette inkluderer både det fysiske minnet som brukes og sidene som er lagret i personsøkingsfilen.

Kolonne "Arbeidssett"

Working Set-kolonnen angir mengden fysisk minne i kilobyte som brukes av prosessen i dette øyeblikket tid. Arbeidssettet består av offentlig og privat minne.

Kolonne "Generelt"

Kolonnen Delbar angir mengden fysisk minne i kilobyte som denne prosessen deler med andre. Deling av et enkelt minnesegment eller bytteside for relaterte prosesser kan spare minneplass. Dette lagrer fysisk bare én kopi av siden, som deretter tilordnes det virtuelle adresserommet til andre prosesser som har tilgang til den. For eksempel alle prosesser initiert av systemet DLL-er- Ntdll, Kernel32, Gdi32 og User32 - bruk delt minne.

Kolonne "Privat"

Privat-kolonnen angir mengden fysisk minne, i kilobyte, som utelukkende brukes av denne prosessen. Det er denne verdien som lar deg bestemme hvor mye minne en bestemt applikasjon trenger for å operere.

Kolonnen "Feil på siden mangler fra minnet/sek."

I kolonnen "Feil på siden tom for minne/sek." (Harde feil/sek) viser gjennomsnittlig antall side uten minnefeil per sekund i løpet av det siste minuttet. Hvis en prosess prøver å bruke mer fysisk minne enn det som er tilgjengelig for øyeblikket, skriver systemet noen av dataene fra minne til disk – til sidefilen. Etterfølgende tilgang til data som er lagret på disk kalles en side tom minnefeil.

Hva betyr side ut av minnefeil?

Nå som du har en ide om hvilken informasjon som samles inn i prosesstabellen, la oss se hvordan du kan bruke den til å overvåke minneallokering. Når du kjører applikasjoner og arbeider med filer, overvåker minnebehandlingen arbeidssettstørrelsen for hver prosess og registrerer forespørsler om ekstra minneressurser. Etter hvert som arbeidssettet til en prosess øker, matcher avsenderen disse forespørslene til behovene til kjernen og andre prosesser. Hvis den tilgjengelige adresseplassen er utilstrekkelig, reduserer avsenderen arbeidssettstørrelsen ved å lagre data fra minne til disk.

Senere, når du leser disse dataene fra disken, oppstår det en feil med side tom for minne. Dette er ganske normalt, men hvis det oppstår feil samtidig for forskjellige prosesser, krever systemet ekstra tid for å lese data fra disken. For hyppige side-ut-av-minne-feil reduserer følgelig systemytelsen. Du har sannsynligvis opplevd uventede nedganger i alle applikasjoner, som da også plutselig stoppet. Denne nedgangen var nesten helt sikkert på grunn av aktiv dataomfordeling mellom fysisk minne og bytte.

Konklusjonen følger: hvis side ut av minnefeil for en bestemt prosess forekommer for ofte og regelmessig, har ikke datamaskinen nok fysisk minne.

For å gjøre det mer praktisk å overvåke prosesser som forårsaker hyppige feil ved siden av minnet, kan du merke dem med flagg. I dette tilfellet vil de valgte prosessene flyttes til toppen av listen, og i grafen over manglende sidefeil vil de bli representert av en oransje kurve.

Det er verdt å tenke på at minneallokering avhenger av en rekke andre faktorer, og overvåking av side-ut-av-minne-feil er verken best eller den eneste måten identifisere problemer. Det kan imidlertid tjene som et godt utgangspunkt for observasjon.

Tabell "Fysisk minne"

Tabellen prosesser gir detaljert informasjon om minneallokering mellom individuelle prosesser, mens tabellen fysisk minne gir et helhetlig bilde RAM-bruk. Dens nøkkelkomponent er det unike histogrammet vist i fig. C.


Figur C: Histogrammet i tabellen fysisk minne gir en oversikt over minnedistribusjon i Windows 7.

Hver del av histogrammet er indikert med sin egen farge og representerer en bestemt gruppe med minnesider. Etter hvert som systemet brukes, kommer minnebehandlingen inn bakgrunn flytter data mellom disse gruppene, og opprettholder en delikat balanse mellom fysisk og virtuelt minne for å sikre at alle applikasjoner kjører effektivt. La oss se nærmere på histogrammet.

Seksjon "Reservert utstyr"

Til venstre er delen "Maskinvare reservert", indikert i grått: dette er minnet som er tildelt for behovene til den tilkoblede maskinvaren, som den bruker til å samhandle med operativsystemet. Minne reservert for maskinvaren er låst og kan ikke nås av minnebehandlingen.

Vanligvis varierer mengden minne som er tildelt utstyret fra 10 til 70 MB, men dette tallet avhenger av den spesifikke systemkonfigurasjonen og kan i noen tilfeller nå flere hundre megabyte. Komponenter som påvirker mengden reservert minne inkluderer:

;
Komponenter hovedkort- for eksempel avansert programmerbar input/output interrupt controller (APIC);
lydkort og andre enheter som utfører minnetilordnede input/output;
PCI Express (PCIe) buss;
skjermkort;
en rekke brikkesett;
flash-stasjoner.

Noen brukere klager over at systemene deres reserverer unormalt mye minne til maskinvaren. Jeg har aldri vært borti en slik situasjon, og derfor kan jeg ikke gå god for effektiviteten til den foreslåtte løsningen, men mange bemerker at oppdatering av BIOS-versjonen kan løse problemet.

delen "I bruk".

I bruk-delen, vist i grønt, representerer mengden minne som brukes av systemet, drivere og kjørende prosesser. Mengden minne som brukes, beregnes som "Total"-verdien minus summen av "Modified", "Standby" og "Free"-indikatorene. På sin side er "Total"-verdien "Installert RAM"-indikatoren minus "Reservert utstyr"-indikatoren.

Seksjon "Endret"

"Endret"-delen er uthevet i oransje, som representerer minne som har blitt endret, men ikke brukt. Den brukes faktisk ikke, men kan brukes når som helst ved behov igjen. Hvis minnet ikke har vært brukt på lenge, overføres dataene til sidefilen og minnet går inn i kategorien "Venter".

Seksjon "Venter"

Avventende delen, vist i blått, representerer minnesider som har blitt fjernet fra arbeidssett, men som fortsatt er knyttet til dem. Med andre ord er kategorien "Venter" faktisk en cache. Minnesider i denne kategorien er tildelt en prioritet fra 0 til 7 (maksimalt). Sider knyttet til høyprioriterte prosesser får maksimal prioritet. For eksempel har delte prosesser høy prioritet, så sidene som er knyttet til dem gis høyest prioritet i Venter-kategorien.

Hvis en prosess krever data fra en venteside, returnerer minnebehandlingen umiddelbart den siden til arbeidssettet. Alle sidene i Venter-kategorien er imidlertid tilgjengelige for registrering av data fra andre prosesser. Når en prosess trenger ekstra minne, og det ikke er nok ledig minne, velger minnebehandlingen ventesiden med lavest prioritet, initialiserer den og allokerer den til forespørselsprosessen.

Seksjon "Gratis"

Gratis-kategorien, indikert i blått, representerer sider med minne som ennå ikke er allokert til noen prosess eller har blitt frigjort når en prosess avsluttes. Denne delen viser både ubrukt og frigjort minne, men faktisk tilhører ubrukt minne en annen kategori - "Zero Pages", som kalles så fordi disse sidene er initialisert til null og klare til bruk.

Om problemet med ledig minne

Nå som du har en grunnleggende forståelse av hvordan minnebehandlingen fungerer, la oss ta et øyeblikk for å adressere en vanlig misforståelse om minnebehandlingssystemet i Windows 7. Som du kan se fra figur 1. C, Den ledige minneseksjonen er en av de minste i histogrammet. Det er imidlertid en feil å anta på dette grunnlaget at Windows 7 bruker for mye minne og at systemet ikke kan fungere ordentlig hvis det er så lite ledig minne.

Faktisk er det helt motsatt. I sammenheng med Windows 7s tilnærming til minneadministrasjon, er ledig minne ubrukelig. Jo mer minne som brukes, jo bedre. Ved å maksimere minnet og hele tiden flytte sider fra en kategori til en annen ved hjelp av et prioritert system, forbedrer Windows 7 effektiviteten og forhindrer at data havner i sidefilen, og forhindrer at utsidefeil reduserer ytelsen.

Minneovervåking

Vil du se Windows 7s minnestyringssystem i aksjon? Start datamaskinen på nytt og åpne Ressursmonitoren for Windows 7 umiddelbart etter oppstart. Gå til fanen Minne og vær oppmerksom på forholdet mellom seksjoner i det fysiske minnehistogrammet.

Begynn deretter å starte applikasjoner. Mens du løper, se histogrammet endre seg. Når du har startet så mange applikasjoner som mulig, begynner du å lukke dem én om gangen og se hvordan forholdet mellom seksjoner i det fysiske minnehistogrammet endres.

Ved å gjøre dette ekstreme eksperimentet vil du forstå hvordan Windows 7 administrerer minnet på din spesielle datamaskin, og du vil kunne bruke Windows 7 Resource Monitor til å overvåke minneallokering under normale daglige driftsforhold.

Hva tror du?

Liker du ideen om å bruke Windows 7 Resource Monitor for å overvåke minnetildeling? Del din mening i kommentarene!

Forebyggende/ikke-forebyggende algoritmer.

I tilfelle av en forebyggende algoritme operativsystem når som helst kan avbryte utførelsen av den gjeldende tråden og bytte prosessoren til en annen tråd. I ikke-preemptive algoritmer bestemmer tråden som gis til prosessoren kun når kontrollen skal overføres til operativsystemet.

Algoritmer med kvantisering.

Hver tråd får en tidsdel der tråden kan kjøres på prosessoren. Når kvantumet utløper, bytter operativsystemet prosessoren til neste tråd i køen. Quantum er vanligvis lik et helt antall systemtimerintervaller 1.

Algoritmer med prioriteringer.

Hver tråd er tildelt en prioritet - et heltall som indikerer graden av privilegium til tråden. Operativsystemet, hvis det er flere tråder klare til å kjøre, velger tråden med høyest prioritet.

Windows implementerer en blandet planleggingsalgoritme – forebyggende, basert på kvantisering og prioriteringer.

  1. Multitasking-type for DOS-applikasjon
  2. Servicegarantier
  3. Planlegging av forgrunnsprosesser
  4. Hensikten med personsøkerfilen
  5. Prosessene P1, P2, P3 tildeler 100, 20, 80 MB minne. Systemet har 128 MB RAM. Hva er størrelsen på okkupert minne i sidefilen. Hva er størrelsen på byttefilen.
  1. Hva er en "sidefeil"?

Avbryt 14 -Sidefeil (#PF): Intel386...

Genereres hvis sidemotoren er aktivert (CR0.PG = 1) og en av følgende situasjoner oppstår når en lineær adresse oversettes til en fysisk:

  • element i sidetabellen eller sidekatalogen som brukes i adresseoversettelse, har null tilstedeværelsesbit, dvs. den nødvendige sidetabellen eller siden er ikke til stede i det fysiske minnet;
  • prosedyren ikke har privilegium nivå, tilstrekkelig til å få tilgang til den valgte siden, eller forsøker å skrive til en side som er skrivebeskyttet for gjeldende rettighetsnivå.

Sidefeilbehandleren henter informasjon om årsaken fra to kilder: feilkoden, som skyves inn på stabelen, og innholdet i CR2-registeret, som inneholder den lineære adressen som forårsaket feilen. Sidefeilkoden har et spesielt format (fig. 3.7.).

Et avbrutt program, etter å ha eliminert årsakene som forårsaket sidefeilen (for eksempel lasting av en side i det fysiske minnet), kan fortsette uten ytterligere justeringer.

Hvis en sidefeil ble forårsaket på grunn av brudd på sidesikkerhetsprivilegier, settes tilgangsbiten (A) i den tilsvarende sidekatalogoppføringen. Oppførselen til tilgangsbiten i det tilsvarende elementet i sidetabellene for dette tilfellet er ikke regulert i Intel-prosessorer og kan være forskjellige i forskjellige modeller.

  1. Høy intensitet sidefeil sier:

Programusikkerhet

RAM-upålitelighet

Annet: forklar

Kolonnen "Feil på siden mangler fra minnet/sek."

I kolonnen "Feil på siden tom for minne/sek." (Harde feil/sek) viser gjennomsnittlig antall side uten minnefeil per sekund i løpet av det siste minuttet. Hvis en prosess prøver å bruke mer fysisk minne enn det som er tilgjengelig for øyeblikket, skriver systemet noen av dataene fra minne til disk – til sidefilen. Etterfølgende tilgang til data som er lagret på disk kalles en side tom minnefeil.

Hva betyr side ut av minnefeil?

Nå som du har en ide om hvilken informasjon som samles inn i prosesstabellen, la oss se hvordan du kan bruke den til å overvåke minneallokering. Når du kjører applikasjoner og arbeider med filer, overvåker minnebehandlingen arbeidssettstørrelsen for hver prosess og registrerer forespørsler om ekstra minneressurser. Etter hvert som arbeidssettet til en prosess øker, matcher avsenderen disse forespørslene til behovene til kjernen og andre prosesser. Hvis den tilgjengelige adresseplassen er utilstrekkelig, reduserer avsenderen arbeidssettstørrelsen ved å lagre data fra minne til disk.

Senere, når du leser disse dataene fra disken, oppstår det en feil med side tom for minne. Dette er ganske normalt, men hvis det oppstår feil samtidig for forskjellige prosesser, krever systemet ekstra tid for å lese data fra disken. For hyppige feil ved siden av minnet reduserer henholdsvis systemytelsen. Du har sannsynligvis opplevd uventede nedganger i alle applikasjoner, som da også plutselig stoppet. Denne nedgangen var nesten helt sikkert på grunn av aktiv dataomfordeling mellom fysisk minne og bytte.

Konklusjonen følger: hvis side ut av minnefeil for en bestemt prosess forekommer for ofte og regelmessig, Datamaskinen har ikke nok fysisk minne.

For å gjøre det mer praktisk å overvåke prosesser som forårsaker hyppige feil ved siden av minnet, kan du merke dem med flagg. I dette tilfellet vil de valgte prosessene flyttes til toppen av listen, og i grafen over manglende sidefeil vil de bli representert av en oransje kurve.

Det er verdt å huske på at minnetildeling avhenger av en rekke andre faktorer, og overvåking av side-ut-av-minne-feil er ikke den beste eller eneste måten å identifisere problemer på. Det kan imidlertid tjene som et godt utgangspunkt for observasjon.

  1. Hvordan bestemmes trådprioritet i Windows?

Prioriteringer

Windows OS implementerer forebyggende prioritetsplanlegging, når hver tråd er tildelt en viss numerisk verdi - en prioritet, i samsvar med hvilken prosessoren er tildelt den. Tråder med samme prioritering er planlagt i henhold til Round Robin-algoritmen (karusell). En viktig fordel med systemet er muligheten til å forhindre tråder som kjører i kjernemodus - den utøvende systemkoden er fullstendig reentrant. Bare tråder som holder en spinlock er ikke forhåndsaktivert (se "Synkronisere tråder"). Derfor brukes spinlocks med stor forsiktighet og er satt til en minimumstid.

Systemet har 32 prioritetsnivåer. Seksten prioritetsverdier (16-31) tilsvarer prioritetsgruppen i sanntid, femten verdier (1-15) er for normale tråder, og en verdi på 0 er reservert for systemsidens nullstillingstråd (se figur 6.2) ).

Ris. 6.2. Trådprioriteringer

For å spare brukeren fra å måtte huske numeriske verdier prioriteringer og være i stand til å endre planleggeren, introduserte utviklerne i systemet prioritert abstraksjonslag. For eksempel kan prioritetsklassen for alle tråder i en bestemt prosess settes ved hjelp av et sett med konstante parametere for SetPriorityClass-funksjonen, som kan ha følgende verdier:

  • sanntid (REALTIME_PRIORITY_CLASS) - 24
  • høy (HIGH_PRIORITY_CLASS) - 13
  • over normalen (ABOVE_NORMAL_PRIORITY_CLASS) 10
  • normal (NORMAL_PRIORITY_CLASS) - 8
  • under normalen (BELOW_NORMAL_PRIORITY_CLASS) - 6
  • og inaktiv (IDLE_PRIORITY_CLASS) 4

Den relative prioriteten til en tråd er satt av lignende parametere for SetThreadPriority-funksjonen:

Et sett med seks prosessprioritetsklasser og syv trådprioritetsklasser danner 42 mulige kombinasjoner og lar oss danne den såkalte grunnleggende trådprioriteten

Standard grunnprioritet for en prosess og primærtråd er verdien i midten av prosessprioritetsområdene ( 24, 13, 10, 8, 6 eller 4). Å endre prioriteringen til en prosess innebærer å endre prioriteringene til alle dens tråder, mens deres relative prioriteringer forblir uendret.

Prioritetene 16 til 31 er egentlig ikke sanntidsprioriteter fordi Windows' myke sanntidsstøtte gir ingen garantier om trådtiming. Dette er rett og slett høyere prioriteter som er reservert for systemtråder og de trådene som gis slik prioritet av en bruker med administrative rettigheter. Tilstedeværelsen av sanntidsprioriteringer, samt foruttakbarhet av kjernekode, lokalisering av minnesider (se "Betjening av minnebehandlingen") og en rekke tilleggsfunksjoner- alt dette lar deg utføre det i OS-miljøet Windows-applikasjoner myk sanntid, for eksempel multimedia. Systemtråden med null prioritet er opptatt med å tømme minnesider. Vanlige brukertråder kan ha prioriteter fra 1 til 15.


Relatert informasjon.


Minnetildeling i Windows 9x og Windows NT. Windows 7 Resource Monitor. Utforsk minnerelaterte elementer og faner. Bruke Windows 7 Resource Monitor for å overvåke minnetildeling. Øke størrelsen på personsøkingsfilen (virtuelt minne). Sjekker minne ved hjelp av Windows.

3.1. Minnetildeling i Windows 9x

Windows 9x OS er et 32-bits multi-threaded OS med forebyggende multitasking og et grafisk brukergrensesnitt. For å starte opp bruker de MS-DOS 7.0, som gir to moduser for prosessordrift - ekte (BootGUI=0 er skrevet i MSDOS.SYS-filen) og beskyttet (BootGUI=1). Beskyttet modus installeres like før Windows 9x starter opp, noe som får prosessoren til å begynne å administrere minne ved hjelp av personsøkermekanismen virtuelle adresser til fysiske. Det virtuelle adresseområdet består av 4 kilobyte sider som er plassert i RAM eller på disk.

Lavordnede adresser til det virtuelle adresserommet brukes i fellesskap av alle prosesser for å sikre kompatibilitet med sanntidsenhetsdrivere, residente Windows-programmer osv. Dette er på den ene siden praktisk, men reduserer på den annen side påliteligheten (en av hovedkvalitetene til OS), fordi enhver prosess kan ødelegge komponenter som befinner seg på disse adressene.

Hvert 32-bits Windows-applikasjonsprogram kjører i sitt eget adresserom, men tilgang til de nødvendige adressene er mulig, dvs. organiseringen av virtuelle adresser bruker ikke all maskinvarebeskyttelsen innebygd i mikroprosessoren. 16-biters programmer deler et felles adresseområde og er også sårbare for hverandre. Windows 9x-minnemodellen er vist i fig. 3.1.

Ris. 3.1. OP-distribusjoner i Windows 9x

De nederste 64 KB med OP er ikke tilgjengelige for 32-bits programmer, men 16-biters programmer kan skrive dataene sine her. Adresser under 4 MB er tilordnet adresserommet til hvert applikasjonsprogram og deles av alle prosesser. Dette gjør dette området sårbart for utilsiktet skriving.

Minste nødvendige minnemengde for at Windows 9x skal fungere er 4 MB, men det er praktisk talt umulig å jobbe med denne minnemengden. Side fil , ved hjelp av hvilken den virtuelle minnemekanismen er implementert, ligger i Windows-katalogen og har en variabel størrelse, endret om nødvendig av systemet selv. Dimensjonene kan stilles inn ved hjelp av systemverktøy (Kontrollpanel → System → Ytelse → Filsystem), eller spesifiseres i SYSTEM.INI-delen av filen - linjer som indikerer stasjonen og filnavnet:

Pagingfive=c:\PageFile.sys

MinPagingFileSize=65536 (64 MB)

MaxPagingFileSize=262144 (256 MB)

Den første og andre linjen definerer filnavnet og dens plassering, og de to siste - den opprinnelige og maksimale størrelsen på sidefilen i KB.

Minimum personsøkerfilstørrelse kan oppnås ved å kjøre SysMon (System Monitor) og velge personsøkerfilstørrelsen og mengden ledig minne som nødvendige parametere for å estimere minnekravene til de mest brukte programmene.

3.2. Minnetildeling i Windows NT

Forskjellene mellom distribusjonsskjemaet og Windows 9x kommer ned til følgende:

1) mer seriøs bruk av maskinvareminnebeskyttelse gitt i mikroprosessoren;

2) alle systemprogramvaremoduler er plassert i sine egne virtuelle adresserom og applikasjonsprogrammer kan ikke få tilgang til dem.

Fordelingen av adresserom i Windows NT er vist i fig. 3.2.

Ris. 3.2. OP-distribusjoner i Windows NT

Applikasjonsprogrammer tildeles 2 GB lokalt (egen) lineært (ustrukturert) adresserom (de første 64 KB er ikke tilgjengelig). De er isolert fra hverandre og kan kun kommunisere med hverandre gjennom utklippstavlen, eller gjennom mekanismene DDE (Dynamic Data Exchange) og OLE (Object Linking and Embedding).

Den øvre delen av 2 GB-området inneholder koden for system-DLL-er (dynamisk koblede biblioteker) som fungerer som serverprosesser. De sjekker verdiene til spørringsparametere, utfører den forespurte funksjonen og sender resultatene tilbake til anropsprogrammets adresserom.

I adresseområdet 2-4 GB er det systemkomponenter (lavt nivå) av Windows (dvs. det høyeste nivået av beskyttelse mot uautorisert tilgang: kjerne, trådplanlegger, minnebehandling).

For 16-biters Windows-applikasjoner implementeres WOW-økter (Windows On Windows) i forebyggende multitasking-modus, individuelt i sine egne adresseområder eller sammen i et delt adresseområde.

Når en applikasjon startes, opprettes en prosess med en egen informasjonsstruktur som oppgaven startes innenfor. Den kan kjøre andre oppgaver. Som et resultat organiseres en multitasking-driftsmodus.

Minnehåndtering (allokering, reservasjon, frigjøring, personsøking) utføres av VMM virtuell minnebehandling (Virtual Memory Manager). Hver virtuell side overføres til en fysisk side - en sideramme, i utgangspunktet fylt med nuller (dette er hovedkravet til C2-nivåsikkerhetssystemstandarden, som bestemmer umuligheten av å bruke deres tidligere innhold av andre prosesser). Plass for sidebytte er reservert i sidefilen Pagefile.sys, som er en reservert blokk med diskplass.

Alle Windows-minne NT er delt inn i forbeholdt(for dynamisk bruk av prosesser når du utfører oppgaver), dedikert(som opplasting er reservert for i Pagefile.sys) og tilgjengelig(resten av det ledige minnet).

      Virtuelt minne i Windows

Den vanligste årsaken til systemnedgang er Windows-kontroll- fylle fysisk minne. Samtidig begynner Windows den såkalte "paging" - flytting av blokker med kode og programdata (hver slik blokk kalles en side) fra fysisk minne til harddisken. Å få tilgang til sidefilen fra tid til annen er normalt og forringer ikke systemytelsen, men hyppige forespørsler om data fra en fil på disk kan redusere den totale systemhastigheten betydelig. Dette problemet er spesielt merkbart når du bytter mellom flere minnekrevende programmer på en datamaskin som ikke inneholder nok fysisk minne. Som et resultat er disken nesten konstant i bruk, fordi systemet prøver å "pumpe" data fra den til minnet og tilbake.

Hvis den totale størrelsen på tildelt minne overstiger den totale mengden fysisk minne, må Windows "pumpe" sider mellom den raske RAM-en og det mye tregere virtuelle minnet i sidefilen, noe som får systemet til å tregere.

I prosess Windows installasjoner XP-sidefilen opprettes automatisk i rotmappen på samme disk hvor systemfilene er plassert Windows-filer. Størrelsen på personsøkingsfilen bestemmes basert på mengden fysisk minne på systemet. Misligholde minste størrelse Sidefilen er 1,5 ganger større enn mengden fysisk minne, og maksimal størrelse er 3 ganger større. Byttefilen kan sees i Utforsker-vinduet hvis du aktiverer modusen for visning av skjulte filer og systemfiler (fig. 3.3).

Ris. 3.3. Aktiverer visning av skjulte filer og systemfiler

Vanligvis setter Windows-operativsystemet selv den optimale mengden virtuelt minne og det er nok for de fleste oppgaver, men hvis datamaskinen kjører applikasjoner som krever mye minne, kan mengden virtuelt minne endres.

For å gjøre dette, må du utføre følgende handlingssekvens:

1. Logg på systemet med en konto fra administratorgruppen og åpne vinduet "Kontrollpanel – System".

2. På "Avansert"-fanen klikker du på "Alternativer"-knappen i "Ytelse"-delen (fig. 3.4).

3. I dialogboksen Ytelsesalternativer velger du kategorien Avansert og klikker på Endre-knappen (Figur 3.5) for å vise dialogboksen Virtuelt minne, som er vist i Figur 3.5. 3.6 for Windows XP og i fig. 3.7 for Windows 7.

Gjeldende personsøkingsfilinnstillinger gjenspeiles i feltet "Total sidefilstørrelse på tvers av alle stasjoner".

4. Velg en stasjon fra listen øverst i dialogboksen for å konfigurere innstillingene for den stasjonen.

Du kan endre følgende innstillinger:

- Spesiell størrelse. Skriv inn verdien i feltet Original størrelse for å angi startstørrelsen på pagefile.sys-filen på den angitte disken (i megabyte). I felt Maksimal størrelse skriv inn et tall som ikke er mindre enn verdien i feltet Original størrelse, men ikke over 4096 MB (4 GB).

- Størrelse etter systemvalg. Velg dette alternativet for å aktivere dynamisk administrasjon av personsøkingsfilstørrelsen for av denne disken. Velg dette alternativet hvis du ikke vil endre standardinnstillingene som Windows tilbyr.

- Ingen byttefil. Bruk for alle stasjoner der du ikke trenger en sidefil. Sørg for at det er en byttefil på minst én stasjon.

5. Etter å ha gjort endringer, klikk Sett for å registrere endringer.

6. Gjenta trinn 4 og 5 for andre stasjoner (om nødvendig). Klikk OK for å lukke dialogboksen når du er ferdig.

Ris. 3.4. "Alternativer"-knapp for å gå til visning og/eller

endre virtuelle minneparametere

Ris. 3.5. "Endre"-knapp for å gå til å endre innstillinger for virtuelt minne i WindowsXP (venstre) og i Windows7

Ris. 3.6. Vindu for visning og innstilling av størrelsen på det virtuelle minnet

Ris. 3.7. Vindu for å vise og stille inn størrelsen på det virtuelle minnet i Windows 7

Hvis datamaskinen din har flere fysiske disker, er det best å plassere sidefilen på den raskeste, og det er å foretrekke hvis systemfiler Windows vil være på en annen stasjon. Det er enda bedre å dele sidefilen i flere fysisk disker fordi diskkontrolleren kan behandle flere skrive- og leseforespørsler parallelt.

Ikke prøv å plassere personsøkerfilen på flere logiske stasjoner på én fysisk stasjon!!!

Hvis systemet har én harddisk delt inn i partisjonene C, D og E, og sidefilen er fordelt over flere partisjoner, kan systemet til og med bremse ned, siden i denne konfigurasjonen må de magnetiske hodene til harddisken lese data fra flere områder, i stedet for fra ett til et annet. ett område av disken.

Hvis du reduserer minimum eller maksimum personsøkerfilstørrelse og oppretter en ny personsøkerfil på disk, må du starte systemet på nytt for at endringene skal tre i kraft. Å øke størrelsen på sidefilen krever vanligvis ikke omstart av datamaskinen.

Hvis du har mye fysisk minne, kan du bli fristet til å deaktivere sidefilen helt. Ikke gjør det! !!

Windows XP ble designet for å bruke sidefilen til å utføre noen kjerneoppgaver, så noen tredjepartsprogrammer kan rapportere lite minne når de prøver å deaktivere virtuelt minne fullstendig.

Windows bruker ikke sidefilen før den er nødvendig, så deaktivering av virtuelt minne vil ikke forbedre ytelsen!!!

Windows kan dynamisk øke sidefilstørrelsen etter behov. Denne funksjonen fungerer bare når du velger " Systemvalgbar størrelse", samt når du angir en maksimal størrelse større enn gjeldende størrelse på personsøkingsfilen.

Basert på erfaring med tidligere versjoner av Windows, prøver noen brukere å lage en personsøkerfil med fast størrelse med lik initial og maksimale dimensjoner. I teorien burde dette forbedre ytelsen fordi det eliminerer muligheten for sidefilfragmentering. Imidlertid er personsøkerundersystemet utformet slik at filen i praksis bare opptar store blokker med diskplass, noe som gjør fragmenteringen minimal. Du kan merke et lite ytelsestreff når Windows øker størrelsen på sidefilen, men dette er en engangsoperasjon og har ingen innvirkning på gjennomsnittlig ytelse.

      Overvåking av minnebruk i Windows

Den enkleste måten å finne ut hvor mye RAM som brukes på et gitt tidspunkt, er å åpne Task Manager ved å klikke på ++ og gå til "Ytelse"-fanen (fig. 3.8). En detaljert beskrivelse av informasjonen i "Ytelse"-fanen for Windows XP er presentert i tabellen. 3.1.

Tabell 3.1. Dekryptering av Task Manager-data

"Ytelse"-fanen for Windows7 har betydelige innovasjoner sammenlignet med den tilsvarende Manager-fanen Windows-oppgaver XP.

Tallet i "Total"-kolonnen i delen "Fysisk minne" indikerer den totale mengden RAM for dette systemet. Kolonnen Bufret viser mengden fysisk minne som nylig ble brukt av systemressurser. Den forblir i hurtigbufferen i tilfelle systemet trenger den igjen, men er tilgjengelig for andre prosesser. Den nye «Tilgjengelig»-kolonnen angir mengden ubrukt fysisk minne for øyeblikket, og «Gratis»-kolonnen indikerer mengden minne som brukes av hurtigbufferen, men som ikke inneholder nyttig informasjon.

"Kernel Memory"-delen inneholder to kolonner - "Paged" og "Nonpaged". Sammen indikerer de hvor mye minne kjernen bruker. Sidesøkt er virtuelt minne, og ikke-søkt er fysisk minne.

I delen "System" dukket det opp kolonner for "Håndtak" og "Tråder", assosiert med prosesskomponentene. Kolonnen "Deskriptorer" angir antall objektidentifikatorer (deskriptorer) som brukes av prosesser som kjører for øyeblikket. Tråder-kolonnen viser antall underprosesser som kjører i større prosesser. Tallet i "Prosesser"-kolonnen indikerer selvfølgelig det totale antallet kjørende prosesser, som kan sees på fanen "Prosesser".

«Ope Time»-kolonnen angir hvor mye tid som har gått siden forrige gang datamaskinen ble startet. Kolonnen "Commit" inneholder informasjon om personsøkingsfilen. Det første tallet angir den totale mengden fysisk og virtuelt minne som er i bruk, og det andre tallet angir den totale mengden minne for en gitt datamaskin i prinsippet.

Enda mer detaljert informasjon kan fås ved å klikke på "Ressursmonitor"-knappen og velge "Minne"-fanen (fig. 3.9).

Ris. 3.9. Minne-fanen i Windows 7 Resource Monitor-vinduet

På fanen "Minne" er det en "Prosesser"-tabell, som viser alle prosesser som kjører, og informasjon om minnet som brukes for hver prosess er delt inn i flere kategorier (fig. 3.10).

Ris. 3.10. Prosesstabell

I en kolonne" Bilde" indikerer navnet på den kjørbare prosessens fil. Prosessene som kjøres av applikasjoner er veldig enkle å gjenkjenne - for eksempel hører prosessen "Winword.exe" helt klart til Word-tekstredigereren. Prosesser kalt "svchost.exe" representerer ulike operativsystemtjenester. Tjenestenavnet vises i parentes ved siden av prosessnavnet.

I en kolonne" Prosess-ID» indikerer prosessnummeret - en unik kombinasjon av tall som lar deg identifisere prosessen som kjører.

I kolonnen " Fullført" indikerer mengden virtuelt minne i kilobyte som er reservert av systemet for denne prosessen. Dette inkluderer både det fysiske minnet som brukes og sidene som er lagret i personsøkingsfilen.

I kolonnen " Arbeidssett" indikerer mengden fysisk minne i kilobyte som brukes av prosessen på et gitt tidspunkt. Arbeidssettet består av offentlig og privat minne.

I en kolonne" Generell" indikerer mengden fysisk minne i kilobyte som denne prosessen deler med andre. Deling av et enkelt minnesegment eller bytteside for relaterte prosesser kan spare minneplass. Dette lagrer fysisk bare én kopi av siden, som deretter tilordnes det virtuelle adresserommet til andre prosesser som har tilgang til den. For eksempel er alle prosesser igangsatt systembiblioteker DLL-er - Ntdll, Kernel32, Gdi32 og User32 - bruker delt minne.

I kolonnen " Privat" indikerer mengden fysisk minne i kilobyte som utelukkende brukes av denne prosessen. Det er denne verdien som lar deg bestemme hvor mye minne en bestemt applikasjon trenger for å operere.

I kolonnen " Side tom for minne feil/sek."Det gjennomsnittlige antall side uten minnefeil per sekund i løpet av det siste minuttet er angitt. Hvis en prosess prøver å bruke mer fysisk minne enn det som er tilgjengelig for øyeblikket, skriver systemet noen av dataene fra minne til disk – til sidefilen. Etterfølgende tilgang til data som er lagret på disk kalles en side tom minnefeil.

Når du kjører applikasjoner og arbeider med filer, overvåker minnebehandlingen arbeidssettstørrelsen for hver prosess og registrerer forespørsler om ekstra minneressurser. Etter hvert som arbeidssettet til en prosess øker, matcher avsenderen disse forespørslene til behovene til kjernen og andre prosesser. Hvis den tilgjengelige adresseplassen er utilstrekkelig, reduserer avsenderen arbeidssettstørrelsen ved å lagre data fra minne til disk.

Senere, når du leser disse dataene fra disken, oppstår det en feil med side tom for minne. Dette er ganske normalt, men hvis det oppstår feil samtidig for forskjellige prosesser, krever systemet ekstra tid for å lese data fra disken. For hyppige side-ut-av-minne-feil reduserer følgelig systemytelsen. Dette viser seg i uventede nedganger i alle applikasjoner, som da også uventet stopper opp. Nedgangen skyldes aktiv omfordeling av data mellom fysisk minne og swap.

Konklusjonen følger: hvis side ut av minnefeil for en bestemt prosess forekommer for ofte og regelmessig, har ikke datamaskinen nok fysisk minne.

For å gjøre det mer praktisk å overvåke prosesser som forårsaker hyppige feil ved siden av minnet, kan du merke dem med flagg. I dette tilfellet vil de valgte prosessene flyttes til toppen av listen, og i grafen over manglende sidefeil vil de bli representert av en oransje kurve.

Det er verdt å huske på at minnetildeling avhenger av en rekke andre faktorer, og overvåking av side-ut-av-minne-feil er ikke den beste eller eneste måten å identifisere problemer på. Det kan imidlertid tjene som et godt utgangspunkt for observasjon.

Processes-tabellen gir detaljert informasjon om minneallokeringen mellom individuelle prosesser, og Physical Memory-tabellen gir et samlet bilde av RAM-bruken. Dens nøkkelkomponent er det unike histogrammet vist i fig. 3.11.


Figur 3.11. Histogrammet i "Fysisk minne"-tabellen lar deg få en oversikt over minnedistribusjon i Windows 7

Hver del av histogrammet er indikert med sin egen farge og representerer en bestemt gruppe med minnesider. Når systemet brukes, flytter minnebehandlingen data mellom disse gruppene i bakgrunnen, og opprettholder en delikat balanse mellom fysisk og virtuelt minne for å sikre at alle applikasjoner kjører effektivt. La oss se nærmere på histogrammet.

Til venstre er delen " Reservert utstyr", angitt i grått: dette er minnet som er allokert til behovene til det tilkoblede utstyret, som det bruker til å samhandle med operativsystemet. Minne reservert for maskinvaren er låst og kan ikke nås av minnebehandlingen. Vanligvis varierer mengden minne som er tildelt utstyret fra 10 til 70 MB, men dette tallet avhenger av den spesifikke systemkonfigurasjonen og kan i noen tilfeller nå flere hundre megabyte.

Komponenter som påvirker mengden reservert minne inkluderer:

Hovedkortkomponenter - slik som Advanced Programmable I/O Interrupt Controller (APIC);

Lydkort og andre enheter som utfører minnetilordnede input/output;

PCI Express (PCIe) buss;

skjermkort;

En rekke brikkesett;

Flash-stasjoner.

Seksjon " Brukt", angitt i grønt, representerer mengden minne som brukes av systemet, drivere og kjørende prosesser. Mengden minne som brukes beregnes som verdien " Total» minus summen av indikatorer « Endret», « Forventning"Og" Gratis" I sin tur er verdien " Total"er en indikator" Installert"minus indikatoren" Reservert utstyr».

Når en prosess starter i Windows, kan mange av sidene som viser EXE- og DLL-bildene allerede være i minnet fordi de brukes av andre prosesser. Skrivbare bildesider er merket "copy-on-write" slik at de kan deles til de må endres. Hvis operativsystemet gjenkjenner en EXE som allerede er utført, kan det registrere sidekoblingsmønsteret (ved hjelp av en teknologi som Microsoft kaller Super-Fetch). Denne teknologien prøver å pumpe opp mange av de nødvendige sidene på forhånd (selv om prosessen ennå ikke har mottatt sidefeil på dem). Dette reduserer programstartforsinkelse (lesing av sider fra disk overlapper med utføring av initialiseringskoden til bildene). Denne teknologien forbedrer ytelsen til diskutdata fordi diskdrivere lettere kan organisere leseoperasjoner (for å redusere den nødvendige søketiden). Denne forhåndssøkingsprosessen brukes både under systemoppstart og når bakgrunnsapplikasjon kommer i forgrunnen når systemet går ut av dvalemodus.

Forhåndshenting støttes av minnebehandlingen, men er implementert som en egen systemkomponent. Sidesøkte sider settes ikke inn i prosessens sidetabell; i stedet settes de inn i en standby-liste hvorfra de raskt kan settes inn i prosessen (uten tilgang til disken).

Ikke-tilordnede sider er litt forskjellige - de initialiseres ikke ved å lese fra en fil. I stedet, første gang en ikke-tilordnet side åpnes, gir minnebehandlingen en ny fysisk side (sørg for at innholdet er fylt med nuller av sikkerhetsgrunner). Ved påfølgende sidefeil kan det hende at den ikke-tilordnede siden må finnes i minnet eller må leses fra sidefilen.

On-demand personsøking i minnebehandlingen styres av sidefeil. Hver feil forårsaker et avbrudd i kjernen. Kjernen bygger deretter en maskinuavhengig deskriptor (som rapporterer hva som skjedde) og sender den til den utøvende minnebehandleren. Minnebehandlingen sjekker deretter tilgangen for gyldighet. Hvis den mislykkede siden faller innenfor den forpliktede regionen, slår den opp adressen i VAD-listen og finner (eller oppretter) prosessens sidetabelloppføring. Når det gjelder en delt side, bruker minnebehandlingen prototypesidetabelloppføringen (knyttet til segmentobjektet) for å fylle ut den nye prosesssidetabelloppføringen.

Formatet til sidetabellelementet varierer avhengig av prosessorarkitekturen. For x86- og x64-prosessorer er elementene på den viste siden vist i fig. 11.17. Hvis et element er merket som gyldig, blir innholdet tolket av maskinvaren (slik at den virtuelle adressen kan oversettes til riktig fysisk side). Ugjengitte sider har også sine elementer, men de er merket som ugyldige, og Maskinvare ignorerer resten av elementet. Programvareformatet er litt forskjellig fra maskinvareformatet og bestemmes av minnebehandlingen. For eksempel, for en ikke-gjengitt side (som må plasseres og tilbakestilles før bruk), er dette faktum notert i sidetabellelementet.


To viktige biter av sidetabelloppføringen oppdateres direkte av maskinvaren. Disse er tilgangsbiten (A) og den modifiserte biten (D). Disse bitene sporer bruken av en gitt sidetilordning for å få tilgang til siden og om siden kan endres av den tilgangen. Dette forbedrer faktisk systemytelsen fordi minnebehandlingen kan bruke tilgangsbiten til å implementere Least-Recently Used (LRU) personsøking. Prinsippet til LRU er at de sidene som har stått ubrukt lengst har lavest sannsynlighet for å bli gjenbrukt i nær fremtid. Tilgangsbiten lar minnebehandlingen fastslå at siden har blitt åpnet. Den "modifiserte" biten forteller minnebehandlingen at siden kan ha blitt endret (eller, enda viktigere, den ikke har blitt endret). Hvis siden ikke har blitt endret siden den ble lest fra disken, trenger ikke minnebehandlingen å skrive innholdet til disken (før den brukes til noe annet).

Både x86- og x64-arkitekturer bruker en 64-biters sidetabelloppføring (se figur 11.17).

Hver sidefeil kan klassifiseres i én av fem kategorier:

1. Siden er ikke fikset.

2. Et forsøk på å få tilgang til en side med tillatelsesbrudd.

3. Et forsøk på å endre en kopi-på-skriv-side.

1. Det er nødvendig å øke stabelen.

2. Siden er fikset, men gitt tid ikke vist.

Det første og andre tilfellet er programmeringsfeil. Hvis et program prøver å bruke en adresse som ikke har en gyldig tilordning, eller prøver å utføre en ulovlig operasjon (som å prøve å skrive til en skrivebeskyttet side), kalles dette et tilgangsbrudd og fører vanligvis til at prosessen avsluttes . Et tilgangsbrudd er ofte et resultat av ugyldige pekerverdier, inkludert tilgang til minne som har blitt deallokert og løsrevet fra prosessen.

Det tredje tilfellet har de samme symptomene som det andre (forsøker å skrive til en skrivebeskyttet side), men håndteringen er annerledes. Siden siden ble merket som kopi-på-skriv, rapporterer ikke minnebehandlingen et tilgangsbrudd. I stedet oppretter den en privat kopi av siden for den gjeldende prosessen og returnerer deretter kontrollen til tråden som forsøkte å skrive til siden. Tråden gjentar skriveoperasjonen, som nå vil fullføres uten sidefeil.

Det fjerde tilfellet oppstår når en tråd skyver en verdi på stabelen sin og treffer en side som ennå ikke er tildelt. Minnebehandleren gjenkjenner dette som et spesielt tilfelle. Så lenge det er plass på de virtuelle sidene reservert for stabelen, vil minnebehandleren levere nye sider, nullstille dem og tilordne dem til prosessen. Når tråden gjenopptar kjøringen, vil den prøve å få tilgang igjen, og denne gangen vil det lykkes.

Og til slutt, det femte tilfellet er en normal sidefeil. Den har imidlertid flere underalternativer. Hvis en side er tilordnet til en fil, må minnebehandlingen se på dens datastrukturer (for eksempel prototypesidetabellen knyttet til segmentobjektet) for å sikre at det ikke er noen kopi av den i minnet. Hvis det er en kopi (for eksempel i en annen prosess, i standby-listen eller i listen over endrede sider), vil han ganske enkelt gjøre den delt (han må kanskje merke den som en kopi-på-skriv-side til gjør dette hvis endringene ikke skal deles). Hvis det ikke er noen kopi ennå, vil minnebehandlingen tildele en ledig fysisk side og forberede den for å kopiere filsiden fra disken til den, med mindre en annen side blir overført fra disken i det øyeblikket (i så fall må du bare vente til overføringen er fullført).

Hvis minnebehandlingen kan håndtere en sidefeil ved å finne siden i minnet (i stedet for å lese den fra disken), kalles feilen en myk feil. Hvis du trenger en kopi fra disken, er dette en hard feil. Myke feil er mye billigere og har liten innvirkning på applikasjonsytelsen (sammenlignet med harde feil). Myke feil kan oppstå fordi den delte siden allerede er tilordnet en annen prosess, eller bare trenger en ny nullstilt side, eller ønsket side ble fjernet fra prosessens arbeidssett, men spørres på nytt før den brukes på nytt. Myke feil kan også oppstå fordi sider har blitt komprimert til effektiv økning fysisk minnestørrelse. For de fleste konfigurasjoner sentral prosessor Minne og I/O i dagens systemer komprimeres mer effektivt, i stedet for å kastes bort på dyr I/O (i form av ytelse og kraft) som krever lesing av en side fra disk.

Når en fysisk side ikke lenger er tilordnet noen prosess sidetabell, går den inn i en av tre lister: gratis, modifisert eller reservert. De sidene som aldri er nødvendig igjen (for eksempel stabelsidene til avslutningsprosessen) frigjøres umiddelbart. De sidene som sannsynligvis vil sidefeil igjen, havner i enten den modifiserte listen eller standby-listen (avhengig av om den "endrede" biten er satt for en sidetabelloppføring som har vist den siden siden den sist ble lest fra disken) . Sider fra den endrede listen vil til slutt bli skrevet til disk og deretter flyttet til reservelisten.

Minnebehandlingen kan tildele sider etter behov (ved å bruke en liste over enten ledige eller ledige sider). Før du tildeler en side og kopierer den fra disk, sjekker minnebehandlingen alltid listene over reservesider og modifiserte sider for å se om siden allerede er i minnet. Foroversøkingsskjemaet i Windows konverterer fremtidige harde feil til myke feil (ved å lese sider som kan være nødvendig og plassere dem på standby-sidelisten). Minnebehandlingen selv gjør en liten mengde personsøking fremover - den får tilgang til grupper av sekvensielle sider (i stedet for individuelle sider). Ytterligere sider blir umiddelbart plassert på standby-sidelisten. Dette er ikke sløsing fordi overheaden til minnebehandlingen er mye mindre enn kostnadene ved å utføre I/O-operasjoner. Å lese en hel gruppe sider er litt dyrere enn å lese en enkelt side.

Elementer i sidetabellen i fig. 11.17 refererer til fysiske (ikke virtuelle) sidetall. For å oppdatere en sidetabelloppføring (og sidekatalog), må kjernen bruke virtuelle adresser. Windows tilordner sidetabellene og sidekatalogene for gjeldende prosess til kjernens virtuelle adresserom ved å bruke selvkartelementet i sidekatalogen (Figur 11.18). Ved å tilordne et sidekatalogelement til en sidekatalog (selvkart), får vi virtuelle adresser som kan brukes til å referere til sidekatalogelementer (fig. 11.18, a) og sidetabellelementer (fig. 11.18, b). Selvkartet opptar 8 MB med virtuelle kjerneadresser for hver prosess (på x86-prosessorer). For enkelhets skyld viser figuren et x86-selvkartelement for 32-biters PTE-oppføringer (Page-Table Entries). Faktisk bruker Windows 64-biters PTE-poster, slik at systemet kan dra nytte av mer enn 4 GB fysisk minne. Med 32-biters PTE-oppføringer bruker selvkartelementet bare én PDE-oppføring (Page-Directory Entry) i sidekatalogen og opptar derfor bare 4 MB adresser i stedet for 8 MB.

Du har koblet til en ny enhet, men den fungerer tregt, eller den gamle enheten har sluttet å fungere, eller fungerer ikke som den skal. Hva skal man gjøre i disse tilfellene? Installere alt på nytt? Det er plagsomt, og det er ikke alltid nødvendig. Hvordan finne ut hva årsaken er og hvordan eliminere den? Veldig enkelt. Faktum er at i Windows-familien av operativsystemer, og ikke bare, det er en vissEnhetsbehandling, faktisk en veldig nødvendig og nyttig leder, hvis du kan kalle ham det. Her er han, han vil hjelpe oss med å finne ut hva som er årsaken til problemet, og juksearket mitt vil hjelpe oss å fikse problemet. Så i det ovennevnteEnhetsbehandling spor av feil i driften av enheter forblir i form av koder. Når du kjenner feilkoden, er det ikke vanskelig å finne årsaken til problemet. For de uinnvidde er koder bare uforståelige og meningsløse tall. Men for en kunnskapsrik bruker kan de fortelle mye. Jeg skal etter beste evne prøve å belyse dette temaet.


For å se enhetsfeil må vi først gå inn i selve Device Manager. Det er gjort slik. Logg innKontrollpanel fra menyenStart ( Kan,Min datamaskin , høyre tast -Egenskaper Enhetsbehandling, eller du kan gjøre det ved å spesifisere en kommando ihenrette , men hvorfor komplisere alt). Hvis vi går gjennomPanel ledelse , da er banen:System - Utstyr - Enhetsbehandling . Velg ved å gå inn i menyenEnhetsbehandling , typen enhet vi er interessert i (tastatur, skriver, modem, etc.), dobbeltklikk på den, som et resultat vil vi se enhetene som er inkludert i denne typen. Velg enheten vi trenger og dobbeltklikk på den. Se på kolonnen på Om-fanengenerelt, enhetsstatus. Hvis det er et problem med driften av enheten, vil det vises her som en feilkode. Så vi ser tall og tall. Hva mener de? Nedenfor gir jeg full liste feil, med Kort beskrivelse feil og mulige måter eliminering. Feilkoden er uthevet i rødt, beskrivelsen i blått og løsningen i svart.

Kode 1Det er et problem med å sette opp enheten, nei riktige innstillinger eller driveren mangler. Klikk på knappen Oppdater driveren , for å starte veiviserenMaskinvareoppdatering . Hvis det ikke er noen driver i det hele tatt, installer den.

Kode 3Enhetsdriveren er skadet, eller det er ikke nok RAM til at enheten skal fungere korrekt.1. La oss fjerne den skadede driveren og installere en ny. For å gjøre dette: Egenskaper - Driver - Slett, følg deretter instruksjonene til veiviseren. Start på nytt. Åpner igjenEnhetsbehandling Handling Oppdater maskinvarekonfigurasjonen og følg instruksjonene til mesteren. 2. Hvis problemet er mangel på virtuelt minne, lukk kjørende programmer for å frigjøre minne. For å sjekke minnetilstanden må vi gå tilOppgavebehandling , for å gjøre dette, trykk på hurtigtastenCtrl+Shift+Esc.Vi kan se de virtuelle minneinnstillingene ved å høyreklikkeDatamaskinen min Egenskaper - Avansert - Ytelse - Innstillinger (Alternativer) . Du kan prøve å øke byttefilen (jeg beskrev hvordan dette gjøres i en av mine tidligere bloggartikler), men dette er langt fra et radikalt tiltak. Du må øke RAM. Hvordan dette gjøres er et eget tema utenfor rammen av dette innlegget.

Kode 10I registerdelen er det en parameter som tilsvarer enhetenFailReasonString,verdien av denne parameteren vises i feildataene, det vil si at hvis det ikke er noen parameter som sådan, vises en feilkode, med andre ord kan enheten ikke startes. Oppdater driveren som ovenfor. Eller installer en nyere.

Kode 12Det er ingen tilførsel av ressurser som kreves for denne enheten. Deaktiver andre fungerende enheter, minst én, for å gjøre dette, bruk feilsøkingsveiviseren, som, hvis du følger instruksjonene, vil deaktivere den motstridende enheten. (La meg kort minne deg på: Egenskaper - Generelt - Feilsøking.)

Kode 14Krever omstart av PC for at denne enheten skal fungere.

Kode 16Det er umulig å identifisere ressursene som er nødvendige for at enheten skal fungere; enheten er ikke fullstendig konfigurert. Du må tilordne ekstra ressurser til enheten. Men dette kan gjøres uten problemer hvis enheten tilhørerPlug and Play.

Egenskaper - Ressurser. Hvis det er en ressurs med tegnet ? i listen over ressurser, velg den for å tilordne den valgte enheten. Hvis ressursen ikke kan endres, klikkEndre innstillinger , hvis denne funksjonen ikke er tilgjengelig, fjern merketAutomatisk oppsett

Kode 18Installer enhetsdriveren på nytt. Vi prøver å oppdatere driveren eller fjerne den og gjør det som i eksempelet medkode 3.

Kode 19Det er utilstrekkelig informasjon i registeret om enhetsinnstillinger, eller innstillingene er ødelagte. LøpeFeilsøkingsveiviser og følg instruksjonene hans, hvis det ikke hjelper, installer enheten på nytt som nevnt ovenfor. (kode 3). Eller, hvis det ikke hjelper, last nedSiste kjente gode konfigurasjon. Hvis dette ikke hjelper, trenger du hjelp fra en spesialist, akkurat som du trenger å redigere systemregisteret. Uten kunnskap og erfaring er det ingenting for deg å gjøre på egen hånd; enhver systemadministrator vil bekrefte dette overfor deg. Han som er kunnskapsrik og dyktig, vet hvordan det skal gjøres selv, uten meg. Og for en uerfaren person er det bedre å ikke prøve. Registeret er hjertet av operativsystemet, og bare en erfaren spesialist, eller under hans tilsyn, bør utføre operasjoner på det. Jeg vil ikke fornærme noen på noen måte, men hvis du ikke har jobbet med systemregisteret og hvis du verdsetter datamaskinen din, er mitt råd å glemme veien dit. Jeg skriver ikke for profesjonelle, de trenger det ikke, men for den gjennomsnittlige brukeren. Selvfølgelig kan jeg skrive hvordan og hva jeg skal gjøre der, men dette vil være en manuell forklaring, og hvis du skader datamaskinen din som følge av den minste feil, får jeg skylden. Jeg trenger ikke dette i det hele tatt, og det gjør ikke du heller.

Kode 21 Enheten blir fjernet fra systemet, det vil si at operativsystemet prøver å fjerne enheten, men prosessen er ennå ikke fullført.


Pause i noen sekunder og trykk på tasten


Kode 22 Enheten er deaktivert. Enheten må være slått på.Handling - Aktiver og følg ytterligere instruksjoner.


Kode 24 Enheten mangler eller er feil installert, driveren fungerer ikke, enheten kan ha blitt klargjort for fjerning. Fjern enheten og installer på nytt.


Kode 28 Ingen sjåfør. Installer driveren. For å gjøre dette, må du oppdatere driveren, følg trinnene som i instruksjonene for kode 1.


Kode 29Enheten er deaktivert . Du må la enheten operere i innstillingerBIOSLes instruksjonene for bruk av enheten.


Kode 31Systemet kunne ikke laste inn drivere for denne enheten . Oppdater driverne som beskrevet ovenfor.


Kode 32Driveren for denne enheten er deaktivert i systemregisteret . Avinstaller og installer driveren på nytt (beskrevet ovenfor)


Kode 33Operativsystemet kan ikke bestemme ressursene for dette enheter . Sett opp enheten eller bytt den ut.


Kode 34Operativsystemet kan ikke oppdage innstillinger enheter . Se gjennom dokumentasjonen som følger med utstyret og konfigurer konfigurasjonen manuelt på fanen Ressurser.


Kode 35PC-fastvaren har ikke den nødvendige informasjonen for korrekt enhetens drift . Trenger å oppdatereBIOS.For instruksjoner om hvordan du gjør dette, kontakt din leverandør, eller enda bedre, bruk tjenestene til en erfaren tekniker.


Kode 36Enheten krever et avbrudd for å fungere.PCIog enheten er konfigurert til å avbryteER EN,eller vice versa . Innstillinger må endresBIOSkontakt en erfaren tekniker.


Kode 37Operativsystemet gjenkjenner ikke driveren for denne enheten . Installer driveren på nytt (beskrevet ovenfor).


Kode 38OS kan ikke laste inn driveren for enheten fordi, den forrige driverversjonen forblir i minnet . Du må starte PC-en på nytt. Kjør feilsøkingsveiviseren hvis den ikke starter (Egenskaper - Generelt - Feilsøking) og følg veiviserens instruksjoner. Etterpå er det en obligatorisk omstart.


Kode 39OS kan ikke laste inn enhetsdriveren. Føreren er skadet eller det eksisterer ikke i det hele tatt . Installer driveren på nytt som beskrevet ovenfor.


Kode 40Det er ikke tilgang til utstyret fordi det ikke er informasjon i systemregisteret eller informasjonen inneholder en feil . Installer driveren på nytt.


Kode 41Enheten ble ikke oppdaget . Kjør feilsøkingsveiviseren (beskrevet ovenfor), hvis dette ikke hjelper, oppdater maskinvarekonfigurasjonen (se ovenfor) eller oppdater driveren. Hvis ikke, installer mer ny verson sjåfører.


Kode 42Systemet har allerede en slik driver. Det vil si at det er to forskjellige enheter med samme navn, muligens på grunn av en feil . Start PC-en på nytt.


Kode 43Stopper enheten på grunn av problemer med driften . Kjør feilsøkingsveiviseren og følg instruksjonene.


Kode 44En app eller tjeneste har stoppet enheten din . Start PC-en på nytt.


Kode 45Enheten er ikke tilkoblet . Koble til enheten din.


Kode 46Denne feilen vises når operativsystemet slås av. Du trenger ikke å gjøre noe, neste gang du starter operativsystemet vil alt fungere.


Kode 47 Enheten er klargjort for sikker fjerning, men har ennå ikke blitt fjernet (for eksempel en flash-stasjon) . Fjern enheten, koble til igjen, start PC-en på nytt.


Kode 48Enheten, eller snarere programvaren, er blokkert . Oppdater driveren eller installer en ny.


Kode 49Enheten kan ikke startes fordi den har en stor systemregisterstruktur som overskrider akseptable registerparametere . Fjern enheter som ikke brukes fra registeret. Du kan gjøre dette: Enhetsbehandling - Vis - Vis skjulte enheter. Her vil du se skjulte enheter som ikke er koblet til din PC. Velg enhetene du vil fjerne, klikk Egenskaper for enheten - Driver - Fjern, følg deretter instruksjonene til veiviseren og start til slutt PC-en på nytt.


En guide for å fjerne eventuelle virus fra en PC med egne hender. Alle metoder for fjerning av virus fungerer og er testet i praksis, trinn-for-trinn instruksjon med illustrasjoner - enkelt og tilgjengelig selv for et skolebarn + videoopplæringer + ultraiso-program å lage nedlastere + nyttige lenker til verktøy i kampen mot virus. Last ned arkiv