• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

OSX begrenzt Multitasking fähig?!?

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
… und dann rechnet genau dieser rechenhungrige Thread wieder die ganze Zeit weiter. Die anderen Threads haben keine Chance, bis der Thread endlich mal aufhört so egoistisch zu sein.…

Dieses Szenario ist vermeidbar auf OS X. OS X hat präemptives und nicht kooperatives Multitasking und bietet eine passende Threadverwaltung. Es ist sogar echtzeitfähig. Ein Blick in "Mac OS X Internals" von Amit Singh oder vergleichbare Literatur erklärt das.
 
Zuletzt bearbeitet:

Cyrics

Neuer Berner Rosenapfel
Registriert
01.04.05
Beiträge
1.973
präemptives Multitasking hab ich doch auch beschrieben. Der Scheduler gibt den Timeslice vor. Der Timeslice variiert je nach Algorithmus, aber die heutigen Algorithmen nutzen alle nur noch präemptive Multitasking.
Jedoch wird das Thread-Management losgelöst vom Scheduling-Algorithmus des Kernels behandelt. Hier weiß ich nicht welches Thread-Management genutzt wird, jedoch ist es in der Natur des User-Level-Threads, dass dieser bei Blockade, den kompletten Prozess bzw. die restlichen Threads blockiert.
Das Scheduling über das System findet hier nicht statt. Das Scheduling findet Anwendung am Prozess, den eigentlichen Container sozusagen. Innerhalb des Prozess laufen aber mehrere Threads, die, falls sie User-Level-Threads sind, was ich beim Finder als Benutzerprozess stark annehme, jedoch vom Prozess selbst verwaltet werden. Der Kernel hat in der Hinsicht keinen Einfluß auf die Abarbeitung der Threads innerhalb des Prozesses. Es ist ein anwendungsspezifisches Scheduling, welches hier seinen Ansatz findet.
Wie das Apple nun beim Finder realisiert hat, weiß ich nicht. Dazu beschäftige ich mich zu doch irgendwie fiel zu wenig mit.
Aber hier würde ich wirklich Thread und Prozess getrennt halten wollen.
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Der Kernel verwaltet jeden Thread, auch jeden einzelnen Thread jeder Anwendung. Letztendlich wird in OS X nämlich jeder Thread, egal in welcher Sprache er umgesetzt ist, durch einen Mach-Thread realisiert, der vom Kernel kontrolliert wird. Wenn Dich das Thema interessiert, weise ich nochmals auf das Buch von Amit Singh hin. Dort steht das detailliert beschrieben.
 

Cyrics

Neuer Berner Rosenapfel
Registriert
01.04.05
Beiträge
1.973
Danke auf jeden Fall für den Buchtipp! Der ist bereits längts notiert. Wollte mich sowieso näher mit dem konkreten Aufbau von OS X beschäftigen.

Aber das würde mich echt überraschen, wenn die ULT tatsächlich wie die Kernel-Threads gehandhabt werden. Aber möglich ist es natürlich.