Kosten für eine Seitenfehlerfalle

Ich habe eine Anwendung, die in regelmäßigen Abständen (nach jeweils 1 oder 2 Sekunden) Kontrollpunkte ermittelt, indem sie sich gabelt. Checkpoint ist also eine Abzweigung des ursprünglichen Prozesses, die nur so lange inaktiv bleibt, bis beim Auftreten eines Fehlers im ursprünglichen Prozess zum Starten aufgefordert wird.

Jetzt ist meine Frage, wie teuer der Copy-on-Write-Mechanismus von fork ist. Wie hoch sind die Kosten für einen Seitenfehler-Trap, der auftritt, wenn der ursprüngliche Prozess auf eine Speicherseite schreibt (erstmalig nach dem Aufnehmen eines Prüfpunkts), da der Copy-On-Write-Mechanismus sicherstellt, dass der ursprüngliche Prozess a erhält andere physische Seite als der Checkpoint.

Meiner Meinung nach könnte der Seitenfehler-Überhang ziemlich hoch sein, wenn ein Interrupt auftritt. Wir landen vom User-Space-Land zum Kernel-Space-Land und dann zurück vom Kernel zum User-Space. Wie viele CPU-Zyklen kann ich durch eine solche Seitenfehlerfalle verlieren? Nehmen wir an, dass der RAM groß genug ist und wir niemals auf die Festplatte wechseln müssen.

Nun, ich weiß, dass es schwierig ist, sich ein effizienteres Checkpointing-Schema vorzustellen, und deshalb könnte man sagen, warum ich mir Sorgen über den Seitenfehler-Overhead mache, aber ich möchte nur eine Vorstellung davon haben, wie hoch die Kosten für dieses Schema sein werden .

Antworten auf die Frage(1)

Ihre Antwort auf die Frage