Springen naar inhoud

[computer] besturingssystemen paginafout maken


  • Log in om te kunnen reageren

#1

vw85

    vw85


  • 0 - 25 berichten
  • 14 berichten
  • Gebruiker

Geplaatst op 01 mei 2009 - 11:24

Bij scheduling zijn er aspecten die te maken hebben met paginafouten. Kan iemand mij helpen om een paginafout in windows te maken/begrijpen?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

vw85

    vw85


  • 0 - 25 berichten
  • 14 berichten
  • Gebruiker

Geplaatst op 02 mei 2009 - 23:09

Ik zie deze topic nu in ander forum, misschien beter.

Een log file maken waarin een of meer paginafouten worden opgeslagen is een truc om een inzicht te krijgen in de werking van OS en eventueel een probleem proberen op te lossen.

Ik ga misschien mijn vraag herformuleren en wat toevoegen, een reactie op een van de onderstaande is ook goed natuurlijk.

. stuurregisters CPU zichtbaar maken via debug in een shel/DOS
. taskmanager
. taskmanager
. proces monitor
. semaforen tonen
. troubleshooting met belangrijkste tool uit deze: autoruns, contig, diskview, filemon, handle, MASM (voor assembly programming), pageDefrag, processExplorer, processMonitor, regmon..

Bedankt

#3

meijuh

    meijuh


  • >100 berichten
  • 202 berichten
  • Ervaren gebruiker

Geplaatst op 03 mei 2009 - 11:15

Aangezien je geen concrete vraag stelt, heb ik wel paar mooie vragen voor je:
Beschouw het volgende pagina-referentiepatroon van een proces (t.a.v. 7 pagina's)
1 2 3 4 2 1 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1

Gevraagd wordt bij verschillende strategien te bepalen hoevaak pagina's herladen worden.
Elke eerste keer dat een pagina wordt gerefereerd treedt een paginafout op.
Deze paginafouten worden niet geteld. Pas wanneer een pagina verwijderd is en daarna weer wordt gerefereerd moet de pagina opnieuw worden geladen en tellen we de paginafout.

1. LRU(Least recently used)-vervanging als het process over 5 paginaframes beschikt.
2. FIFO(first in first out)-vervanging als het proces over 5 paginaframes beschikt.
3. Optimale (OPT-)vervanging als het proces over 5 paginaframes beschikt
4. Working-set algoritme met window-grootte 5 (referenties)
5. Working-set algoritme met window-grootte 6 (referenties)
6. Bepaal de minimale working-set-grootte die optreedt bij het working-set algoritme met window 6, als we de aanloopperiode (eerste 6 referenties) buiten beschouwing laten.

Mogelijke antwoorden zijn 1 t/m 7.

De algoritmen kun je gemakkelijk met google vinden.

#4

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 04 mei 2009 - 20:01

Bij scheduling zijn er aspecten die te maken hebben met paginafouten. Kan iemand mij helpen om een paginafout in windows te maken/begrijpen?


Een paginafout ontstaat wanneer data in het geheugen nodig is die niet in het geheugen zit maar nog op de schijf staat. Windows zal na de paginafout de correcte data ophalen van de schijf en in het geheugen laden. Paginafouten worden aan de lopende band gegenereerd, je genereert ze constant zonder dat je het zelf merkt.

Het kan zich ook afspelen tussen de cache en het ram geheugen.

Veranderd door Cycloon, 04 mei 2009 - 20:03


#5

vw85

    vw85


  • 0 - 25 berichten
  • 14 berichten
  • Gebruiker

Geplaatst op 06 mei 2009 - 00:23

ik heb al gevonven hoe ik in windows pagina faults in het oog kan houden.

is de bedoeling van deze oefening om aantal paginafouten per bepaalde algorithme te bepalen?
paginafout wordt toch veroorzaakt wanneer een virtuele geheugen niet vertaald kan worden naar fysiek geheugen?

#6

meijuh

    meijuh


  • >100 berichten
  • 202 berichten
  • Ervaren gebruiker

Geplaatst op 06 mei 2009 - 10:22

Ja het is de bedoeling om het aantal paginafouten te bepalen, muv de eerste keer wanneer er sowiezo een pagina fout optreedt.

Nee, wat jij zegt staat inderdaad op de nederlandse wikipedia, maar dit klopt niet, kijk maar eens op de engelse wikipedia onder Reasons for page fault. http://en.wikipedia....wiki/Page_fault.
Om bepaalde stof te leren zou ik nooit beginnen aan wikipedia en vooral niet de nederlandse.

#7

vw85

    vw85


  • 0 - 25 berichten
  • 14 berichten
  • Gebruiker

Geplaatst op 06 mei 2009 - 17:18

wat er in nederlandse wikipedia staat is goed maar niet volledig, stel je hebt een proces bestaande uit meerdere pagina's of segmenten, een pagina wordt geswapt vlak voor het gebruitk kan worden, dit is een soort van trashing die paginafout kan veroorzaken, de proces verwacht de pagina in een bepaalde frame in het gehegen, maar hij vindt hem niet en gaat eventje naar "geblokeerd" state.

in ieder geval, correctie en verduidelijking is altijd welkom, pagina fout kan nog andere aspecten hebben, maar wat je gezegd hebt, is voor mij onduidelijk.

proces P1 bestaande uit deze pagina's: 1 2 3 4 2 1 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1

Elke eerste keer dat een pagina wordt gerefereerd treedt een paginafout op.
Deze paginafouten worden niet geteld. Pas wanneer een pagina verwijderd is en daarna weer wordt gerefereerd moet de pagina opnieuw worden geladen en tellen we de paginafout.

ik ga eerst FIFO doen
1 2 3 4 2 1 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1 (eerste keer: niet tellen)
2 3 4 2 1 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1 (eerste 1 verwijderd)
1 2 3 4 2 1 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1 (1 weer gerefereerd: teller =1)
1 2 3 4 2 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1 (tweede 1 verwijderd)
1 2 3 4 2 1 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1 (1 weer gerefereerd: teller =2)
1 2 3 4 2 1 5 6 4 1 2 2 7 1 6 5 3 2 5 6 1 (derde 1 verwijderd)
1 2 3 4 2 1 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1 (1 weer gerefereerd: teller =3)
1 2 3 4 2 1 5 6 4 1 2 1 2 7 6 5 3 2 5 6 1 (vierde 1 verwijderd)
1 2 3 4 2 1 5 6 4 1 2 1 2 7 1 6 5 3 2 5 6 1 (1 weer gerefereerd: teller =4)

zit ik hier op het juiste spoor ? ;)

#8

vw85

    vw85


  • 0 - 25 berichten
  • 14 berichten
  • Gebruiker

Geplaatst op 06 mei 2009 - 18:08

mijn oplossing om o.a page fault + processing en threading in windows xp op te volgen

ga naar Start> Settings > Control Panel > Administrative Tools en open "Performance"

klik op links op "Performance Logs and Alerts" en verder op "Trace Logs"
Rechts op linker muisknop klikken en dan "New Log settings kiezen", geef het een naam (test bijvoorbeeld) en klik op OK.
en dan volgende keuzes:

Geplaatste afbeelding

ok, en dan wordt er een .etl file gegenereerd en opgeslagen in "C:\PerfLogs"
dit is een binair bestand
om te kunnen lezen gebruik je best een tool die .etl kan lezen
ik gebruik zelf een klein programmatje ingebouwd in xp "tracerpt.exe"
ga naar command line, kies de juiste pad en converteer .etl bestand op deze manier:
Geplaatste afbeelding

dit is een voorbeeld van resultaat
PageFault, DemandZeroFault, 0x0FE8, 128860088100937500, 2085, 1935, 0x00E40000, 0x805663EB, 0, 0

Veranderd door vw85, 06 mei 2009 - 18:09






0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures