Threading avantages et les inconvénients du modèle

1. Les avantages du modèle de threads utilisateur et inconvénients:

avantages:

Étant donné que l'ordonnancement des threads se fait au niveau de l'utilisateur, qui est, par rapport à l'ordonnanceur du noyau n'a pas besoin de permettre à la CPU de commuter entre le mode utilisateur et le mode noyau, cette mise en œuvre par rapport aux discussions au niveau du noyau peut faire très léger, le système la consommation des ressources sera beaucoup plus faible, et donc le coût du nombre de fils qui peuvent être créés avec le changement de contexte prend sera beaucoup plus petite.

inconvénients:

Concurrency ne peut pas faire dans le vrai sens, supposons qu'un fils utilisateur sur un certain processus parce qu'un blocage d'appel (comme E / S bloqué) CPU doit être interrompu (préemptif), puis tous dans le processus threads sont bloqués (parce que l'ordonnancement des threads à partir d'un seul processus d'utilisateur ne sont pas d'interruption d'horloge de CPU, de sorte qu'aucun ordonnancement à tour de rôle), l'ensemble du processus est suspendu.

La faiblesse de la solution:

Beaucoup bibliothèque coroutine possédera une partie de l'opération de blocage à reconditionner entièrement sous forme non-bloquant, puis sur le point précédent au bloc, prendre l'initiative de faire leur propre, et un moyen d'informer les autres utilisateurs ou éveiller des fils à exécuter dans KSE sur la course, ce qui évite le planificateur du noyau obstruction KSE en raison de faire un changement de contexte, de sorte que l'ensemble du processus ne sera pas bloqué.

2. des avantages et des inconvénients modèle de filetage au niveau du noyau:

avantages:

Simple, directement par le fil du noyau du système d'exploitation et un programmateur, la CPU peut passer rapidement les discussions de planification, peut donc exécuter plusieurs threads simultanément, par rapport aux threads de niveau utilisateur modéliser un traitement vraiment parallèle

inconvénients:

En tant que l'aide directe du noyau du système d'exploitation pour créer, détruire et le contexte entre plusieurs threads, ainsi que la commutation et la planification, les coûts des ressources a fortement augmenté, et a grandement affecté le droit de la performance.

3. Les deux avantages du modèle de filetage et des inconvénients:

avantages:

Un modèle de processus à deux fileté peut être associé à plusieurs threads noyau KSE, ce qui signifie que plusieurs threads dans un processus peut se lier à son propre KSE respectivement, semblable à ce point et le modèle de fils au niveau du noyau, d'autre part, mais aussi différente de modèle de filetage au niveau du noyau, il est un processus dans lequel le fil est pas propre à la liaison KSE, mais peut être mise en correspondance avec une pluralité de fils d'utilisateur avec KSE, KSE lorsqu'une opération de blocage parce que son fil de liaison est une unité centrale de programmation de noyau lorsque, au cours du reste de ses fils d'utilisateur associé peut lier de nouveau l'opération et d'autres KSE. Ainsi, deux modèles de filetage est ni un modèle d'ordonnancement thread-niveau de l'utilisateur qui ne sont pas tout à fait sur leur propre modèle de fil au niveau du noyau repose entièrement sur le planificateur du système d'exploitation, mais plutôt un état intermédiaire (auto-planification et les systèmes expédition travaillent ensemble).

inconvénients:

La nature très complexe de ce modèle. Les développeurs du noyau du système d'exploitation en général ne pas utiliser.

Publié six articles originaux · a gagné les éloges 1 · vues 272

Je suppose que tu aimes

Origine blog.csdn.net/ALEX2205/article/details/104877544
conseillé
Classement