Mit mondanak a lap elfogyott memória hibák? Eszközkezelő hibakódok 100 Fizikai memória hiba

Mit mondanak a lap elfogyott memória hibák? Eszközkezelő hibakódok 100 Fizikai memória hiba

Amikor egy folyamat elindul a Windows rendszerben, az EXE- és DLL-fájlokat megjelenítő oldalak közül sok már a memóriában lehet, mert más folyamatok használják őket. Az írható képoldalak "írásra másolás" címkével vannak ellátva, így megoszthatók mindaddig, amíg módosítani kell őket. Ha operációs rendszer felismeri a már futó EXE-t, meg tudja írni az oldalhivatkozássablont (a Microsoft által Super-Fetch-nek nevezett technológia segítségével). Ez a technológia sok szükséges oldalt megpróbál előre letölteni (bár a folyamat még nem kapott oldalhibákat rajtuk). Ez csökkenti az alkalmazások indításának késleltetését (az oldalak lemezről történő olvasása rá van hárulva a képek inicializálási kódjának végrehajtására). Ez a technológia javítja a lemezkimeneti teljesítményt azáltal, hogy megkönnyíti a lemezmeghajtók számára az olvasási műveletek összehangolását (a szükséges keresési idő csökkentése érdekében). Ezt az előlehívási folyamatot a rendszer a rendszerindítás során is használják, valamint amikor egy háttéralkalmazás kerül előtérbe, és amikor a rendszer visszatér a hibernált állapotból.

A továbbítási lapozást a memóriakezelő támogatja, de külön rendszerkomponensként valósítja meg. A kicserélt oldalak nem kerülnek be a folyamat oldaltáblázatába, hanem egy készenléti listába kerülnek, ahonnan gyorsan beilleszthetők a folyamatba (lemez hozzáférés nélkül).

A leképezetlen oldalak némileg különböznek egymástól – nem fájlból való kiolvasással inicializálódnak. Ehelyett egy leképezetlen oldal első elérésekor a memóriakezelő új fizikai oldalt biztosít (biztonsági okokból ügyelve arra, hogy annak tartalma nulla legyen). Későbbi oldalhibák esetén előfordulhat, hogy a leképezetlen oldalt meg kell találni a memóriában, vagy ki kell olvasni a swap fájlból.

Az igény szerinti lapozást a memóriakezelőben az oldalhibák vezérlik. Minden hiba megszakítást okoz a kernelben. A kernel ezután létrehoz egy gépfüggetlen leírót (ami jelenti a történteket), és átadja a futásidejű memóriakezelőnek. A memóriakezelő ezután ellenőrzi a hozzáférés érvényességét. Ha a sikertelen oldal a véglegesített területre esik, akkor megkeresi a címet a VAD listában, és megkeresi (vagy létrehozza) a folyamat oldaltábla bejegyzését. Megosztott oldal esetén a memóriakezelő a prototípus laptábla bejegyzést (a szegmensobjektumhoz társítva) használja a folyamat új oldaltábla bejegyzésének feltöltéséhez.

Az oldaltábla bejegyzési formátuma a processzor architektúrától függően eltérő. x86 és x64 processzorok esetén a megjelenített oldal elemei a 2. ábrán láthatók. 11.17. Ha egy elem érvényesként van megjelölve, akkor annak tartalmát a hardver értelmezi (így a virtuális cím érvényes fizikai oldalra fordítható). A rendereletlen oldalaknak is vannak saját elemei, de ezek érvénytelennek vannak jelölve, és Hardver figyelmen kívül hagyja az elem többi részét. A szoftver formátuma kissé eltér a hardveres formátumtól, és a memóriakezelő határozza meg. Például egy leképezetlen oldal esetében (amelyet használat előtt el kell helyezni és nullázni kell) ezt a tényt az oldaltábla bejegyzésében fel kell jegyezni.


Az oldaltábla bejegyzésének két fontos bitjét közvetlenül a hardver frissíti. Ezek a hozzáférési bit (A) és a megváltoztatott bit (D). Ezek a bitek nyomon követik a felhasználást adott leképezés oldalakat az oldal eléréséhez, valamint az oldal módosításának lehetőségét ezzel a hozzáféréssel. Ez valóban javítja a rendszer teljesítményét, mivel a memóriakezelő a hozzáférési bitet használhatja a legkevésbé használt (LRU) lapozás megvalósítására. Az LRU elve az, hogy azoknak az oldalaknak van a legkisebb esélyük, hogy a közeljövőben újra felhasználják azokat, amelyeket a leghosszabb ideig nem használtak. A hozzáférési bit lehetővé teszi a memóriakezelő számára, hogy megállapítsa, hogy az oldalt elérték-e. A "módosított" bit azt jelzi a memóriakezelőnek, hogy az oldalt módosították (vagy ami még fontosabb, nem módosították). Ha az oldalt nem módosították a lemezről való olvasás óta, akkor a memóriakezelőnek nem kell a tartalmát lemezre írnia (mielőtt másra használná).

Mind az x86, mind az x64 architektúra 64 bites oldaltábla bejegyzést használ (lásd: 11.17. ábra).

Minden oldalhiba öt kategória valamelyikébe sorolható:

1. Az oldal nincs rögzítve.

2. Próbálja meg elérni az engedélyt megsértő oldalt.

3. Próbálja meg módosítani a másolás írásra oldalt.

1. Növelni kell a köteget.

2. Az oldal fix, de be rendelkezésre álló idő nem jelenik meg.

Az első és a második eset programozási hiba. Ha egy program olyan címet próbál meg használni, amelynek nincs érvényes leképezése, vagy illegális műveletet próbál végrehajtani (például írásvédett oldalra próbál írni), ezt hozzáférési jogsértésnek nevezzük, és általában a folyamat leállását eredményezi. A hozzáférés megsértése gyakran érvénytelen mutatóértékek eredménye, beleértve a felszabadított és a folyamatból leválasztott memóriához való hozzáférést.

A harmadik esetnek ugyanazok a tünetei, mint a másodiknak (írási kísérlet írásvédett oldalra), de a kezelése más. Mivel az oldal írás-másolás megjelölést kapott, a memóriakezelő nem dob hozzáférési szabálysértést. Ehelyett privát másolatot készít az oldalról az aktuális folyamathoz, majd visszatér ahhoz a szálhoz, amely megpróbált írni az oldalra. A szál újra megpróbálja az írási műveletet, amely most oldalhiba nélkül fejeződik be.

A negyedik eset akkor fordul elő, amikor egy szál egy értéket tol a verembe, és olyan oldalra érkezik, amely még nincs lefoglalva. A memóriakezelő ezt speciális esetként ismeri fel. Amíg van hely a verem számára fenntartott virtuális oldalakon, a memóriakezelő új oldalakat biztosít, nullázza őket, és leképezi őket a folyamatra. Amikor a szál folytatja a végrehajtást, újra megpróbálja a hozzáférést, és ezúttal sikerülni fog.

És végül, az ötödik eset egy normál oldalhiba. Ennek azonban több alváltozata van. Ha egy oldal le van képezve egy fájlra, akkor a memóriakezelőnek meg kell vizsgálnia annak adatstruktúráit (például a szegmensobjektumhoz társított prototípus oldaltáblázatot), hogy megbizonyosodjon arról, hogy nincs másolata a memóriában. Ha van másolat (például egy másik folyamatban, a készenléti listában vagy a módosított oldalak listájában), akkor egyszerűen megosztottá teszi (lehet, hogy meg kell jelölnie írásra másolás oldalként, ha a módosításokat nem kívánja megosztani). Ha még nincs másolat, a memóriakezelő kijelöl egy szabad fizikai oldalt, és előkészíti a fájl egy oldalának a lemezről történő átmásolására, kivéve, ha éppen egy másik oldal kerül átvitelre a lemezről (ebben az esetben csak meg kell várni, amíg ez az átvitel befejeződik).

Ha a memóriakezelő úgy tudja kezelni a laphibát, hogy megtalálja a megfelelő oldalt a memóriában (ahelyett, hogy lemezről olvasná), akkor a hibát soft faultnak nevezik. Ha másolásra van szüksége a lemezről, akkor ez kemény hiba. A lágy hibák sokkal olcsóbbak, és csekély hatással vannak az alkalmazás teljesítményére (a hard bugokhoz képest). Lágy hibák azért fordulhatnak elő, mert a megosztott oldalt már hozzárendelték egy másik folyamathoz, vagy csak egy új nullázott oldalra van szükség, ill. kívánt oldalt eltávolították egy folyamat munkakészletéből, de újra lekérik, mielőtt újra felhasználnák. Lágy hibák azért is előfordulhatnak, mert az oldalakat tömörítették a fizikai memória méretének hatékony növelése érdekében. A legtöbb CPU konfigurációhoz memória és I/O bemenet jelenlegi rendszerek hatékonyabb a tömörítés, ahelyett, hogy elpazarolná a drága I/O-t (teljesítmény és energiafogyasztás szempontjából), amihez az oldal lemezről történő beolvasása szükséges.

Amikor fizikai oldal már nem jeleníti meg egyik folyamat oldaltáblázata sem, három lista egyikébe esik: ingyenes, módosított vagy tartalék. Azok az oldalak, amelyekre soha többé nem lesz szükség (például egy befejező folyamat kötegoldalai), azonnal felszabadulnak. Azok az oldalak, amelyek ismét oldalhibát adhatnak, vagy a módosított listában vagy a tartaléklistában vannak (attól függően, hogy a "módosított" bit be lett-e állítva bármely oldaltábla-bejegyzéshez, amely ezt az oldalt megjelenítette, mióta legutóbb lemezről olvasták). A módosított lista oldalai végül lemezre kerülnek, majd átkerülnek a tartaléklistára.

A memóriakezelő szükség szerint lefoglalhat oldalakat (a szabad vagy lefoglalt oldalak listáját használva). Egy oldal lefoglalása és lemezről történő másolása előtt a memóriakezelő mindig ellenőrzi a fenntartott és módosított oldalak listáját, hogy megnézze, van-e már az oldal a memóriában. A Windows lapozási sémája a jövőbeli súlyos hibákat lágy hibákká alakítja (az esetlegesen szükséges oldalak elolvasásával és a tartaléklistára helyezésével). Maga a memóriakezelő kis mennyiségű lapozást hajt végre – egymás utáni oldalak csoportjaihoz fér hozzá (ahelyett egyes oldalak). További oldalak azonnal felkerül a tartalék oldalak listájára. Ez nem pazarlás, mivel a memóriakezelő többletköltsége sokkal kevesebb, mint az I/O műveletek végrehajtásának költsége. Egy teljes oldalcsoport elolvasása valamivel drágább, mint egyetlen oldal elolvasása.

ábra oldaltáblázat elemei. 11.17 hivatkozik a fizikai (nem virtuális) oldalszámokra. A kernelnek virtuális címeket kell használnia az oldaltábla bejegyzésének (és az oldalkönyvtárnak) frissítéséhez. A Windows leképezi az aktuális folyamat oldaltábláit és oldalkönyvtárait a kernel virtuális címterére az oldalkönyvtár önleképezési elemével (11-18. ábra). Ha egy oldalkönyvtár bejegyzést leképezünk egy oldalkönyvtárra (self-map), virtuális címeket kapunk, amelyek segítségével hivatkozhatunk oldalkönyvtár bejegyzésekre (11.18a ábra) és oldaltábla bejegyzéseire (11.18b ábra). Az önleképezés folyamatonként 8 MB kernel virtuális címet foglal el (x86 processzorokon). Az egyszerűség kedvéért az ábrán az x86 önleképezési elem látható a 32 bites PTE rekordokhoz (Page-Table Entries). Valójában a Windows 64 bites PTE-ket használ, így a rendszer több mint 4 GB fizikai memóriát tud használni. A 32 bites PTE bejegyzéseknél az önleképezési elem csak egy PDE bejegyzést (Page-Directory Entry) használ az oldalkönyvtárban, ezért csak 4 MB címet foglal el, nem 8 MB-ot.

Sok számítástechnikai rendszer tartalmazza a memóriakezelő egyik vagy másik verzióját (más néven memóriakezelő - MUP), amelynek segítségével a többfeladatos operációs rendszer az egyes feladatokhoz memóriát foglal le, és védelmet nyújt a felhasználói programokkal szemben. Tipikus probléma például akkor fordul elő, ha egy alkalmazásprogram hibát követ el a cím kiszámításakor, esetleg túl nagy vagy túl kicsi indexértéket használ. Ha nincs védelem a rendszerben, az ilyen jellegű hiba megváltoztathatja az operációs rendszer programjaiban szereplő kódokat, vagy módosíthatja az eszköztáblázatokat, és akár az eszköz nem tervezett elindulását is okozhatja végzetes következményekkel, például jogosulatlan írással az adatfájlba.

Amellett, hogy megvédi az operációs rendszert a véletlen megsemmisüléstől, a memóriakezelő automatikus programáthelyezést is biztosít. A memóriakezelő a felhasználói programok logikai vagy programcímeit fizikai vagy hardvercímekké alakítja. Ezek a címek a memóriában teljesen másként helyezkedhetnek el, mint ahol a logikai címek mutatnak. A címfordítás az operációs rendszer és a védett I/O eszközök teljes eltávolítását eredményezi a felhasználó címteréből. A felhasználó címterén kívüli memória olvasási vagy írási kísérlete a processzor összeomlását okozza a felhasználó programjában.

Az információ továbbítása általában meghatározott számú bitből álló darabokban történik; A 80386 MP 32 bites darabokat használ, hacsak nincs utasítva, hogy a darabok méretét 16 bitre csökkentse. Ezeket a részeket szavaknak nevezzük. A szó memóriarendszerbe írásának folyamatát ún memória bejegyzés, egy szó emlékezetből való kinyerésének folyamata - emlékezetből olvasni.

Két memóriaelérési mód létezik: véletlenszerű és szekvenciális. A szekvenciális hozzáférést azokban a memóriarendszerekben használják, ahol a szavakat valamilyen előre meghatározott sorrendben érik el. A véletlenszerű hozzáférés ezzel szemben azt a lehetőséget jelenti, hogy egy tárolórendszer szavaihoz tetszőleges sorrendben és megközelítőleg azonos idő alatt hozzá lehet férni.

Bármilyen tökéletes is a memória, amikor a jel áthalad az eszközök között, késések vannak a terjedésében. A terjedési késleltetés az az idő, amely ahhoz szükséges, hogy a logikai jel áthaladjon egy eszközön vagy egy logikai láncot alkotó eszközök sorozatán. Ez a késleltetés figyelembe veszi a mikroáramkörök közötti összes összekötő vonalon áthaladó jelet is.

Közvetlen memóriahozzáférés (DMA)

A közvetlen memóriahozzáférés lehetővé teszi a külső eszközök és a memória közvetlen adatcseréjét, program beavatkozása nélkül. A DMA maximális I/O sebességet és maximális folyamatpárhuzamot biztosít. Míg a megszakításos I/O és a szoftver által vezérelt I/O adatátvitel a processzoron keresztül, addig DMA esetén az adatátvitel közvetlenül az I/O eszköz és a memória között történik.

Az adatbuszok számának minimalizálása érdekében speciális intézkedéseket tesznek annak érdekében, hogy lehetővé tegyék a hagyományos gerinchálózat használatát az RPS-hez. Ezek az intézkedések abból állnak, hogy a processzor felszabadítja az autópályát, a külső eszköz pedig rögzíti és adatátvitelre használja.

A RAP idejére a program végrehajtása általában felfüggesztésre kerül. A trönk felszabadul, amint a RAP kérés vezérlővonal gerjesztődik. A processzor befejezi az aktuális műveletet, felszabadítja a cím- és adatsorokat, és jelet állít az egyik vezérlővonalon, hogy megakadályozza a nem definiált vezérlőjelek véletlen dekódolását.

Az I/O interfész egy speciális regiszter segítségével közvetlenül a memóriába továbbítja az adatokat. Amikor adatátvitelre van szükség, az interfész memóriaciklust kér a processzortól. A nyugtázás után az interfész közvetlenül a memóriába küldi az adatokat, miközben a processzor egy memóriaciklusra szünetet tart. Az átvitelt végrehajtó logikát hívják csatorna.

A csatorna tartalmaz egy regisztert, amely tárolja a memóriahely címét, ahová vagy ahonnan adatátvitel történik.A legtöbb esetben a csatorna tartalmaz egy szószámlálót is a közvetlen átvitelek számának számlálására. Ezenkívül a csatornának tartalmaznia kell egy áramkört, amely biztosítja a vezérlőjelek cseréjét, a szinkronizálást és egyéb segédműveleteket. ábrán. A 13.4 mutatja a logikai kapcsolatokat a CPU és a PDP vezérlő között.

RAP alkatrészek. A DMA fő összetevői egy kérés trigger, egy címregiszter, egy számláló és egy adatregiszter, amelyet a periféria használ. Az adatok DMA csatornán keresztüli továbbítása több lépésből áll: 1) a DMA logika inicializálása a DMA végrehajtásához a gerinchálózat ismételt lefoglalási ciklusai során; 2) aszinkron a RAP programművelet-aktiválása tekintetében; 3) értesítés az átutalások befejezéséről (a számláló jelzésére vagy a készülék állapotának változása következtében); 4) a "tisztítás" program meghívása az átvitel végén; 5) a DMA befejezése egy megszakításkezelő segítségével, amely visszaadja a vezérlést a főprogramnak.

Adatátvitel blokkolása. A nagy sebességű eszközök DMA-eljárása blokkokban végzi az adatátvitelt. Az aktuális program végrehajtásával a processzor elindítja egy adatblokk átvitelét, és meghatározza a blokkot alkotó szavak számát. A szavak tényleges továbbítása azonban egy külön eszköz - a PMA vezérlő - vezérlése alatt történik. Teljes sebesség blokk átvitelt a DMA csatornán csak a memóriaciklus időtartama (olvasás vagy írás) és a DMA vezérlő sebessége korlátozza.

RAP a memóriaciklus elfoglalásával. A program blokkátvitelt kezdeményez úgy, hogy a kezdőcímet a címszámlálóba, a szavak számát pedig a szószámlálóba helyezi. és futási parancs kiadása. Ezt a típusú RAP-ot gyakran RAP-nak nevezik lefoglalja a memória ciklust, mert minden alkalommal körülbelül egy gépi ciklusra szünetelteti a program végrehajtását.

Ha DMA-t memóriaciklussal használunk, az adatátvitel a CPU által végrehajtott egyéb folyamatokkal párhuzamosan történik. A műveletek sorrendje itt ugyanaz, mint a blokk átvitelnél, azzal az eltéréssel, hogy a DMA vezérlő memóriaciklusokat vesz fel a processzortól, és ezért lelassítja a működését (blokk adatátvitel a DMA csatornán is veszi memóriaciklusok, kivéve, ha a DMA-t külön buszon használják).

Megelőző/nem preemptív algoritmusok.

Preemptív algoritmus esetén az operációs rendszer bármikor megszakíthatja az aktuális szál végrehajtását, és a processzort másik szálra válthatja. A nem megelőző algoritmusokban a processzor által adott szál dönti el, hogy mikor adja át az irányítást az operációs rendszernek.

Algoritmusok kvantálással.

Minden szál kap egy időszeletet, amely alatt a szál futhat a processzoron. Amikor a kvantum lejár, az operációs rendszer átkapcsolja a processzort a sor következő szálára. A kvantum általában egyenlő a rendszer időzítő 1 intervallumainak egész számával.

Algoritmusok prioritásokkal.

Minden szálhoz prioritás (prioritás) van hozzárendelve - egy egész szám, amely jelzi a szál jogosultságának mértékét. Az operációs rendszer, ha több végrehajtásra kész szál van, kiválasztja közülük a legmagasabb prioritású szálat.

A Windows vegyes ütemezési algoritmust valósít meg – megelőző, kvantáláson és prioritásokon alapuló.

  1. Multitasking típus DOS alkalmazásokhoz
  2. Szolgáltatási garanciák
  3. Előtérbeli folyamatok ütemezése
  4. A cserefájl célja
  5. A P1, P2, P3 folyamatok 100, 20, 80 MB memóriát foglalnak le. A rendszer 128 MB OP-val rendelkezik. Mi a méret használt memória a cserefájlban. Mekkora a swap fájl mérete.
  1. Mi az az "oldalhiba"?

14. megszakítás -oldal hiba (#PF): Intel386...

Akkor jön létre, ha a lapozási mechanizmus aktiválva van (CR0.PG = 1), és az alábbi helyzetek egyike következik be, amikor lineáris címet fordítanak fizikai címre:

  • a címfordításban használt oldaltáblázat vagy oldalkatalógus eleme, nulla jelenlét bittel rendelkezik, azaz a kívánt oldaltábla vagy oldal nem található a fizikai memóriában;
  • eljárás nem rendelkezik privilégium szint, elegendő a kiválasztott oldal eléréséhez, vagy olyan oldalra próbál írni, amely az aktuális jogosultsági szintnek megfelelően írásvédett.

Az oldalhiba-kezelő két forrásból szerez információkat a hiba okáról: a verembe nyomott hibakódból és a hibát okozó lineáris címet tartalmazó CR2 tartalmából. Az oldal hibakódja speciális formátumú (3.7. ábra).

A megszakadt program az oldalhibát okozó okok (például a fizikai memória oldalbetöltése) megszüntetése után további módosítások nélkül folytatható.

Ha az oldalhibát az oldalbiztonsági jogosultságok megsértése okozta, akkor a hozzáférési bit (A) a megfelelő oldalkönyvtár bejegyzésben be van állítva. A hozzáférési bit viselkedése az oldaltáblázatok megfelelő elemében ebben az esetben nincs szabályozva Intel processzorokés eltérő lehet a különböző modellekben.

  1. A magas oldalhibaarány a következőket jelzi:

A program megbízhatatlansága

A RAM megbízhatatlansága

Egyéb: magyarázd el

Oszlop "Az oldal hiánya miatti hibák / mp."

Az "Oldal elfogyott a memória hibák / mp" oszlopban. (Hard Faults/sec) a memórialaphibák átlagos számát jelzi másodpercenként az utolsó percben. Ha egy folyamat a rendelkezésre állónál több fizikai memóriát próbál használni Ebben a pillanatban idővel a rendszer az adatok egy részét a memóriából lemezre írja - a lapozófájlba. A lemezre mentett adatokhoz való utólagos hozzáférést memóriahiba-nek nevezzük.

Mit jeleznek a lapozási hibák?

Most, hogy van elképzelése arról, hogy milyen információkat gyűjtenek össze a Folyamatok táblázatban, nézzük meg, hogyan használhatjuk ezeket a memóriafoglalás figyelésére. Amikor az alkalmazások elindulnak, és a fájlokkal dolgoznak, a memóriakezelő nyomon követi az egyes folyamatok munkakészletének méretét, és rögzíti a további memória-erőforrásokra vonatkozó kéréseket. Ahogy egy folyamat munkakészlete növekszik, a diszpécser ezeket a kéréseket a kernel és más folyamatok igényeihez igazítja. Ha nem áll rendelkezésre elegendő címterület, a diszpécser csökkenti a munkakészletet az adatok memóriából lemezre mentésével.

Később, amikor ezeket az adatokat a lemezről olvassa, egy lap megfogyatkozott memória hiba lép fel. Ez teljesen normális, de ha a hibák egyszerre lépnek fel a különböző folyamatokban, akkor a rendszernek további időre van szüksége az adatok lemezről történő olvasásához. A túl gyakori memóriahiba miatti lapozás csökkenti a rendszer teljesítményét.. Valószínűleg váratlan lassulást tapasztalt minden alkalmazásban, amely aztán hirtelen leállt. Ez a lassulás szinte bizonyosan a fizikai memória és a csere közötti aktív adatátcsoportosításnak köszönhető.

Ebből az a következtetés következik, hogy ha egy adott folyamatnál túl gyakran, sőt rendszeresen előfordulnak oldalon kívüli hibák, A számítógépnek nincs elég fizikai memóriája.

A gyakori memóriahiányt okozó folyamatok nyomon követésének megkönnyítése érdekében zászlókkal jelölheti meg őket. Ezzel a kiválasztott folyamatok a lista elejére kerülnek, és az oldal elfogyott a memória hibagrafikonja narancssárga görbével jelenik meg.

Érdemes megfontolni, hogy a memóriafoglalás számos más tényezőtől is függ, és a memóriahibák megfigyelése nem a legjobb, és nem az egyetlen módja problémák azonosítása. Azonban jó kiindulópontként szolgálhat a megfigyeléshez.

  1. Hogyan jön létre a szál prioritása a Windows rendszerben

Prioritások

A Windows preemptív prioritás ütemezést valósít meg, amikor minden szálhoz hozzárendelnek egy bizonyos számértéket - egy prioritást, amely szerint egy processzor hozzá van rendelve. Az azonos prioritású szálak a Round Robin algoritmus (körhinta) szerint vannak ütemezve. A rendszer fontos előnye, hogy képes megelőzni a kernel módban futó szálakat – a végrehajtó rendszer kódja teljesen újra belép. Csak a spinlock-ot tartó szálak nincsenek előlegezve (lásd "Szálszinkronizálás"). Ezért a spinlockokat nagy körültekintéssel használják, és minimális időre állítják be.

A rendszernek 32 prioritási szintje van. Tizenhat prioritási érték (16-31) felel meg a valós idejű prioritáscsoportnak, tizenöt érték (1-15) a normál szálaknak, a 0 érték pedig a rendszer oldal-nullázási szálának van fenntartva (lásd 6.2. ábra).

Rizs. 6.2. Szál prioritásai

A fejlesztők bevezették a rendszerbe, hogy megóvják a felhasználót attól, hogy emlékezzen a prioritások számértékeire, és módosítani tudja az ütemezőt. prioritási absztrakciós réteg. Például egy adott folyamat összes szálának prioritási osztálya beállítható a SetPriorityClass függvény konstans paramétereinek készletével, amelyek a következő értékekkel rendelkezhetnek:

  • valós idejű (REALTIME_PRIORITY_CLASS) - 24
  • magas (HIGH_PRIORITY_CLASS) - 13
  • normál felett (ABOVE_NORMAL_PRIORITY_CLASS) 10
  • normál (NORMAL_PRIORITY_CLASS) - 8
  • normál alatti (BELOW_NORMAL_PRIORITY_CLASS) - 6
  • és törött (IDLE_PRIORITY_CLASS) 4

A szál relatív prioritását a SetThreadPriority függvény ugyanazok a paraméterei állítják be:

A hat folyamat prioritási osztály és a hét szál prioritási osztály kombinációja 42 lehetséges kombinációt alkot, és lehetővé teszi az úgynevezett alapszál prioritás kialakítását.

A folyamat alapprioritása és az elsődleges szál alapértelmezés szerint a folyamat prioritási tartományának közepén található ( 24, 13, 10, 8, 6 vagy 4). Egy folyamat prioritásának megváltoztatása megváltoztatja az összes szál prioritását, és a relatív prioritások változatlanok maradnak.

A 16-tól 31-ig terjedő prioritások nem igazán valós idejű prioritások, mivel a Windows puha, valós idejű támogatása nem garantálja a szálak időzítését. Ezek egyszerűen magasabb prioritások, amelyek a rendszerszálak számára vannak fenntartva, és azoknak a szálaknak, amelyeket adminisztrátori jogokkal rendelkező felhasználó adott ilyen prioritásnak. Azonban a valós idejű prioritások jelenléte, valamint a kernelkód előlegezhetősége, a memórialapok lokalizálása (lásd: "Memóriakezelő működése") és számos további jellemzők- mindez lehetővé teszi, hogy az operációs rendszer környezetben végezzen Windows alkalmazások lágy valós idejű, például multimédia. A nulla prioritású rendszerszál a memóriaoldalak nullázásában vesz részt. A normál felhasználói szálak prioritása 1 és 15 között lehet.


Hasonló információk.


Új eszközt csatlakoztatott, de az nem siet dolgozni, vagy a régi eszköz leállt, vagy nem működik megfelelően. Mi a teendő ezekben az esetekben? Újratelepít mindent? Ez egy probléma, és nem mindig szükséges. Hogyan lehet megtudni, mi az oka, és hogyan lehet megszüntetni? Nagyon egyszerű. A helyzet az, hogy a Windows család operációs rendszerében és nem csak, van néhányEszközkezelő, valójában egy nagyon szükséges és hasznos menedzser, ha lehet annak nevezni. Itt van, segít kideríteni, mi a probléma oka, és a csalólapom megoldja a problémát. Tehát a fentiekbenEszközkezelő az eszközök működésében hibák nyomai vannak kódok formájában. A hibakód ismeretében könnyű meghatározni a probléma okát. Az avatatlanok számára a kódok csak érthetetlen és értelmetlen számok. De egy hozzáértő felhasználónak sokat tudnak mondani. Minden erőmmel azon leszek, hogy megvilágítsam ezt a témát.


Az eszközhibák megtekintéséhez először magát az Eszközkezelőt kell megadnunk. Ez így történik. BejelentkezésKezelőpanel menübőlRajt ( Tud,Az én számítógép , Jobb klikkTulajdonságok Eszközkezelő, és a be parancs feladatán keresztül is lehetségesvégrehajtani , de minek bonyolítani a dolgokat). Ha átlépünkPanel menedzsment , akkor az elérési út:Rendszer - Hardver - Eszközkezelő . Válasszon a menübe való belépésselEszközkezelő , a minket érdeklő készülék típusa (billentyűzet, nyomtató, modem stb.), kattintson rá duplán, ennek eredményeként az ebbe a típusba tartozó eszközöket fogjuk látni. Válassza ki a szükséges eszközt, és kattintson rá duplán. Megnézzük a Névjegy lap oszlopátáltalános, készülék állapota. Ha probléma van a készülék működésével, az itt hibakódként jelenik meg. Tehát számokat és számokat látunk. Mit képviselnek. Az alábbiakban bemutatom teljes lista hibákkal, azzal rövid leírás hibák és lehetséges módjai megszüntetése. A hibakód pirossal van kiemelve, leírása kékkel, az elhárítás pedig feketével.

1. kódEszköz beállítási probléma helyes beállításokat vagy a sofőr hiányzik. Kattintson a gombra Illesztőprogram frissítése , a varázsló elindításáhozHardver frissítés . Ha egyáltalán nincs illesztőprogram, telepítse.

3. kódAz eszközillesztő megsérült, mivel opcióként nincs elég RAM az eszköz megfelelő működéséhez.1. Távolítsa el a sérült illesztőprogramot, és telepítsen egy újat. Ehhez: Tulajdonságok - Illesztőprogram - Törlés, majd kövesse a varázsló utasításait. Indítsa újra. Újra nyitunkEszközkezelő Akció Frissítse a hardver konfigurációját és kövesse a varázsló utasításait. 2. Ha a probléma a hiány virtuális memória, zárja be a futó alkalmazásokat a memória felszabadításához. A memória állapotának ellenőrzéséhez be kell jutnunkFeladatkezelő , ehhez nyomja meg a billentyűkombinációtCtrl+Shift+Esc.A virtuális memória beállításait a jobb gombbal kattintva láthatjukA számítógépem Tulajdonságok - Speciális - Teljesítmény - Beállítások (paraméterek) . Megpróbálhatja növelni a swap fájlt (a blogom egyik korábbi cikkében leírtam, hogy ez hogyan történik), de ez messze nem drasztikus intézkedés. Növelni kell RAM. Hogy ez hogyan történik, az egy külön téma, amely túlmutat e bejegyzés keretein.

10. kódA beállításkulcsnak van egy eszközspecifikus beállításaFailReasonString,ennek a paraméternek az értéke jelenik meg a hibaadatokban, vagyis ha nincs paraméter mint olyan, akkor hibakód jelenik meg, vagyis a készülék nem indítható el. Frissítse az illesztőprogramot a fentiek szerint. Vagy telepítsen egy újabbat.

12. kódEhhez az eszközhöz nincs szükség erőforráskészletre. Ehhez kapcsolja ki a többi futó eszközt, legalább egyet, használja a hibaelhárító varázslót, amely, ha követi az utasításait, letiltja az ütköző eszközt. (Röviden, hadd emlékeztesselek: Tulajdonságok – Általános – Hibaelhárítás.)

14. kódAz eszköz működéséhez a számítógép újraindítása szükséges.

16. kódAz eszköz működéséhez szükséges erőforrások azonosítása nem lehetséges, az eszköz nincs teljesen konfigurálva. További erőforrásokat kell hozzárendelnie az eszközhöz. De ez probléma nélkül megtehető, ha az eszköz tartozikPlug and Play.

Tulajdonságok – Erőforrások. Ha az erőforrások listájában van egy ? jelű erőforrás, válassza ki, hogy hozzárendelje a kiválasztott eszközhöz. Ha az erőforrás nem módosítható, kattintson a gombraBeállítások megváltoztatása , ha ez a funkció nem érhető el, törölje a jelölést a négyzetbőlAutomatikus beállítás

18. kódTelepítse újra az eszközillesztőt. Megpróbáljuk frissíteni vagy eltávolítani az illesztőprogramot, és megtesszük a példában leírtak szerintkód 3.

19. kódNincs elegendő információ a beállításjegyzékben az eszköz beállításairól, vagy a beállítások sérültek. FussHibaelhárító varázsló és kövesse az utasításait, ez nem segít - telepítse újra az eszközt, a fent említett módon. (3-as kód). Vagy ha ez nem működik, töltse leUtolsó ismert jó konfiguráció. Ha ez sem segít, akkor szakember segítségére van szükség, hiszen a rendszerleíró adatbázis szerkesztése szükséges. Tudás és tapasztalat híján önerőből ott nincs mit tenni, ezt bármelyik rendszergazda megerősíti helyetted. Tudja és képes, tudja, hogyan kell csinálni nélkülem. A tapasztalatlanoknak pedig jobb, ha nem próbálkoznak. A rendszerleíró adatbázis az operációs rendszer szíve, és csak tapasztalt szakember vagy az ő irányítása alatt végezhet műveleteket rajta. Semmiképpen nem akarok megbántani senkit, de ha nem dolgozott a rendszerleíró adatbázissal, és ha kedves a számítógépe, akkor azt tanácsolom, hogy felejtse el az utat. Nem szakembereknek írok, nekik nem kell, hanem átlagfelhasználónak. Természetesen leírhatom, hogyan és mit csináljak ott, de ez majd az ujjakon lesz a magyarázat, és ha a legkisebb hiba következtében megrongálod a számítógépedet, akkor én leszek a hibás. Nekem egyáltalán nincs rá szükségem, és neked sem.

21. kód Az eszköz eltávolításra került a rendszerből, vagyis az operációs rendszer megpróbálja eltávolítani az eszközt, de a folyamat még nem fejeződött be.


Álljon meg néhány másodpercre, és nyomja meg a gombot


22. kód A készülék le van tiltva. A készüléket be kell kapcsolni.Művelet – Engedélyezés és kövesse a további utasításokat.


24. kód Az eszköz hiányzik vagy hibásan van telepítve, az illesztőprogram meghibásodott, lehet, hogy az eszköz előkészítve az eltávolításra. Távolítsa el az eszközt, és telepítse újra.


28. kód Nincs sofőr. Telepítse az illesztőprogramot. Ehhez frissítenie kell az illesztőprogramot, a lépések megegyeznek az 1-es kódhoz tartozó utasításokkal.


29. kódLetiltott eszköz . Engedélyeznie kell a készülék működését beállításokBIOS,olvassa el a készülék használati útmutatóját.


31. kódA rendszer nem tudott illesztőprogramokat betölteni ehhez az eszközhöz. . Frissítse az illesztőprogramokat a fent leírtak szerint.


32. kódAz eszköz illesztőprogramja le van tiltva rendszerleíró adatbázis . Távolítsa el és telepítse újra az illesztőprogramot (a fent leírtak szerint)


33. kódAz operációs rendszer nem tudja meghatározni az ehhez szükséges erőforrásokat eszközöket . Állítsa be vagy cserélje ki a készüléket.


34. kódAz operációs rendszer nem tudja meghatározni a beállításokat eszközöket . Tekintse át a mellékelt hardverdokumentációt, és konfigurálja manuálisan az Erőforrások lapon.


35. kódA PC firmware nem rendelkezik a megfelelő információval készülék működése . Frissíteni kellBIOS.Az erre vonatkozó utasításokért forduljon a szállítóhoz, de jobb, ha tapasztalt kézműves szolgáltatásait veszi igénybe.


36. kódA készülék működéséhez megszakítás szükséges.PCI,és a készülék megszakításra van állítvaegy,Vagy fordítva . Módosítani kell a beállításokatBIOS,forduljon tapasztalt mesterhez.


37. kódAz operációs rendszer nem ismeri fel az eszköz illesztőprogramját. . Telepítse újra az illesztőprogramot (lásd fent).


38. kódAz operációs rendszer nem tudja betölteni az eszköz illesztőprogramját, mert az illesztőprogram előző verziója a memóriában marad . Újra kell indítania a számítógépet. Futtassa a Hibaelhárító varázslót, ha nem indul el (Tulajdonságok - Általános - Hibaelhárítás), és kövesse a varázsló utasításait. Kötelező újraindítás után.


39. kódAz operációs rendszer nem tudja betölteni az eszközillesztőt. Az illesztőprogram sérült vagy egyáltalán nem . Telepítse újra az illesztőprogramot a fent leírtak szerint.


40. kódA berendezéshez nincs hozzáférés, mivel a rendszerleíró adatbázisban nincs információ, vagy az információ hibát tartalmaz . Telepítse újra az illesztőprogramot.


41. kódAz eszköz nem észlelhető . Futtassa a Hibaelhárító varázslót (lásd fent), ha nem segít, frissítse a hardverkonfigurációt (lásd fent) vagy frissítse az illesztőprogramot. Ha nem, telepítsen többet új verzió járművezetők.


42. kódA rendszer már rendelkezik ilyen meghajtóval. Vagyis kettő van különböző eszközök Val vel ugyanaz a név, valószínűleg hiba miatt . Indítsa újra a számítógépet.


43. kódA készülék leállítása működési problémák miatt . Futtassa a Hibaelhárító varázslót, és kövesse az utasításait.


44-es kódEgy alkalmazás vagy szolgáltatás leállította az eszközt . Indítsa újra a számítógépet.


45-ös kódAz eszköz nincs csatlakoztatva . Csatlakoztassa a készüléket.


46. ​​kódEz a hiba akkor jelenik meg, amikor az operációs rendszer leáll. Semmit nem kell tenni, az operációs rendszer következő indításakor minden működni fog.


47. kód A készüléket előkészítették biztonságos eltávolítása, de még nem törölték (pl. flash) . Távolítsa el az eszközt, majd dugja vissza, és indítsa újra a számítógépet.


48-as kódAz eszköz, vagy inkább annak szoftvere le van tiltva . Frissítse az illesztőprogramot, vagy telepítsen egy újat.


49. kódAz eszköz nem indítható el, mert nagy rendszerleíró adatbázisa van, amely meghaladja érvényes paraméterek Iktató hivatal . Törölje a nem használt eszközöket a rendszerleíró adatbázisból. Ezt megteheti: Eszközkezelő - Nézet - Rejtett eszközök megjelenítése. Itt olyan rejtett eszközöket láthat, amelyek nem csatlakoznak a számítógéphez. Válassza ki az eltávolítani kívánt eszközöket, kattintson az eszköz tulajdonságaira - Illesztőprogram - Eltávolítás, majd kövesse a varázsló utasításait, és végül indítsa újra a számítógépet.


Kézikönyv a vírusok saját kezű eltávolításához a számítógépről. A vírusok eltávolításának minden módszere valóban működik és a gyakorlatban bevált, lépésről lépésre szóló utasítás illusztrációkkal - egyszerű és még egy iskolás számára is elérhető + oktatóvideók + ultraiso program bootloader létrehozásához + hasznos linkek a vírusok elleni küzdelem eszközeihez. Archívum letöltése