Compartir a través de


Programador de tareas (Runtime de simultaneidad)

Los temas en esta parte de la documentación se describen las características importantes del Programador de tareas del runtime de simultaneidad. El programador de tareas es útil cuando desea ajustar el rendimiento del código existente que usa el runtime de simultaneidad.

Importante

El Programador de tareas no está disponible en una aplicación de Tienda Windows .Para obtener más información, vea Crear operaciones asincrónicas en C++ para aplicaciones de la Tienda Windows.

Sugerencia

El runtime de simultaneidad proporciona un programador predeterminado y, por tanto, no es necesario crear uno en la aplicación.Dado que el programador de tareas ayuda a ajustar el rendimiento de las aplicaciones, se recomienda que comience con Parallel Patterns Library (PPL) o Biblioteca de agentes asincrónicos si no ha usado antes el runtime de simultaneidad.

El Programador de tareas programa y coordina las tareas en tiempo de ejecución. Una tarea es una unidad de trabajo que realiza un trabajo concreto. Una tarea puede ejecutarse normalmente en paralelo con otras tareas. El trabajo que realizan los elementos de grupo de tareas, los algoritmos paralelos y los agentes asincrónicos constituyen todos ellos ejemplos de tareas.

El Programador de tareas administra los detalles que se relacionan con la programación eficaz de las tareas en los equipos que tienen varios recursos. El Programador de tareas también utiliza las características más nuevas del sistema operativo subyacente. Por consiguiente, las aplicaciones que utilizan Runtime de simultaneidad escalan y mejoran automáticamente en el hardware que tiene capacidades más amplias.

En Comparar el runtime de simultaneidad con otros modelos de simultaneidad se describen las diferencias entre los mecanismos de programación cooperativos y preferentes. El Programador de tareas usa la programación cooperativa y un algoritmo de robo de trabajo junto con el programador preferente del sistema operativo para lograr el uso máximo de los recursos de procesamiento.

El Runtime de simultaneidad proporciona un programador predeterminado para que no tenga que controlar los detalles de infraestructura. Por consiguiente, no se suele usar directamente el programador de tareas. Sin embargo, para satisfacer las necesidades de calidad de la aplicación, también se puede usar para proporcionar una directiva propia de programación o asociar programadores concretos con tareas concretas. Por ejemplo, suponga que tiene una rutina paralela de ordenación que no escala más allá de cuatro procesadores. Puede usar directivas del programador para crear un programador que no genere más de cuatro tareas simultáneas. La ejecución de una rutina de ordenación en este programador permite que otros programadores activos usen cualquier recurso de procesamiento restante.

Temas relacionados

Título

Descripción

Instancias del programador

Describe las instancias del programador y cómo usar las clases concurrency::Scheduler y concurrency::CurrentScheduler para administrarlas. Use las instancias del programador cuando desee asociar directivas de programación explícitas con tipos concretos de cargas de trabajo.

Directivas del programador

Describe el rol de las directivas de programador. Use las directivas de programador cuando desee controlar la estrategia que el programador utiliza cuando administra tareas.

Grupos de programación

Describe el rol de los grupos de programación. Use los grupos de programación cuando necesite un alto grado de emplazamiento entre las tareas, por ejemplo, cuando un grupo de tareas relacionadas se beneficia de ejecutarse en el mismo nodo del procesador.

Tareas ligeras

Describe el rol de las tareas ligeras. Las tareas ligeras son útiles cuando se adapta código existente para usar la funcionalidad de programación del Runtime de simultaneidad.

Contextos

Describe el rol de los contextos, de la función concurrency::wait y de la clase concurrency::Context. Use esta funcionalidad si necesita controlar cuándo los contextos se bloquean, se desbloquean y producen resultados, o cuando desee habilitar la suscripción excesiva en la aplicación.

Funciones de administración de memoria

Describe las funciones concurrency::Alloc y concurrency::Free. Estas características pueden mejorar el rendimiento de la memoria si se asigna y libera la memoria de forma simultánea.

Comparar el runtime de simultaneidad con otros modelos de simultaneidad

Se describen las diferencias entre los mecanismos de programación cooperativos y preferentes.

Parallel Patterns Library (PPL)

Se describe cómo utilizar diferentes modelos paralelos, por ejemplo, los algoritmos paralelos, en las aplicaciones.

Biblioteca de agentes asincrónicos

Se describe el uso de agentes asincrónicos en las aplicaciones.

Runtime de simultaneidad

Se describe el Runtime de simultaneidad, que simplifica la programación en paralelo, y contiene vínculos a temas relacionados.