I. Sur quelle Version de Windows 7 et Windows 2008 R2 la technologie User-Mode Scheduling (UMS) n'est pas disponible ?

Windows 7 (x 64) et Windows Server 2008 R2 introduisent la nouvelle technologie de prise en charge de l'ordonnancement de threads en mode utilisateur. L'ordonnanceur en mode utilisateur, pour faire court UMS, est un mécanisme léger qui fournit des API que les applications peuvent utiliser pour planifier leurs propres threads. Une application peut basculer entre threads UMS sans passer par l'ordonnanceur de Windows et reprendre ainsi le contrôle du processeur si un thread UMS bloque dans le noyau. Les threads UMS diffèrent des fibres (fibers) parce que chaque thread UMS a son propre contexte alors que les fibres partage le contexte d'un seul thread. La possibilité de basculer entre les threads en mode utilisateur rend UMS plus efficaces que les pools de threads lors de la gestion d'un nombre important d'éléments à courte durée et qui requiert très peu d'appels système.

UMS est recommandé pour les applications ayant des exigences de haute performance qui doivent exécuter efficacement plusieurs threads simultanément sur des systèmes multiprocesseurs ou multi cœurs. Pour tirer parti d'UMS, une application doit implémenter son propre ordonnanceur de threads UMS et déterminer à bon escient le moment de l'exécuter. Néanmoins, comme la charge de travail pour l'élaboration de ce type de composant est importante, les développeurs doivent donc envisager d'utiliser soit l'ordonnanceur par défaut de Windows, ou le Concurrency Runtime, si leurs applications n'ont pas des exigences de rendement trop élevées.

UMS est disponible à partir des versions 64 bits de Windows 7 et Windows Server 2008 R2. Cette fonctionnalité n'est pas disponible dans les versions 32 bits de Windows. Pour en savoir plus sur l'API UMS http://msdn.microsoft.com/en-us/library/dd627187(VS.85).aspx

Vidéo sur Channel 9 : http://channel9vip.orcsweb.com/shows/Going+Deep/Dave-Probert-Inside-Windows-7-User-Mode-Scheduler-UMS/?Page=2

Pour des exemples d'utilisation des API UMS reportez-vous au code source du Concurrency Runtime disponible avec Visual Studio 2010 dans le répertoire C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\

Pour plus d'infos :