Windows-Prozessverwaltung. Aufgaben- und Prozessmanagement. Verwalten von Prozessen und Threads in Windows mit dem Process Explorer-Dienstprogramm von SysInternals

Für jede Anwendung, die unter ausgeführt wird Microsoft Windows erstellt das Betriebssystem einen eigenen Task, weist also eine bestimmte Menge zu Arbeitsspeicher um dieses Programm auszuführen und steuert den Betrieb der in den Speicher geladenen Anwendung mit den Ressourcen des Computers. Neben Aufgaben in Windows XP gibt es auch Prozesse - einen virtuellen Speicheradressraum, der für die Ausführung eines Programms oder des Betriebssystems selbst für beliebige Prozeduren zugewiesen wird. Eine Aufgabe kann mehrere verschiedene Prozesse in Windows aktivieren: Beispielsweise kann ein Webbrowser gleichzeitig auf einen Modemport zugreifen, um einige Daten zu empfangen und zu senden und das Ergebnis eines in eine Webseite eingebetteten Java-Applets auf dem Bildschirm anzuzeigen. Jedem Prozess wird automatisch eine individuelle Identifikationsnummer, die sogenannte Prozess-ID oder PID, zugeordnet, um den Prozess im System eindeutig zu identifizieren.
Wenn ein Programm, das Sie unerwartet gestartet haben, Ihren Computer zum Einfrieren gebracht hat, müssen Sie in den meisten Fällen nicht auf einen Notfall-Neustart zurückgreifen: Es reicht völlig aus, die Aufgabe zu finden, die den Fehler im Speicher verursacht hat, und sie zu entfernen, dh sie gewaltsam zu stoppen weitere Ausführung. Eine andere Situation ist ebenfalls möglich: Wenn Sie ein unerwartet „hängendes“ Programm schließen, indem Sie die Aufgabe abbrechen, können Sie die unterbrochene Arbeit mit keiner Datei oder keinem Dokument fortsetzen. Zum Beispiel das Löschen aus dem Computerspeicher Microsoft Word, können Sie den gerade bearbeiteten Text nicht erneut laden, da das Betriebssystem davon ausgeht, dass dieses Dokument bereits von einem anderen Programm verwendet wird. Solche Phänomene treten auf, weil nach dem Entfernen der Aufgabe der durch diese Aufgabe initiierte Prozess immer noch im Gedächtnis bleibt - in unserem Fall ist dies der Verarbeitungsprozess Word-Datei. Indem Sie den Prozess beenden, der den Absturz verursacht, können Sie Windows XP normal weiter verwenden.

Aufgaben und Prozesse in Microsoft Windows XP zu verwalten, ist ein besonderes Systemdienstprogramm genannt Task-Manager ( Windows-Task Manager), dessen Fenster auf dem Bildschirm erscheint, wenn Sie die Tastenkombination Strg+Alt+Entf drücken

Utility-Fenster Taskmanager Windows XP hat fünf funktionale Registerkarten.
Tab Anwendungen(Anwendungen) enthält eine Liste aller Aufgaben, die im System ausgeführt werden: im Feld Eine Aufgabe(Aufgabe) zeigt den Namen der Aufgabe im Feld an Bundesland(Status) - sein aktueller Status. Der normale Status einer Aufgabe ist der Zustand Funktioniert(Betrieb). Wenn die Aufgabe "hängt" und nicht auf Systemanforderungen antwortet, wird ihr Status als definiert Antwortet nicht(Reagiert nicht).
Um eine der Aufgaben zu entfernen, wählen Sie diese per Mausklick im Menü aus Eine Aufgabe(Aufgabe) und klicken Sie auf die Schaltfläche Task beenden(Task beenden).
Um zu einer Aufgabe zu wechseln, d. h. ihr Fenster auf dem Bildschirm zu öffnen, die gewünschte Aufgabe in der Liste auszuwählen und auf die Schaltfläche zu klicken Schalter(Wechseln zu).
Sie können eine neue Aufgabe starten, indem Sie auf die Schaltfläche klicken Neue Aufgabe(Neue Aufgabe) und Angabe des vollständigen Namens und Pfads des zu startenden Programms im entsprechenden Feld des sich öffnenden Fensters oder durch visuelle Definition dieses Programms über die Schaltfläche Rezension(Durchsuche).

Tab Prozesse(Prozesse) ermöglicht Ihnen die Verwaltung der im System laufenden Prozesse.

Das Menü auf dieser Registerkarte zeigt die Namen der Prozesse an - Bildname(Bildname), Qualifizierer des Prozessinitiators - Benutzername(Benutzername), Ha- Zentralprozessor(CPU) und die von den Prozessen belegte RAM-Menge - Erinnerung(Speichernutzung). Mit der Funktion können Sie die Anzeige weiterer Eigenschaften von Prozessen (z. B. PID, E/A-Bereich, vom Prozess verbrauchte Cache-Menge usw.) aktivieren Spalten auswählen Befehlsmenü (Spalten auswählen). Aussicht(Aussicht). Um die Ausführung eines Prozesses zu stoppen, wählen Sie seinen Titel mit einem Mausklick aus und klicken Sie auf die Schaltfläche Prozess beenden(Prozess beenden).
Wenn Sie wollen dieses Menü Prozesse, die von allen Benutzern Ihres Systems initiiert wurden, angezeigt wurden, aktivieren Sie das Kontrollkästchen neben Prozesse aller Benutzer anzeigen(Prozesse von allen Benutzern anzeigen). Sie können die Priorität eines Prozesses auch festlegen, indem Sie mit der rechten Maustaste auf seinen Titel klicken und aus dem angezeigten Menü auswählen. Eine Priorität(Set Priority) und geben Sie den diesem Prozess zugewiesenen Ausführungsmodus an:

Echtzeit - Echtzeitmodus (alle vom Prozess initiierten Anfragen werden vom System ausgeführt, sobald sie eintreffen);
Hoch (High) - die höchste Priorität;
Überdurchschnittlich (AboveNormal) – hohe Priorität;
Mittel (Normal) – Standardpriorität;
Unterdurchschnittlich (BelowNormal) – niedrige Priorität;
Niedrig - die niedrigste Priorität.

Je höher die Priorität eines Prozesses ist, desto schneller werden die von ihm initiierten Anfragen ausgeführt. Für Prozesse mit hoher Priorität stellt das System zunächst Hardware- und Software-Ressourcen bereit. Wenn Sie Prozesse neu priorisieren, sollten Sie daran denken, dass, wenn Sie einem untergeordneten Prozess eine hohe Priorität zuweisen, die Priorität eines der entscheidenden für ist Windows-System Prozesse können automatisch niedrig werden, was dazu führt, dass sich die Gesamtsystemgeschwindigkeit merklich verlangsamt oder die Ausführung dieses Prozesses vollständig blockiert wird, was zu einem „Einfrieren“ des Computers führt. Einem der Prozesse sollte nur dann eine hohe Priorität zugewiesen werden, wenn seine Ausführung mit „normaler“ Priorität aus irgendeinem Grund schwierig oder unmöglich ist.

Tab Leistung(Leistungs-) Manager-Fenster Windows-Aufgaben enthält Informationen über die Auslastung des Prozessors, des Arbeitsspeichers und die Verwendung anderer Hardwareressourcen des Computers.

(CPU-Auslastung) und Verlauf der CPU-Nutzung(CPU Usage History) zeigt die Belastung des Prozessors Ihres Computers, Indikatoren Auslagerungsdatei(PF-Nutzung) und Verlauf der Auslagerungsdateinutzung(PF Usage History) - Auslagerungsdateinutzung für Systemdaten-Caching, Indikator physikalischer Speicher(Physical Memory) - der Ladegrad des RAM in Kilobyte.

Ähnlich Registerkarte Netz(Networking) zeigt die Belastung auf Ihrem lokales Netzwerk.
Wenn Sie schließlich eine Liste aller Benutzer sehen möchten, die derzeit in Ihrem System angemeldet sind, gehen Sie zur Registerkarte Benutzer(Benutzer).


Wenn Sie als Administrator angemeldet sind dieser Computer können Sie einen der Benutzer trennen, indem Sie den Namen seiner Windows-Sitzung im Menü mit einem Mausklick markieren und auf die Schaltfläche klicken Deaktivieren(Trennen). Außerdem können Sie ihm mit einem Klick auf den Button eine Nachricht zukommen lassen. eine Nachricht schicken(Nachricht senden). Um Ihre aktuelle Windows-Sitzung zu beenden, klicken Sie auf die Schaltfläche Hinausgehen vom System (Abmelden).

Prozessmanagement

Der wichtigste Teil Betriebssystem das sich direkt auf die Funktion des Computers auswirkt, ist das Prozesssteuerungs-Subsystem.

Für jeden neu erzeugten Prozess erzeugt das OS Systeminformationsstrukturen, die Daten über den Bedarf des Prozesses an Rechensystemressourcen sowie über die ihm tatsächlich zugewiesenen Ressourcen enthalten. Allerdings kann ein Prozess auch als Anforderung zum Verbrauch von Systemressourcen definiert werden.

Zu Prozess durchgeführt werden könnte, muss das Betriebssystem Weisen Sie ihm einen RAM-Bereich zu, das die Codes und Daten des Prozesses enthält und ihm auch eine äußerst wichtige Menge an Prozessorzeit zur Verfügung stellt. Ein Prozess muss jedoch möglicherweise auf Ressourcen wie Dateien und E/A-Geräte zugreifen.

Prozessinformationsstrukturen enthalten häufig Hilfsdaten, die die Historie des Prozesses im System, seinen aktuellen Status (aktiv oder blockiert) und den Grad der Prozessprivilegierung (Prioritätswert) charakterisieren. Diese Art von Daten kann vom Betriebssystem bei der Entscheidung berücksichtigt werden, ob einem Prozess Ressourcen zugewiesen werden.

In einem Multiprogramming-Betriebssystem können mehrere Prozesse gleichzeitig existieren. Einige der Prozesse werden auf Initiative von Benutzern und deren Anwendungen generiert, solche Prozesse werden normalerweise aufgerufen Brauch. Andere Prozesse aufgerufen systemisch, werden vom Betriebssystem selbst initialisiert, um ihre Funktionen auszuführen.

wichtige Aufgabe Betriebssystem ist Ressourcenschonung, ausgewählt dieser Prozess, von anderen Prozessen. Eine der am sorgfältigsten geschützten Ressourcen eines Prozesses ist der Bereich des Hauptspeichers, der Prozesscodes und Daten speichert. Die Gesamtheit aller RAM-Bereiche, die das Betriebssystem einem Prozess zuweist, wird als Adressraum bezeichnet. Jeder Prozess arbeitet in seinem eigenen Adressraum, was bedeutet, dass das Betriebssystem Adressräume schützt. Andere Arten von Ressourcen werden ebenfalls geschützt, wie Dateien, externe Geräte usw. Das Betriebssystem kann nicht nur die einem Prozess zugewiesenen Ressourcen schützen , sondern auch deren gemeinsame Nutzung organisieren, beispielsweise mehreren Prozessen den Zugriff auf einen bestimmten Bereich des Gedächtnisses ermöglichen.

Während der Lebensdauer des Prozesses muss seine Ausführung immer wieder unterbrochen und fortgesetzt werden. Um die Ausführung eines Prozesses wieder aufzunehmen, ist es äußerst wichtig, den Zustand seiner Betriebsumgebung wiederherzustellen. Der Zustand der Betriebsumgebung wird durch den Zustand der Register und des Programmzählers, die Betriebsmodi des Prozessors, den Zeiger auf identifiziert Dateien öffnen, Informationen über anstehende E / A-Operationen, Fehlercodes, die von diesem Prozess ausgeführt werden Systemaufrufe usw. Diese Informationen werden als Prozesskontext bezeichnet. Es wird gesagt, dass ein Kontextwechsel auftritt, wenn sich ein Prozess ändert.

Das Betriebssystem übernimmt auch die Funktionen der Prozesssynchronisation, Ermöglichen, dass ein Prozess seine Ausführung aussetzt, bis ein Ereignis im System eintritt, wie z. B. der Abschluss einer E/A-Operation, die auf seine Anforderung durch das Betriebssystem ausgeführt wird.

Im Betriebssystem es gibt keine Eins-zu-Eins-Entsprechung zwischen Prozessen und Programmen. Dieselbe Programmdatei kann mehrere parallele Prozesse erzeugen, und ein Prozess kann die Programmdatei ändern und während ihrer Ausführung mit der Ausführung eines anderen Programms beginnen. Komplex zu implementieren Softwaresysteme Es ist sinnvoll, ihre Arbeit in Form mehrerer paralleler Prozesse zu organisieren, die periodisch miteinander interagieren und einige Daten austauschen. Da das Betriebssystem die Ressourcen von Prozessen schützt und es einem Prozess nicht erlaubt, in den Speicher eines anderen Prozesses zu schreiben oder daraus zu lesen, muss das Betriebssystem für das operative Zusammenspiel von Prozessen spezielle Mittel dafür bereitstellen als Mittel der Interprozesskommunikation bezeichnet.

Auf diese Weise, Das Prozessmanagement-Subsystem (Abb. 4.) plant die Ausführung von Prozessen, dh verteilt die Prozessorzeit auf mehrere gleichzeitig im System vorhandene Prozesse, erstellt und zerstört Prozesse, stellt Prozessen die erforderlichen Systemressourcen zur Verfügung, unterstützt die Synchronisation von Prozessen und stellt auch eine Interaktion zwischen Prozessen bereit

Speicherverwaltung

Speicher ist eine ebenso wichtige Ressource für einen Prozess wie der Prozessor, da ein Prozess nur dann vom Prozessor ausgeführt werden kann, wenn sich seine Codes und Daten (nicht unbedingt alle) im Hauptspeicher befinden. Speicherverwaltung beinhaltet die Verteilung der verfügbaren physikalischer Speicher zwischen allen im System vorhandenen in dieser Moment Prozessen, Laden von Prozesscodes und Daten in ihre zugeordneten Speicherbereiche, Setzen der adressabhängigen Teile der Prozesscodes auf die physikalischen Adressen des zugeordneten Bereichs und Schützen der Speicherbereiche jedes Prozesses.

Existiert eine Vielzahl von Algorithmen Speicherzuweisung. Οʜᴎ kann abweichen:

Die Anzahl der dem Prozess zugewiesenen Speicherbereiche (in einigen Fällen wird dem Prozess Speicher in Form eines zusammenhängenden Bereichs und in anderen Fällen in Form mehrerer nicht zusammenhängender Bereiche zugewiesen),

Der Freiheitsgrad der Grenzen der Regionen (muss für die gesamte Lebensdauer des Prozesses starr festgelegt sein oder sich dynamisch bewegen, wenn dem Prozess zusätzliche Ressourcen zugewiesen werden). Speichergrößen),

Auf einigen Systemen erfolgt die Speicherzuweisung in Seiten mit fester Größe und auf anderen in Segmenten mit variabler Länge.

Eine der beliebtesten Methoden zur Speicherverwaltung in modernen Betriebssystemen ist die sogenannte virtueller Speicher.

Speicherschutz ist die selektive Fähigkeit, eine laufende Task daran zu hindern, Speicher zu schreiben oder zu lesen, der einem anderen Prozess (Task) zugewiesen ist. Die im Betriebssystem implementierten Speicherschutzmaßnahmen müssen dies verhindern unautorisierter Zugriff Prozesse in fremde Bereiche des Gedächtnisses.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, OS-Speicherverwaltungsfunktionen sind (Fig. 5) Verfolgen von freiem und belegtem Speicher; Zuweisen von Speicher zu Prozessen und Freigeben von Speicher, wenn Prozesse beendet werden; Speicherschutz; Entfernen von Prozessen aus dem RAM auf die Festplatte, wenn der Hauptspeicher nicht groß genug ist, um alle darin enthaltenen Prozesse aufzunehmen, und Zurückführen in den RAM, wenn Speicherplatz frei wird, sowie Festlegen von Programmadressen auf einen bestimmten Bereich des physischen Speichers.

Verwalten Sie Dateien und externe Geräte

Das Betriebssystem virtualisiert einen separaten Datensatz, der auf einem externen Laufwerk in Form gespeichert ist Datei- eine einfache unstrukturierte Folge von Bytes, die einen symbolischen Namen hat. Um die Arbeit mit Daten zu vereinfachen, werden Dateien in Verzeichnissen gruppiert. Der Benutzer kann das Betriebssystem verwenden, um Aktionen an Dateien und Verzeichnissen auszuführen, wie z. B. Suchen nach Namen, Löschen, Anzeigen von Inhalten auf einem externen Gerät (z. B. auf einem Display), Ändern und Speichern von Inhalten.

Zur Darstellung einer großen Anzahl von Datensätzen, die zufällig über Zylinder und Plattenoberflächen verstreut sind verschiedene Arten, in Form eines bekannten und bequem hierarchische Struktur Dateien und Verzeichnisse muss das Betriebssystem viele Probleme lösen.

Das OS-Dateisystem führt die Transformation von symbolischen Dateinamen durch, mit denen der Benutzer oder Anwendungsprogrammierer arbeitet, zu den physikalischen Adressen der Daten auf der Festplatte, organisiert teilen auf Dateien und schützt sie vor unbefugtem Zugriff.

Bei der Ausführung seiner Funktionen interagiert das Dateisystem eng mit dem Verwaltungssubsystem für externe Geräte, das auf Anfrage DateisystemÜberträgt Daten zwischen Festplatten und RAM.

Das externe Gerätesteuerungs-Subsystem, auch genannt Input-Output-Subsystem, fungiert als Schnittstelle zu allen an den Computer angeschlossenen Geräten. Die Palette dieser Geräte ist sehr umfangreich. Die Nomenklatur der hergestellten Antriebe auf starre, flexible und optische Platten, Drucker, Scanner, Monitore, Plotter, Modems, Netzwerkadapter und spezialisiertere E/A-Geräte wie Analog-Digital-Wandler können in die Tausende gehen. Diese Modelle können sich erheblich in Satz und Reihenfolge der Befehle zum Austausch von Informationen mit dem Prozessor und Speicher des Computers, der Arbeitsgeschwindigkeit, der Verschlüsselung der übertragenen Daten, der Möglichkeit der gemeinsamen Nutzung und vielen anderen Details unterscheiden.

Das Programm, das steuert spezifisches Modell externes Gerät und unter Berücksichtigung aller seiner Funktionen ist es normalerweise üblich, den Treiber dieses Geräts anzurufen (vom englischen Laufwerk - zu verwalten, zu führen). Die Erstellung von Gerätetreibern wird sowohl von den Entwicklern eines bestimmten Betriebssystems als auch von Spezialisten von Unternehmen durchgeführt, die externe Geräte herstellen.

Die Aufrechterhaltung einer einheitlichen Anauf hoher Ebene für heterogene E / A-Geräte ist eine der wichtigsten Aufgaben des Betriebssystems.

Seit dem Aufkommen von UNIX solch eine einheitliche Schnittstelle auf den meisten Betriebssystemen basiert auf dem Konzept Dateizugriff. Dieses Konzept besteht im Wesentlichen darin, dass der Austausch mit einem beliebigen externen Gerät wie ein Austausch mit einer Datei aussieht, die einen Namen hat und eine unstrukturierte Folge von Bytes ist. Die Datei kann entweder eine echte Datei auf einem Datenträger oder einem alphanumerischen Terminal, Drucker oder sein Netzwerkadapter.
Gehostet auf ref.rf
Hier haben wir es wieder mit der Eigenschaft des Betriebssystems zu tun, die reale Hardware durch Abstraktionen zu ersetzen, die für den Benutzer und den Programmierer bequem sind.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, OS-Funktionen zur Verwaltung von Dateien und externen Geräten (Bild 6) sind die Virtualisierung einzelner Datensätze; Konvertieren symbolischer Dateinamen in physikalische Adressen von Daten auf der Platte; Datenübertragung zwischen externen Geräten und RAM; Verwaltung eines bestimmten Typs von Peripheriegeräten Externe Geräte; Umsetzung des Konzepts des Dateizugriffs zum Datenaustausch mit externen Geräten.

Prozessmanagement - Konzept und Typen. Einordnung und Merkmale der Kategorie „Prozessmanagement“ 2017, 2018.

Taskmanager ist einer der mächtigsten und handliche Werkzeuge in NT, ausgelegt für die Prozesskontrolle. Es wird entweder durch Strg + Umschalt + Esc oder durch eine Auswahl im Menü aufgerufen, das nach einem Rechtsklick auf die Taskleiste erscheint. Der Task-Manager in Windows XP besteht aus fünf Registerkarten - Anwendungen, Prozesse, Leistung, Vernetzung und Benutzer. Beginnen wir mit der Leistung.

Diese Registerkarte zeigt Informationen über die Auslastung der Prozessoren in Echtzeit (Benutzerprozesse sind grün, Systemprozesse sind rot), die physische Speicherauslastung wird angezeigt und es zeigt, wie viel RAM verwendet / frei ist und wie viel System-Swap belegt ist . Darüber hinaus werden weitere zusätzliche Informationen angegeben, beispielsweise Threads und Prozesse – die Anzahl der Threads und Prozesse, die derzeit auf dem Computer ausgeführt werden, Peak – die Spitzengröße des Swap während der Sitzung, Nonpaged – die Menge an Speicher, die dem Kernel zugewiesen ist . Diese Informationen können verwendet werden, wenn Sie die Frage beantworten müssen, welcher Faktor im System der "Engpass" ist, der die Arbeit verlangsamt (obwohl es für diesen Zweck besser ist, den Systemmonitor zu verwenden).

zweites Lesezeichen, Prozesse, enthält eine Liste der derzeit aktiven Prozesse.

Für jeden Prozess können Sie einige finden Zusätzliche Information, wie z. B.: PID (Prozess-ID), die Menge an verwendetem RAM, die Anzahl der vom Prozess generierten Threads und vieles mehr. Von den nützlichen Ergänzungen, die in XP erschienen sind, sollte beachtet werden, dass die Spalte Benutzername erschienen ist. Darin können Sie herausfinden, welcher Benutzer, bzw Systemdienst einen Prozess gestartet. Sie können angezeigte Parameter über View -> Select Columns hinzufügen/entfernen.

Darüber hinaus können mit jedem dieser Prozesse bestimmte Aktionen ausgeführt werden. Klicken Sie dazu einfach mit der rechten Maustaste darauf, es wird angezeigt Kontextmenü, durch die Sie den Prozess beenden ("killen") können (End Process); Es ist auch möglich, sowohl den Prozess selbst als auch alle anderen, die er „erzeugt“ hat, zu beenden (Prozessbaum beenden). Sie können die Priorität des Prozesses einstellen, von der höchsten Echtzeit bis zur niedrigsten, Niedrig. Wenn die Maschine über zwei Prozessoren und einen Multiprozessorkern verfügt, erscheint in diesem Menü ein weiteres Element, Set Affinity, mit dem Sie den Prozess auf einen anderen Prozessor, CPU 0, Cpu1 usw. bis Cpu31 übertragen können.

Lesezeichen - Anwendungen ermöglicht es Ihnen, eine Liste der laufenden Anwendungen anzuzeigen und jede von ihnen zu "beenden". Mit dem Task-Manager können Sie nicht nur Anwendungen "beenden", sondern auch neue Anwendungen starten. Datei -> Neue Aufgabe (Ausführen..). Manchmal ist das sehr hilfreich. Wenn beispielsweise die Benutzeroberfläche aus irgendeinem Grund einfriert, kann sie einfach „beendet“ (explorer.exe-Prozess) und dann neu gestartet werden. Außerdem muss es nicht unbedingt explorer.exe sein. Sie können beispielsweise progman.exe ausführen und eine Schnittstelle ähnlich der W3.1-Schnittstelle oder einer der anderen erhalten externe Schnittstellen die im Internet reichlich zu finden sind.

Lesezeichen

Lesezeichen Benutzer. Darauf sehen Sie die Benutzer, die gerade an der Maschine arbeiten. Wenn Sie über ausreichende Rechte verfügen, können Sie diesen Benutzer deaktivieren oder ihm einfach eine Nachricht senden. Solche Dinge sind seit langem in einer Vielzahl von Software zur Verwaltung von Mehrbenutzersystemen weit verbreitet, aber im Task-Manager erschien diese Funktion zum ersten Mal.

Zielsetzung: Praktische Bekanntschaft mit der Methode zur Verwaltung von MS Windows XP-Prozessen mit dem Task-Manager

1 THEORETISCHER KURZ

1.1 Prozesse und Threads

Im Gegensatz zu MS DOS sind Prozesse in Win32 inaktiv, d.h. in Win32 macht ein Prozess nichts.

Der Prozess besitzt:

4 GB Adressraum (bei Ausführung auf einer 32-Bit-CPU);

Dateien;

Module (z. B. in den DLL-Adressraum geladen);

Ein oder mehrere Threads.

Der Prozess hat:

Prozess-ID (PID);

Basisprioritätsklasse;

Zugriffstoken (Zugriffstoken);

ID des übergeordneten Prozesses;

Ein Satz verwendeter Handles (Handles) von Systemobjekten;

Arbeitssatz von RAM-Seiten usw.

Der Prozess (Pr) kann zu einem anderen Prozess führen – siehe Fig. 1.

Abbildung 1 - die Generierung von Prozessen.

Der Prozess Pr1 führte zu dem Prozess Pr2, der zu den Prozessen Pr3 und Pr4 führte.

Unterscheiden systemisch und Brauch Prozesse. Systemprozesse sind Betriebssystemprozesse, die im privilegierten Modus des Prozessors (Kernelmodus) ausgeführt werden. Die meisten Systemprozesse werden beim Booten des Betriebssystems erstellt.

In jedem Windows-System Folgende Systemprozesse laufen:

Leerlaufprozess (umfasst einen Thread pro Prozessor, um die Leerlaufzeit des Prozessors zu berücksichtigen);

Der Systemprozess (der die meisten Systemthreads im Kernelmodus enthält);

Sitzungs-Manager (Smss.exe);

Windows-Subsystem (Csrss.exe);

Der Anmeldevorgang (Winlogon.exe);

Der Dienststeuerungs-Manager (Services.exe) und die von ihm erstellten untergeordneten Dienstprozesse (z. B. der Generic Service Hosting Process, Svchost.exe);

Lokaler Authentifizierungsserverprozess (Lsass.exe).

Zwei dieser Prozesse, Idle – System Idle und System, sind keine Prozesse im strengen Sinne des Wortes, da sie keinen Code im Benutzermodus ausführen.

Session Manager Smss.exe ist der erste Prozess im Benutzermodus, der auf dem System erstellt wird. Es wird von einem Systemthread im Kernelmodus erzeugt und startet die Csrss.exe- und Winlogon-Subsystemprozesse, die wiederum die restlichen Systemprozesse erstellen.

Der Windows-Anmeldeprozess – Winlogon.exe verarbeitet die interaktive Benutzeranmeldung und -abmeldung. Wenn Sie die Tastenkombination Alt+Strg+Entf drücken, wird Winlogon benachrichtigt, dass der Benutzer aufgefordert wird, sich anzumelden.

Nach der Eingabe werden der Benutzername und das Kennwort zur Überprüfung an den lokalen LSASS-Authentifizierungsserverprozess gesendet. Nach erfolgreicher Authentifizierung ruft LSASS eine Funktion im Sicherheitsstatusmonitor auf, um ein Zugriffstokenobjekt zu generieren, das das Sicherheitsprofil des Benutzers enthält. Anschließend verwendet Winlogon es, um den anfänglichen Shell-Prozess zu erstellen. Informationen über den Anfangsprozess werden in der Userinit-Einstellung unter dem Registrierungsschlüssel HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon gespeichert.

Standardmäßig ist der anfängliche Prozess Userinit.exe, der eine Initialisierung des Benutzerstatus durchführt, dann die Registrierung nach dem Shell-Wert durchsucht und einen Prozess zum Ausführen einer bestimmten System-Shell erstellt – standardmäßig Explorer.exe. Danach endet der Prozess Userinit.exe und wird nicht in der Liste der laufenden Prozesse angezeigt. Der Explorer.exe-Prozess ist ein Enkel von Winlogon. Der Explorer.exe-Prozess ist der Vorfahre aller laufenden Anwendungs-(Benutzer-)Prozesse.

Um die Beziehung dieser Prozesse zu verstehen, ist es hilfreich, sich den "Baum" der Prozesse anzusehen, der die Beziehungen zwischen Eltern- und Kindprozessen zeigt. Wenn Sie sehen, wer diesen oder jenen Prozess erstellt, ist es einfacher zu verstehen, woher jeder Prozess kommt.

Benutzerprozesse sind der Ausführung der Anwendung zugeordnet Software. Sie werden im Benutzermodus des Prozessors unter Auferlegung bestimmter Einschränkungen ausgeführt. Normalerweise werden Benutzerprozesse mit Explorer.exe erstellt, wenn der Benutzer Anwendungen oder nach einem Zeitplan startet.

Damit ein Prozess etwas tun kann, muss in ihm ein Thread erstellt werden. Ein Prozess kann prinzipiell mehrere Threads enthalten und diese verwenden gleichzeitig den Code im Adressraum des Prozesses. Dazu muss jeder Thread seinen eigenen Satz von Prozessorregistern haben, und jeder Prozess muss mindestens einen Thread haben. Damit all diese Threads funktionieren, weist das Betriebssystem jedem von ihnen eine bestimmte Prozessorzeit (Zeitquantum) zu. Die Zeit wird den Strömen in Quanten in einem Kreis (siehe Abb. 2) gemäß ihrer Priorität zugewiesen:

Abbildung 2 - Schema für die Zuweisung von Zeitscheiben zu Streams (P)

Wenn ein Prozess erstellt wird, wird der primäre Thread automatisch vom System erstellt, dann kann der primäre Thread mithilfe der CreateThread-Funktion zusätzliche Threads erstellen.

Threads können auch von Kernelmodustreibern erstellt werden.

Unter Windows NT, 2000, XP Windows Server- einem Thread kann ein separater Prozessor zugeordnet werden (es können bis zu 32 Prozessoren sein), dann werden die Threads wirklich parallel ausgeführt.

1.2 Prozessmanagement-Tools

Das Windows-Betriebssystem verfügt über ein integriertes Task-Manager-Programm, mit dem Sie Informationen über das System und die im System ausgeführten Anwendungsprozesse, die Anzahl der verwendeten Threads und die verbrauchten Ressourcen abrufen, die Ausführung von Prozessen verwalten und Prozessprioritäten ändern können. Um den Task-Manager zu starten, können Sie die Kombination Alt + Strg + Entf verwenden oder mit der rechten Maustaste auf die Taskleiste klicken. Das Fenster des Task-Managers ist in Abb. 3.

Abbildung 3 – Task-Manager-Fenster (Registerkarte „Prozesse“)

Im Fenster „Prozesse“ sehen Sie eine Liste aller im System laufenden Prozesse und deren Parameter – in Abb. 3 sind dies Prozess-IDs, CPU-Auslastung durch jeden Prozess und die Anzahl der Threads. Beachten Sie, dass die Anzahl der Threads gleich 0 nicht bedeutet, dass sie wirklich nicht existieren (dies ist der Prozess).

Über das Menü Ansicht können Sie die in Abbildung 3 gezeigten Parameter aus der Liste entfernen oder neue hinzufügen.

Die Registerkarte Leistung (siehe Abbildung 4) ermöglicht es, Diagramme der gesamten CPU-Auslastung und Auslagerungsdateinutzung anzuzeigen und auch Informationen über den Gesamtverbrauch von PC-Ressourcen zu erhalten.

Der Task-Manager ist ein sehr einfaches Tool, dessen Fähigkeiten nicht ausreichen, um selbst einfache Aufgaben der Systemanalyse und -verwaltung zu lösen. BEISPIEL - Erstellen Sie einen Baum von Prozessen, die im System ausgeführt werden, basierend auf den Informationen, die Sie mit dem Task-Manager erhalten haben.

Sysinternals hat ein Programm entwickelt Process Explorer, was eine signifikante Bedeutung hat tolle Möglichkeiten als der Task-Manager von Microsoft, sowie eine Reihe weiterer Programme zur PC-Verwaltung und -Analyse Informationssicherheit. Alle diese Programme sind jedoch kostenlos. nur für persönlichen Gebrauch und in der gegenwärtigen Phase können sie ohne Lizenz nicht im Bildungsprozess der Abteilung verwendet werden.

Abbildung 4 – Task-Manager-Fenster (Registerkarte „Leistung“)

2. VERFAHREN

1. Starten Sie den Task-Manager und machen Sie sich mit der Liste der Prozessparameter vertraut (Menü Ansicht, Registerkarte Prozesse).

2. Machen Sie sich mit den Möglichkeiten des Task-Managers zum Verwalten von Prozessen (Erstellen eines Prozesses und Beenden eines Prozesses) vertraut. Ändern Sie die Priorität des ausgewählten Prozesses über das Kontextmenü.

3. Machen Sie sich mit den Möglichkeiten des Dispatchers vertraut, um die Anzeige von Informationen auf dem Bildschirm zu steuern (Sortieren der Liste in aufsteigender und absteigender Reihenfolge der Werte des ausgewählten Parameters).

4. Erstellen Sie ein Diagramm der Änderungen der CPU-Auslastung, wenn Sie die Maus bewegen, die Größe des Dispatcher-Fensters ändern und Open Office-Anwendungen starten.

5. Erstellen Sie ein Diagramm der Änderungen in der Größe des in der Auslagerungsdatei zugewiesenen Speichers, wenn Anwendungen gestartet werden (Open Office, Visual Studio).

6. Erhalten Sie eine Liste der laufenden Prozesse gemäß den einzelnen Aufgaben für Teams

Tabelle 1 Einzelne Aufgaben

Tabelle 2 – Prozessparameter

3. ARBEITSBERICHT

Schriftlich erstellt mit Open Office eine pro Team.

1. Titelseite mit Nummer und Titel der Arbeit, Nummer der Gruppe, Team, Namen der Schüler und Lehrer

2. Liste der bei der Durchführung der Arbeiten verwendeten Prozessparameter

3. Die Ergebnisse, die während der Ausführung einer einzelnen Aufgabe erzielt wurden.

TESTFRAGEN

1. Prozess, Thread, System und Anwendungsprozess definieren

2. Welche Informationen werden benötigt, um eine Liste der im System laufenden Prozesse in Form eines Baums zu erstellen. Ist es möglich, solche Informationen in MS Windows mit dem Task-Manager abzurufen?

Im Gegensatz zu MS-DOS mit „eineinhalb Tasks“, das dem Anwendungsprogrammierer die ganze Arbeit (und das ganze Risiko) für die Organisation des parallelen Funktionierens von Prozessen überlässt, bieten Multitasking-Betriebssysteme dem Programmierer mehr oder weniger bequeme und reichhaltige Funktionen Satz von Systemfunktionen, mit denen Sie mehrere parallele Prozesse ausführen und deren Zusammenspiel organisieren können (Prozesssynchronisierung, Datenaustausch, gegenseitiger Ausschluss usw.). Gleichzeitig muss das Betriebssystem die korrekte und effiziente Organisation der Prozessumschaltung, die Aufteilung von Prozessorzeit, Speicher und anderen Ressourcen untereinander gewährleisten.

Die Komplexität des Problems der Organisation der Interaktion paralleler Prozesse ist für Systeme, die eine präemptive und eine nicht-präemptive Prozessplanung verwenden, signifikant unterschiedlich. Beim präemptiven Scheduling kann der Prozess nahezu jederzeit durch den Disponenten unterbrochen werden. Neben der Aufgabe, den Prozesskontext zu sichern und anschließend wiederherzustellen (siehe Abschnitt 4.2.5), die vom Betriebssystem selbst gelöst werden sollte, gibt es auch Probleme, den gegenseitigen Ausschluss bei der Ausführung kritischer Abschnitte in Multitasking-Anwendungen sicherzustellen. Nur der Programmentwickler kann entscheiden, welche Teile seines Programmtextes kritische Abschnitte sind und durch Semaphoren geschützt werden sollen.

In einem System mit nicht-preemptivem Scheduling reicht es für den Programmierer zu überprüfen, dass kritische Abschnitte keine Aufrufe von blockierenden und präemptiven Funktionen enthalten. In diesem Fall kann sichergestellt werden, dass während der Ausführung des kritischen Abschnitts keine Prozessumschaltung erfolgt.

Alle Windows-Versionen von 1.0 bis 3.11 waren ziemlich leistungsstarke Multitasking-Systeme mit nicht-präemptiver Planung. Versionen, die mit Windows NT und Windows 95 beginnen, verwenden die präventive Planung.

      1. Das Konzept eines Objekts in Windows

In Windows ist das Konzept eines Systemsystems weit verbreitet. Objekt . Tatsächlich ist jedes Objekt eine bestimmte Datenstruktur, die sich im Adressraum des Systems befindet. Da Anwendungen nicht auf diesen Speicher zugreifen können, muss die Anwendung zugreifen, um mit dem Objekt zu arbeiten handhaben Objekt - eine bedingte Zahl, die dieses Objekt darstellt, wenn auf API-Funktionen zugegriffen wird. Ein Prozess erhält in der Regel beim Aufruf einer Funktion ein Handle. ErstelleXxx(hier xxx– Objektname), der entweder ein neues Objekt erstellen oder ein vorhandenes Objekt öffnen kann, das von einem anderen Prozess erstellt wurde. Funktionen anzeigen OpenXxx erlauben Ihnen nur, ein vorhandenes Objekt zu öffnen.

Windows-Objekte sind unterteilt in Kernel-Objekte (KERNEL), mit denen Sie Prozesse verwalten können, USER-Objekte, die das Windowing beschreiben, und GDI-Objekte, die Windows-Grafikressourcen angeben. Dieser Kurs behandelt nur Kernel-Objekte. Prozesse, Threads und offene Dateien sind Beispiele für Kernel-Objekte.

Eines der Unterscheidungsmerkmale von Kernel-Objekten ist Sicherheitsattribute , die beim Erstellen des Objekts angegeben werden kann. Diese Attribute definieren die Zugriffsrechte auf das Objekt für verschiedene Benutzer und Gruppen. Darüber hinaus können Sie beim Erstellen eines Kernel-Objekts seinen Namen angeben, der verwendet wird, damit andere Prozesse dasselbe Objekt öffnen können, wenn sie seinen Namen kennen.

Ein Objekt-Handle kann nur von dem Prozess verwendet werden, der das Objekt erstellt oder geöffnet hat. Sie können einen Handle-Wert nicht einfach an einen anderen Prozess senden, er funktioniert nicht in einem anderen Kontext. Es gibt jedoch eine Funktion DuplicateHandle, wodurch eine gültige Kopie des Handles erstellt wird, wobei Sie angeben müssen, welcher Prozess die Kopie erstellt, welches Handle und für welchen Prozess die Kopie bestimmt ist.

Wird das Objekt-Handle von diesem Prozess nicht mehr benötigt, sollte es mit der Funktion geschlossen werden CloseHandle, üblich für verschiedene Typen Objekte.

Ein Objekt existiert, bis alle darauf zeigenden Ziehpunkte geschlossen sind.