mit einem Linux Rechner (Unix-kernel) hat man ein simuliertes Multitasking (zumindest bei einem Prozessor), gibt es sowas auch im Mac system?
Selbstverständlich geht richtiges Multitasking nur mit mehr als einer CPU. Und dann kann die Maschine auch maximal soviel Threads verarbeiten, wie CPUs im System stecken.
Grundsätzlich kann man sagen, dass es zwei verschiedene Arten von Multitasking gibt. Kooperatives und preemtives. Beim kooperativen Multitasking bekommt eine Anwendung Rechenzeit und muss diese wieder ans System abgeben, welches diese dann an weitere Prozesse verteilt, die dann wiederrum so lange arbeiten können, bis sie fertig sind. Windows hat das bis 3.11 so gemacht und Apple mit den Classic OSes. Man kann sich den Nachteil ausmalen: Wenn eine Applikation unsauber geschrieben ist blockiert sie das gesamte System. Der Absturz einer Applikation zieht u.U. die gesamte Maschine mit.
Bei preemtiven Multitasking ist im Kernel des Systems ein Scheduler integriert, der nach einem Zeitscheibensystem Rechenzeit gleichmässig zuteilt. D.h. eine Applikation bekommt nur eine gewisse Zeit die CPU zum Arbeiten, danach ist der nächste Prozess dran. Das erlaubt zum einen eine gerechtere Einteilung der CPU Zeit und zum anderen haben wir nicht die o.a. Probleme. Hat nun ein Prozess eine höhere Priorität wird er öfter von der Zeitscheibe bedient, als andere Prozesse. Windows kann theoretisch ab NT4 preemtives Multitasking. Allerdings ist der Scheduler in Windows so mies eingestellt, dass eine einzelne Applikation trotzdem alles mitreissen kann.
Alle Unixe, damit auch Linux und Mac OS X (und mein heissgeliebter Amiga) machen sauberes preemtives Multitasking. Linux, Unix und Mac OS X (Windows auch) machen auch Multithreading, d.h. eine Applikation wird in viele kleine Stückchen zerlegt, die einzeln vom Scheduler verteilt werden können. Dadurch nutzt man alle Systemressourcen maximal aus. Das muss aber von der Applikation vorgesehen sein, sonst verhält sich die Applikation wie ein grosser Task und bleibt nur auf einer CPU. Wie gut oder schlecht Multitasking funktioniert hängt in erster Linie von zwei Faktoren ab: Den Programmierkünsten und von der Einstellung des Schedulers. Erlaubt der Scheduler einzelnen Prozessen zu lange auf der CPU zu sitzen läuft das System zäh, ist er auf zu kurze Zyklen eingestellt nimmt er selbst zu viel Rechenzeit auf und die einzelnen Prozesse haben auch zuwenig Zeit die CPU sinnvoll zu nutzen, denn bei jedem Kontexswitch müssen die Daten des Prozesses aus der CPU ausgelagert werden und die Daten des anderen Prozesses wieder eingeladen werden.
Mac OS X ist meiner Ansicht nach sehr ideal eingestellt. Und durch die Unix Vergangenheit des Kerns schleppen wir keine Altlasten mit, die das System ausbremsen könnten, wie das mit Windows Applikationen (insbesondere 16bit) der Fall sein kann (und leider auch oft genug ist). Dadurch ist das arbeiten mit OS X sehr geschmeidig, und gerade bei vielen gleichzeitigen Prozessen sehr flüssig. Man merkt kaum, wenn eine Applikation im Hintergrund Rechenzeit zieht, da die wichtigen Dinge der Benutzerinteraktivität höhere Priorität hat und damit dem Benutzer immer ein reagierendes System zur Verfügung stellt.
Hoffe, das hat einiges klarer gemacht.