PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prozess/Thread/Kernel


Dr.Doom
2004-09-06, 18:13:23
Howdy,

ich habe ein paar Fragen:

1. Kann mir jemand erklären, was ein Lightweight-Prozess ist bzw was der Unterschied zu einem "normalen" Prozess ist?
( Normaler Prozess: Programm in Ausführung (zB mindestens ein Thread) + Adressraum )
Gibt's auch einen Heavyweight-Prozess?

2. Kann man sagen, dass der Kernel ein Prozess ist, der mehrere Threads hat, welche für die Kern-Operationen (Speicherverwaltung, Prozessverwaltung, etc) zuständig sind?

3.
http://mitglied.lycos.de/dummhuhn/bilder/winnt_exkrnl.jpg

Der/das/die(?) Executive in WinNT übernimmt wieder Aufgaben wie Speicherverwaltung, Prozessverwaltung usw.
Was macht der Kern?
Ist der nur noch Vermittler zwischen den Executive-Teilen?

4. Was macht einen Prozess zu einem "Hintergrundprozess"?

Stone2001
2004-09-07, 16:53:56
zu 1.) Leichtgewichtige Prozesse sind nichts weiteres als Threads. Ein Prozess kann aus mehreren (min. einem) Threads bestehen, sie teilen sich den gemeinsamen Adressraum, sowie ein paar andere Dinge (z.b. die, die im PCB stehen), haben aber einen eigenen TCB.

zu 2.) uhh, also den Kernel als einen 'Prozess' zu bezeichnen ... . Ein Kernel ist viel mehr als nur ein Prozess, ein Kernel stellt z.B. verschiedene Systemfunktionen zu Verfügung, was ein Prozess normalerweise nicht macht.
OK, im Prinzip kann man sich den Kernel als priv. Prozess vorstellen. Je nach Design des Kernel hat man einen oder mehrere Prozesse, die Kernelaufgaben übernehmen. Ich kenne keinen Kernel der Multithreaded ist.

zu 3.) Ohne jetzt genau die Struktur vom WinNT-Kernel zu kennen, würde ich mal sagen, das der 'Kernel' nur IPCs und den Dispatcher zu Verfügung stellt. AFAIK ist der Kernel von WinNT ein Mikrokernel, bei dem läuft nur der Dispatcher und die IPC im Kernelmode, alle weitere Dienste, wie z.B. Treiber werden als Dienste realisiert (sie laufen dann im User-Mode).

zu 4.) Gute Frage, ich würde mal sagen, das es von der Definition abhängt. Vielleicht, wenn er nicht mit dem Benutzer interagiert?

Aqualon
2004-09-07, 23:31:36
4. Was macht einen Prozess zu einem "Hintergrundprozess"?
Ich hab zwei Definitionen gefunden:

http://www.bullhost.de/h/hintergrundprozess.html
http://www.informationsarchiv.net/druckversion_802.shtml

Aqua

Stone2001
2004-09-07, 23:49:52
Nach Studium der einschlägigen Literatur:
Vordergrundprozess sind Prozesse, die mit dem (menschlichen) Benutzer interagieren und für diese Arbeiten ausführen.
Hintergrundprozesse sind Prozesse, die spezielle Funktionen erfüllen und sich nicht bestimmten Benutzern zuordnen lassen. Daemons z.B. sind Hintergrundprozesse.

GloomY
2004-09-11, 23:51:01
zu 3.) Ohne jetzt genau die Struktur vom WinNT-Kernel zu kennen, würde ich mal sagen, das der 'Kernel' nur IPCs und den Dispatcher zu Verfügung stellt. AFAIK ist der Kernel von WinNT ein Mikrokernel, bei dem läuft nur der Dispatcher und die IPC im Kernelmode, alle weitere Dienste, wie z.B. Treiber werden als Dienste realisiert (sie laufen dann im User-Mode).Imho läuft der Grafiktreiber bei NT im Kernelmode.

Und wenn ich die Ausführungen von Andrew Tannenbaum richtig in Erinnerung habe, dann ist - zumindest nach seiner Auffassung - der WinNT Kernel auch kein echter Microkernel.

edit: von hier (http://www.cs.vu.nl/~ast/brown/followup/)I can't resist saying a few words about microkernels. A microkernel is a very small kernel. If the file system runs inside the kernel, it is NOT a microkernel. The microkernel should handle low-level process management, scheduling, interprocess communication, interrupt handling, and the basics of memory management and little else. The core microkernel of MINIX 1.0 was under 1400 lines of C and assembler. To that you have to add the headers and device drivers, but the totality of everything that ran in kernel mode was under 5000 lines. Microsoft claimed that Windows NT 3.51 was a microkernel. It wasn't. It wasn't even close. Even they dropped the claim with NT 4.0. Some microkernels have been quite successful, such as QNX and L4.


Ansonsten habe ich nicht genug Ahnung um bei dem Thema den Zustand des Spekulierens zu überschreiten...

Stone2001
2004-09-12, 00:36:10
Und wenn ich die Ausführungen von Andrew Tannenbaum richtig in Erinnerung habe, dann ist - zumindest nach seiner Auffassung - der WinNT Kernel auch kein echter Microkernel.

hmm, ich kenne nur diese (http://www.educ.umu.se/~bjorn/mhonarc-files/obsolete/) Diskussion, da ist Tanenbaum noch der Meinung, das Windows NT Mikrokernelbasierent ist.
ähh, wann kann Win NT raus? Es könnte sein, das Win NT da noch nicht veröffentlicht war. ;)