domingo, 29 de enero de 2012

procesos y subprocesos


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 pueden ejecutarse en procesos diferentes, lo que habilita el verdadero procesamiento paralelo.

El procesamiento paralelo perfecto no siempre es posible. Los subprocesos necesitan a veces sincronizarse. Un subproceso tiene que esperar al resultado de otro subproceso o puede necesitar 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 y se produce una condición denominada interbloqueo.

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



Diferencias entre procesos y subprocesos (hilos)

Los hilos se distinguen de los tradicionales procesos en que los procesos son –generalmente– independientes, llevan bastante información de estados, e interactúan sólo a través de mecanismos de comunicación dados por el sistema. Por otra parte, muchos hilos generalmente comparten otros recursos de forma directa. En muchos de los sistemas operativos que dan facilidades a los hilos, es más rápido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro. Este fenómeno se debe a que los hilos comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes, no lo hacen. Al cambiar de un proceso a otro el sistema operativo (mediante el dispatcher) genera lo que se conoce como overhead, que es tiempo desperdiciado por el procesador para realizar un cambio de contexto (context switch), en este caso pasar del estado de ejecución (running) al estado de espera (waiting) y colocar el nuevo proceso en ejecución. En los hilos, como pertenecen a un mismo proceso, al realizar un cambio de hilo el tiempo perdido es casi despreciable.

Sistemas operativos como Windows NT, OS/2 y Linux (2.5 o superiores) dicen tener hilos "baratos", y procesos "costosos" mientras que en otros sistemas no hay una gran diferencia.







 El proceso es un programa en ejecuciónEel sistema operativo crea crea un proceso para ejecutar cada programa

El subproceso o hilo de ejecución:  es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.se puede decir básicamente que esuna tarea que puede ser ejecutada en paralelo con otra tarea.Se puede decir que los hilos son divisiones de un proceso.

No hay comentarios:

Publicar un comentario