2010-12-16 3 views

Antwort

1

Sie sind Mach threads.

+0

Und auf Englisch: http://books.google.com/books?id=K8vUkpOXhN4C&pg=PA730&dq=OSX+pthread_create&hl=en&ei=xK8KTbnZPIT78AaVqrCfAQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCMQ6AEwAA#v=onepage&q&f=false –

+1

Dank . Das beantwortet meine Frage nicht direkt, sondern aus http://docs.google.com/viewer?a=v&q=cache:hDamQq6VffkJ:www.arl.wustl.edu/~fredk/Courses/cse522/fall03/Lectures/ threads.ppt + mach + Fäden + Kernel-Ebene & hl = pl & pid = bl & SRCID = ADGEEShkOaLiHkYeCZd02esRsX2FCqeYYe4gSCEpa4-YYf0z9KneErv9ivZt-Qec77qawty9KtXNJvh7LxGJtLXdllqMrKMAjM10qVyqawgnAR_XYxvS5xxI2nyvatONInc8CU0RPh_x & sig = AHIEtbRh_1hv1n2_hiNkpASPmcQsLJyXrw wie diese aussieht Kernel-Ebene ist – Pyetras

+0

Nun ... In einem Mikro-Kernel gibt es tatsächlich zwei Kerne: das Mikro-Kernel und der Betriebssystem "Kernel" (welches eigentlich auf mehrere Aufgaben verteilt sein kann). Sie sind also * nicht * OS-Kernel-Threads, sondern Microkernel-Threads. –

4

Alte Frage, könnte aber etwas mehr Detail und Genauigkeit verwenden:

Die zugrunde liegenden Fäden in XNU (das OS X und iOS-Kernel) sind in der Tat Mach Fäden, aber diese sind in der Regel vom Benutzermodus versteckt. Stattdessen gibt es BSD-Threads (auch uthreads genannt) über ihnen, die über die Systemaufrufe leichter zugänglich sind (z. B. # 360, bsdthread_create und friends). PThreads umhüllen diese Threads tatsächlich weiter. Auf diese Weise fällt ein Aufruf von pthread create durch den Systemaufruf bsdthread_create, der seinerseits (im Kernel-Modus) thread_create aufruft.

Mach Anrufe kann direkt aus dem Benutzermodus aufgerufen werden (über den Mach Interface Generator, erzeugte MIG Dateien in/usr/include/mach/*). Dies kommt in sehr nützlich für Debugging/Tracing/Hacking Threads. Aber sonst, für alle Absichten UNIX-wie, Sie sind besser dran mit der Pthreads Wrapper, die (zum größten Teil) portabel ist.