Skip to content

Instantly share code, notes, and snippets.

@grobie
Created November 24, 2008 13:38
Show Gist options
  • Save grobie/28467 to your computer and use it in GitHub Desktop.
Save grobie/28467 to your computer and use it in GitHub Desktop.
Prozessorzeit:
Prozentuale Angabe der vergangenen Prozessorzeit, die zum Ausführen eines Threads benötigt wird, der sich nicht im Leerlauf befindet.
Dieser Leistungsindikator ist die primäre Anzeige der Prozessoraktivität.
Die Zeitspanne, die der Prozessor benötigt, um den Thread des Leerlaufprozesses in jedem Abtastintervall auszuführen, wird von 100% subtrahiert.
(Jeder Prozessor besitzt einen Leerlaufthread, der Zyklen belegt, wenn keine anderen Threads ausgeführt werden können.)
Der Leistungsindikator zeigt die durchschnittliche prozentuale Belegung während dem Abtastintervall an,
indem die Zeitspanne, die der Dienst nicht aktiv war von 100% subtrahiert wird.
Privilegierte Zeit:
Der Prozentanteil der verstrichenen Zeit für Prozessthreads, die im privilegierten Modus ausgeführt werden.
Wenn ein Windows-Systemdienst aufgerufen wird, wird dieser oft im privilegierten Modus ausgeführt, um Zugriff auf Systemdaten zu erhalten.
Solche Daten sind vom Zugriff von Threads, die im Benutzermodus ausgeführt werden, geschützt.
Systemaufrufe können explizit oder implizit sein, wie z.B. wenn ein Seitenfehler oder ein Interrupt auftritt.
Im Gegensatz zu früheren Betriebssystemen verwendet Windows, zusätzlich zum traditionellen Schutz des Benutzer- bzw. privilegierten Modus,
Prozessgrenzen für den Teilsystemschutz.
Einige Arbeit, die im Auftrag einer Anwendung durchgeführt wird, erscheint eventuell in anderen Teilsystemprozessen,
zusätzlich zur privilegierten Zeit des Prozesses.
Benutzerzeit:
Die verstrichene Prozessorzeit im Benutzermodus in Prozent.
Der Benutzermodus ist ein eingeschränkter Modus für Anwendungen, Umgebungsteilsysteme und fest zugehörige Teilsysteme.
Alternativ dazu wurde der privilegierte Modus für Betriebssystemkomponenten entwickelt und ermöglicht direkten Zugriff auf Hardware
und den gesamten Arbeitsspeicher.
Das Betriebssystem schaltet Anwendungsthreads in den privilegierten Modus um, um auf Betriebssystemdienste zugreifen zu können.
Der Indikator zeigt die durchschnittliche Auslastungszeit als Prozentwert der Stichprobenzeit an.
Interrupt/s:
Die durchschnittliche Rate, mit der der Prozessor Hardwareinterrupts pro Sekunde empfängt und bearbeitet.
DPCs sind nicht enthalten, da diese separat gezählt werden.
Dieser Wert ist eine indirekte Anzeige der Aktivitäten von Geräten, die Interrupts erzeugen, z.B. Systemuhr, Maus, Datenträgertreiber,
Datenkommunikationsleitungen, Netzwerkschnittstellenkarten und andere Peripheriegeräte.
Diese Geräte erzeugen normalerweise einen Prozessorinterrupt, wenn sie einen Vorgang abgeschlossen haben oder ein Eingreifen erfordern.
Die normale Threadausführung ist ausgesetzt. Die meisten Systemuhren erzeugen alle 10 Millisekunden einen Interrupt.
Dieser Leistungsindikator zeigt die Differenz zwischen den Werten in den letzten beiden Abtastintervallen dividiert durch die Intervalldauer an.
2.1
Charakateristiken:
- Trennung Usermode/Kernelmode
- Grafik wird (mit) im Kernelmode ausgeführt
2.2
Woran erkennt man die Prozesse die als Dämonen laufen?
- sind keinem Terminal zugewiesen (TTY = ?)
- PPID (parent process id) = 1 (init)
Wo lassen sich die von ps angezeigten Informationen im Dateisystem finden?
- /proc
2.3
Erläutern Sie für die Objekte File, Mutant, Directory und Event welche Betriebsmitteln diese repräsentieren und welche Funktionalität sich dahinter verbirgt.
File: Datei
Mutant: Mutex
Directory: Verzeichnis
Event: Signael - regelt Zugriffsrechte - set or wait (oder beides)
Was ist ein Handle? Erläutern Sie, warum Handles nicht ohne Weiteres über Prozessgrenzen hinaus verwendet werden können. Benennen Sie mindestens ein Windows-API-Funktion, mit der dies doch möglich ist.
- Eindeutige Identifikation von Objekten (dadurch Entkoppelung von Speicheradressen und Ressourcen)
- Kernel object handles enthalten Zugriffsrechte die anzeigen welche Aktionen einem Prozess erlaubt bzw. verboten werden
-> ein Prozess kann das Handle nicht direkt an andere Prozesse weitergeben - dies muss über den Kernel geschehen
- Prozess kann Handle mittels DuplicateHandle duplizieren
- Processes can also acquire handles to objects by inheriting handles at process creation time (if the creator specifies the inherit handle flag on the CreateProcess call and the handle was marked as inheritable, either at the time it was created or afterward by using the Windows SetHandleInformation
function)
Der Kernel-Adressraum ist in zwei große Heap-Bereiche unterteilt. Benennen Sie diese und erläutern Sie den Unterschied. Durch den Verbrauch welchen Heaps kann das System zum Quasi-Stillstand gebracht werden?
Schauen Sie sich die Datei handle.c des Windows Research Kernels an. Ermitteln Sie durch Code-Review die maximale Anzahl von Betriebsmitteln, die ein Prozess besitzen kann. Benennen Sie außerdem die Konstante, die diesen Wert enthält.
MAX_HANDLES (2^24 = 16777216)
Nennen Sie 5 Aufgaben des Moduls Object Manager!
- weist Datenstrukturen einen Namen zu
- erlaubt den Zugriff mittels eines Namens
- Objekte können mittels ACL geschützt werden
- ermöglicht eindeutiges Namen-, Schutzschema
- verwaltet die Anzahl von Handles und Referenzen zu jedem Objekt
2.4
Welche Kernelfunktionen müssen geändert werden?
base\ntos\ps\create.c: PspCreateThread
PspCreateProcess
base\ntos\ps\psdelete.c: PspProcessDelete
PspThreadDelete
Welche Funktionen werden (direkt nach dem Starten) durch die ersten drei erzeugten Threads ausgeführt?
1. nt!Phase1Initialization
2. nt!InbvRotateGuiBootDisplay
3. nt!ExpWorkerThread
Es existiert ein Treiber, der ständig Threads erzeugt. Wie heißt dieser Treiber bzw. welche Funktion führen diese Threads aus?
- NDIS (Network Driver Interface Specfication: Er erlaubt den Betrieb von mehreren Karten in einem PC genauso wie den Einsatz mehrerer Protokolle auf einer Netzwerkkarte.)
2.5
Welche Systemaufrufnummern sind der Funktion NtSetInformationThread zugeordnet?
Windows XP: 0x00e5
Windows Server 2003: 0x00ee
Beschreiben Sie die Signatur der Funktion NtSetInformationThread!
NTSYSAPI
NTSTATUS
NTAPI
NtSetInformationThread(
IN HANDLE ThreadHandle,
IN THREADINFOCLASS ThreadInformationClass,
IN PVOID ThreadInformation,
IN ULONG ThreadInformationLength
);
Welche Bedeutung hat die Aufzählung THREADINFOCLASS?
- http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/Thread/THREAD_INFORMATION_CLASS.html
Welchen Wertebereich hat die Thread-Priorität?
0/1 (lowest) - 31 (highest)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment