Multitreadingfähig?

Kann mir jemand kurz erklären,
was das bedeutet?

Danke!
Caro

Hi,
Multitreadingfähig Anfragen können gleichzeitig bearbeitet werden.

Gruß T

Hi,

bei einem ‚normalen‘ Programm werden die Befehle wie an einer Schnur gefädelt hintereinander abgearbeitet. Ein Multithreading fähiges Programm kann nun mehrere solcher Programmfäden haben, die quasi gleichzeitig abgearbeitet werden. Quasi deshalb, weil Du ja nur einen Prozessor im Rechner hast (normalerweise). Dieser kann zweischen den einzelnen Programmteilen so schnell wechseln, dass der Eindruck entsteht, als würde das gleichzeitig ablaufen.

Gurss,

Herb

Danke!
Heißt das auch synchron, oder nur asynchron?

Gruß
Caro

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Caro,

Heißt das auch synchron, oder nur asynchron?

WAS verstehst du in diesem Zusammenhang unter (a)synchron ?

Normalerweise laufen einzelne Tasks, bzw. Threads bei MS, asynchron ab, es gibt aber verschiedene Mechanismen um die Tasks an bestimmten stellen in deren Ablauf mit anderen zu synchronisieren.

MfG Peter(TOO)

wenn ich richtig aufgepasst hab
dann bringt Dir das eh nur was, wenn Du mehrere Prozessoren in Deinem Rechner hast und das ist doch eher nicht der Standard.

Multithreading bedeutet, dass der Prozessor mehrere Programmen gleichzeitig Speicher zuweisen kann, mit dem sie dann eine weile rechnen können.
Nun, um zu verdeutlichen, was das bedeutet sollte man vielleicht dazu sagen, dass die „DOS“-Linie von Windows NICHT Multithreadingfähig ist.
Sie behauptet es zwar von sich, aber unter Win 95/98/ME ist es eher so, dass die Prozesse dazu ein Signal zurücksenden, das dem Prozessor sagt „ich bin fertig, jetzt kann der nächste“. Beim richtigen Multithreading entzieht der Prozessor die Rechenzeit automatisch wieder, ohne auf eine Rückmeldung zu warten.
Stürzt nämlich ein Programm ab und sendet den Befehl nicht zurück, den der Prozessor erwartet, dann gibt er die Rechenkapazitäten auch nicht an den nächsten Prozess weitergeben und so steht dann der ganze Rechner…
Wenn das Programm nun Multithreadingfähig ist dann würde es entweder dieses „ich bin fertig“ Signal zurückgeben, oder es kann eben wirklich mittels mehreren verwendeten Prozessen mehrere Threads (falls man das so nennt) paralell abarbeiten

dann bringt Dir das eh nur was, wenn Du mehrere Prozessoren in
Deinem Rechner hast und das ist doch eher nicht der Standard.

Das ist nicht ganz richtig. Ein thread kann z.~B. auch mal eine Zeit lang warten (auf eine IO von der Festplatte, dem user oder aehnliches). In der Zeit muss er ja nicht nutzlos auf dem Prozessor rumlungern, es kommen andere threads zum Zuge.

Das Betriebssystem ist fuer die Verwaltung von resources zustaendig. Es weist diese ggf. einzelnen Prozessen zu (wenn die das wollen). Resources sind Arbeitsspeicher, Festplattenspeicher usw., aber auch der Prozessor selbst. Falls ein Prozess die resource CPU anfordert bekommt es den fuer eine gewisse Zeit, danach wird sie (bei modernen OS) wieder von der CPU gekickt, der CPU-Status wird gesichert und der naechste darf ran (context switch heisst das bei Linux). Falls es mehrere CPUs gibt, kann das OS natuerlich diese an mehrere Prozesse verteilen.

Im Sinne von Linux sind Prozesse und threads identisch, bei richtigen OSs muss das nicht so sein: threads sind Kindprozesse eines Elternprozesses.

Nun, um zu verdeutlichen, was das bedeutet sollte man
vielleicht dazu sagen, dass die „DOS“-Linie von Windows NICHT
Multithreadingfähig ist.

Und ich dachte immer, dass Win3.1/9x die Windows-Linie von MS-DOS sind… Das stimmt aber: aeltere Windows-Versionen waren darauf angewiesen, dass sich eine Applikation selbststaendig wieder vom Prozessor verzieht, sogenanntes non-preemtives Multitasking. Alle modernen OS koennen aber preemtives.

HTH,
Gruss vom Frank.

Und ich dachte immer, dass Win3.1/9x die Windows-Linie von
MS-DOS sind… Das stimmt aber: aeltere Windows-Versionen
waren darauf angewiesen, dass sich eine Applikation
selbststaendig wieder vom Prozessor verzieht, sogenanntes
non-preemtives Multitasking. Alle modernen OS koennen aber
preemtives.

Ja, da hast Du auch recht :wink:
Als DOS-Linie sind die Versionen 3.1, 3.11, Win 95, Win 98 und Win ME zu sehen.
Wobei ME nur noch herausgekommen ist, weil 2000 sich verzögert hatte und man noch zeigen wollte, dass diese Windows-Linie nicht so schlecht ist, wie sie doch irgendwie gemacht wurde…
Der Name vom Entwickler der NT-Linie ist mir dabei leider entfallen, aber die Versionen, die darunter fallen sind Win NT 3.1, 3.51 und 4.0 sowie Windows 2000. Danach wurden die beiden Zweige vereinigt und es entstand daraus Windows XP bzw vor nicht allzulanger Zeit das Server-OS Windows 2003.

Die wesentlichen Unterschiede der beiden Linies sind nach meinen Aufzeichnungen in kürze

  • Multitasking
  • SMP (symmetric MultiProcessing)
  • Virtual Memory
  • EFS (Encrypted File System)
  • NTFS
  • 32/64 Bit
  • Netzwerkprotokolle (TCP, SSL, VPN, IPSec)
  • Workgroup/Domain -> Active Directory Services
  • Network Services (SMB, DNS, WINS, DHCP, HTTP, FTP, LDAB, VPN, RAS…)

Dave Cuttler
so hiess der Architekt, aus dessen Feder die NT-Linie entstand.