2010-12-16 3 views

Répondre

1

Ils sont Mach threads.

+0

Et en anglais: 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

Merci . Cela ne répond pas directement à ma question, mais à http://docs.google.com/viewer?a=v&q=cache:hDamQq6VffkJ:www.arl.wustl.edu/~fredk/Courses/cse522/fall03/Lectures/ threads.ppt + mach + fils + niveau du noyau & hl = pl & pid = bl & srcid = ADGEEShkOaLiHkYeCZd02esRsX2FCqeYYe4gSCEpa4-YYf0z9KneErv9ivZt-Qec77qawty9KtXNJvh7LxGJtLXdllqMrKMAjM10qVyqawgnAR_XYxvS5xxI2nyvatONInc8CU0RPh_x & sig = AHIEtbRh_1hv1n2_hiNkpASPmcQsLJyXrw ressemble à ceux-ci sont au niveau du noyau – Pyetras

+0

Eh bien ... Dans un micronoyau, il y a en fait deux noyaux: le micronoyau et la Système d'exploitation "noyau" (qui peut être réparti sur plusieurs tâches). Ce sont donc des threads du noyau * not * OS, mais des threads de micro-noyaux. –

4

question ancienne, mais pourrait utiliser un peu plus en détail et précision:

Les fils sous-jacents dans XNU (l'OS X et iOS noyau) sont en effet des fils de Mach, mais ceux-ci sont généralement cachées du mode utilisateur. Au lieu de cela, il existe des threads BSD (également appelés uthreads) sur eux, qui sont plus accessibles via les appels système (tels que # 360, bsdthread_create et amis). PThreads encapsule en fait ces threads. De cette façon, un appel à pthread create tombe dans l'appel système bsdthread_create, qui à son tour (en mode kernel) appelle thread_create.

Les appels Mach peuvent être appelés directement depuis le mode utilisateur (via le générateur d'interface de Mach, les fichiers MIG générés dans/usr/include/mach/*). Cela vient en très utile pour les threads de débogage/traçage/piratage. Mais sinon, à l'instar de UNIX, il vaut mieux utiliser le wrapper pthreads qui (pour la plupart) est portable.