Wie können mehrere Programme parallel laufen??
-
Hi,
ich hab nicht viel Ahnung von Computern, aber frage mich, wie es eigentlich möglich ist, dass mehrere Programme gleichzeitig laufen können! Ich hab ja nur eine Singlecore-CPU!
Könnt ihr mir da weiterhelfen?
Danke,
Mike
-
-
jedes programm läuft immer nur 10 millisekunden, dann speichert es den aktuellen stand und das nächste programm darf ran. und immer rundherum alle nacheinander. so hat der benutzer den eindruck, sie würden gleichzeitig laufen.
-
that->this schrieb:
Geht es nicht eher um Multitasking?
-
zick->zack schrieb:
that->this schrieb:
Geht es nicht eher um Multitasking?
das ist das selbe.

-
Naajaaa, ich meine eher, das ist hoechstens das gleiche. :p
Es kursieren zwar je nach BS-Entwickler zT. die wildesten Bezeichnungen, aber IMHO bezeichnet "Thread" idR. Leichtgewichtprozesse im Gegensatz zu "process" oder "task", was idR. einen "kompletten" Prozess meint.
-
Es ist weder das selbe noch das gleiche, davon abgesehen dass diese Unterscheidung in der Deutschen Sprache AFAIK offiziell "abgeschafft" wurde.
Multitasking ist ein Begriff, der relativ weit gefasst ist. z.B. verwendet man es auch für Systeme die nur einen "Thread" haben, aber mehrere Dinge "gleichzeitig" erledigen. Im einfachsten Fall hat man mehrere Programmteile, die eine State-Machine implementieren, und auf diverse Events reagieren, die aus einer Hauptschleife generiert werden -- alles in bloss einem Thread. Oder auch Systeme die so etwas wie die Windows NT Fibers verwenden. Oder auch wenn man gleichzeitig telefoniert und surft oder was auch immer

Multithreading ist dagegen ein relativ eng gefasster Begriff - hier ist eigentlich immer gegeben dass die verschiedenen Aufgaben ihren eigenen "thread of control" haben; und ein System sich darum kümmert dass diese quasi-parallel ausgeführt werden, welches von den verschiedenen "Programmen" die da nebeneinander herlaufen unabhängig ist (Betriebssystem, VM, ...). Soll heissen: das Programm muss selbst nichts dafür tun damit mehrere Threads parallel laufen können. Ob man soetwas wie Kooperatives Multitasking (wo die Programme immerhin noch periodisch eine bestimmte Funktion aufrufen müssen, damit das Multitasking klappt) noch als Multithreading bezeichnen kann, weiss ich nicht. Ich würde es eher nicht tun.
Begriffe wie LWP ("Light Weight Process") oder ähnliches sind im allgemeinen relativ unüblich, und werden nur auf speziellen Systemen gebraucht (Solaris?). Genauso wie das was jetzt (fast) überall Thread heisst im AmigaOS noch als Task bezeichnet wird.
@Nobuo T:
Den Begriff "Task" mit der Bedeutung "Process" kenne ich garnicht. Ich kenne den Begriff wie gesagt vom AmigaOS, wo er statt "Thread" verwendet wurde, ich kenne den Begriff für spezielle Funktoren (für Futures oder was auch immer, wobei die Futures durchaus keine Threads verwenden müssen), ich kenne den Begriff für Dinge wie den Windows Task Scheduler -- aber mit der Bedeutung Process wäre er mit zumindest noch nicht untergekommen.
Aus meiner Erfahrung würde ich es eher genau umgekehrt sagen: ein Task ist wenn dann "leicht-gewichtiger" als ein Thread, oder eben dasselbe
-
hustbaer schrieb:
Es ist weder das selbe noch das gleiche...
die genaue bedeutung der begriffe ist stark vom umfeld abhängig. unter manchen systemen ist z.b. ein task oder process etwas, das unter windoofs als thread bezeichnet wird. eindeutige definitionen, wie z.b. bei äpfeln und birnen, gibt's nicht für thread, task, process usw. das einzige, was scheinbar immer stimmt ist, dass alle 'nebenläufigkeit' bedeuten, also ganz grob betrachtet, 'das selbe' sind.

-
hustbaer schrieb:
Es ist weder das selbe noch das gleiche, davon abgesehen dass diese Unterscheidung in der Deutschen Sprache AFAIK offiziell "abgeschafft" wurde.
Das würde mich wundern. Sonst könnte man ja jetzt auch für die selbe Straftat mehrmals bestraft werden und nicht nur für die gleiche.
-
Das würde mich wundern. Sonst könnte man ja jetzt auch für die selbe Straftat mehrmals bestraft werden und nicht nur für die gleiche.

-
hustbaer schrieb:
Den Begriff "Task" mit der Bedeutung "Process" kenne ich garnicht.
in den meisten Büchern über Betriebssysteme, die ich gesehen/gelesen habe, kommt diese "Definition", wobei in der Regel darauf hingewiesen wird, dass die Definition je nach Zweck sich leicht unterscheiden kann.
