Compartir a través de


Procesos y subprocesos

Subprocesos y procesos son conceptos relacionados en informática. Los dos representan secuencias de instrucciones que se deben ejecutar en un orden concreto. Sin embargo, las instrucciones de subprocesos o procesos independientes se pueden ejecutar en paralelo.

Los procesos existen en el sistema operativo y corresponden a lo que los usuarios consideran programas o aplicaciones. Por otra parte, un subproceso existe dentro de un proceso. Por esta razón, los subprocesos se denominan a veces procesos ligeros. Cada proceso está compuesto por uno o más subprocesos.

La existencia de varios procesos permite a un equipo realizar más de una tarea a la vez. La existencia de varios subprocesos permite a un proceso dividir el trabajo que se va a realizar en paralelo. En un equipo con multiprocesadores, los procesos o subprocesos se pueden ejecutar en procesadores diferentes. Esto permite realizar un verdadero procesamiento en paralelo.

El procesamiento paralelo perfecto no siempre es posible. En ocasiones, los subprocesos deben sincronizarse. Es posible que un subproceso tenga que esperar al resultado de otro subproceso, o necesite acceso exclusivo a un recurso que otro subproceso esté utilizando. Los problemas de sincronización son una causa común de errores en las aplicaciones multiproceso. A veces, los subprocesos pueden acabar esperando un recurso que nunca está disponible. Esto provoca una condición denominada interbloqueo.

El depurador de Visual Studio proporciona herramientas eficaces pero fáciles de usar para depurar subprocesos y procesos.

Herramientas para depurar subprocesos y procesos en Visual Studio

Las herramientas principales para trabajar con procesos en Visual Studio son el cuadro de diálogo Asociar al proceso, la ventana Procesos y la barra de herramientas Ubicación de depuración. Las herramientas principales para depurar subprocesos son la ventana Subprocesos, los marcadores de subprocesos en ventanas de código fuente, y la barra de herramientas Ubicación de depuración.

Las herramientas principales para depurar aplicaciones multithreading son las ventanas Pilas paralelas y Tareas paralelas.

La tabla siguiente muestra la información disponible y las acciones que se pueden realizar en cada uno de estos lugares:

Interfaz de usuario

Información disponible

Acciones que puede realizar

Cuadro de diálogo Asociar al proceso

Procesos disponibles que puede asociar:

  • Nombre del proceso (.exe)

  • Número de id. del proceso

  • Título de la barra de menú

  • Tipo (Administrado v4.0; Administrador v2.0, v1.1, v1.0; x86; x64; IA64)

  • Nombre de usuario (nombre de la cuenta)

  • Número de la sesión

Seleccionar un proceso para asociar

Seleccionar un equipo remoto

Cambiar el tipo de transporte para conectar a equipos remotos.

Ventana Procesos

Procesos asociados:

  • Nombre del proceso

  • Número de id. del proceso

  • Ruta de acceso al archivo .exe del proceso

  • Título de la barra de menú

  • Estado (Inter., En ejecución)

  • Depuración (nativa, administrada, etc.)

  • Tipo de transporte (predeterminado, nativo sin autenticación)

  • Calificador de transporte (equipo remoto)

Herramientas:

  • Asociar

  • Desasociar

  • Terminar

Menú contextual:

  • Asociar

  • Desasociar

  • Desasociar cuando se detenga la depuración.

  • Terminar

Ventana Subprocesos

Subprocesos en el proceso actual:

  • Id. de subproceso

  • Identificador administrado

  • Categoría (subproceso principal, subproceso de interfaz, controlador de llamadas a procedimientos remotos o subproceso de trabajo)

  • Nombre del subproceso

  • Ubicación donde se creó el subproceso

  • Prioridad

  • Máscara de afinidad

  • Recuento de suspendidos

  • Nombre del proceso

  • Indicador de marca

  • Indicador suspendido

Herramientas:

  • Buscar

  • Buscar en pila de llamadas

  • Marcar solo mi código

  • Marcar selección de módulos personalizados

  • Agrupar por

  • Columnas

  • Expandir o contraer pilas de llamadas

  • Expandir o contraer grupos

  • Inmovilizar o reanudar subprocesos

Menú contextual:

  • Mostrar subprocesos en código fuente

  • Modificar a un subproceso

  • Inmovilizar un subproceso en ejecución.

  • Reanudar un subproceso inmovilizado

  • Marcar un subproceso para su estudio adicional

  • Quitar el marcador a un subproceso

  • Cambiar el nombre de un subproceso

  • Mostrar y ocultar subprocesos

Otras acciones:

  • Ver la pila de llamadas de un subproceso en una información sobre datos

Ventana de código fuente

Los indicadores de subproceso del margen interno izquierdo indican uno o varios procesos (desactivados de forma predeterminada, se activan mediante el menú contextual de la ventana Subprocesos)

Menú contextual:

  • Modificar a un subproceso

  • Marcar un subproceso para su estudio adicional

  • Quitar el marcador a un subproceso

Barra de herramientas Ubicación de depuración

  • Proceso actual

  • Subproceso actual

  • Marco de pila actual

  • Modificar a otro proceso

  • Modificar a otro subproceso en el proceso actual

  • Modificar a otro marco de pila en el subproceso actual

  • Marcar o desmarcar subprocesos

  • Mostrar sólo los subprocesos marcados

Ventana Pilas paralelas

  • Pilas de llamadas para varios subprocesos en una ventana.

  • Marco de pila activa para cada subproceso.

  • Los llamadores y destinatarios de cualquier método.

  • Filtrar subprocesos especificados

  • Cambiar a la vista Tareas paralelas

  • Marcar o demarcar un subproceso

  • Zoom

Ventana Tareas paralelas

  • Vea información sobre los objetos Task, como el identificador de tarea, el estado de la tarea (programado, en ejecución, en espera, interbloqueada) y qué subproceso está asignado a la tarea.

  • Ubicación actual en la pila de llamadas.

  • Delegado pasado a la tarea en el momento de creación

  • Pasar a la tarea actual

  • Marcar o desmarcar una tarea

  • Inmovilizar o reanudar una tarea

Vea también

Tareas

Cómo: Utilizar la ventana Procesos

Otros recursos

Conectarse a procesos en ejecución

Depurar aplicaciones multiproceso