Red de conocimiento del abogados - Preguntas y respuestas jurídicas - ¿Qué es un subproceso y qué es un subproceso múltiple? ¿Cuál es la diferencia entre ellos?

¿Qué es un subproceso y qué es un subproceso múltiple? ¿Cuál es la diferencia entre ellos?

Declaración 1: Un proceso es un programa con ciertas funciones independientes. Con respecto a una actividad en ejecución en una determinada recopilación de datos, un proceso es una unidad independiente para la asignación y programación de recursos por parte del sistema. p>Thread Es una entidad del proceso y la unidad básica de programación y despacho de la CPU. Es una unidad básica que es más pequeña que el proceso y puede ejecutarse de forma independiente. El subproceso en sí básicamente no posee recursos del sistema, solo unos pocos recursos. que son esenciales durante la operación (como un contador de programa, un conjunto de registros y una pila), pero puede compartir todos los recursos que posee el proceso con otros subprocesos que pertenecen al mismo proceso.

Un subproceso. puede crear y destruir otro subproceso; se pueden ejecutar varios subprocesos en el mismo proceso al mismo tiempo

Declaración 2: Los procesos y los subprocesos son las unidades básicas de ejecución del programa que experimenta el sistema operativo. implementar el control de aplicaciones del sistema. La diferencia entre procesos y subprocesos es:

En resumen, un programa tiene al menos un proceso y un proceso tiene al menos un subproceso.

La escala de división de los subprocesos es menor que. el de los procesos, haciendo posible el uso de subprocesos múltiples. El programa tiene una alta concurrencia.

Además, el proceso tiene una unidad de memoria independiente durante la ejecución y varios subprocesos comparten la memoria, lo que mejora en gran medida la eficiencia de ejecución del programa.

Los hilos siguen siendo diferentes de los procesos durante la ejecución. Cada hilo independiente tiene un punto de entrada para la ejecución del programa, una secuencia de ejecución secuencial y un punto de salida para el programa. Sin embargo, los subprocesos no se pueden ejecutar de forma independiente y deben existir en el programa de aplicación, y el programa de aplicación proporciona control de ejecución de múltiples subprocesos.

Desde un punto de vista lógico, el significado de subprocesos múltiples es que en una aplicación, se pueden ejecutar múltiples partes de ejecución al mismo tiempo. Sin embargo, el sistema operativo no considera múltiples subprocesos como múltiples aplicaciones independientes para implementar la programación, gestión y asignación de recursos de procesos. Ésta es la diferencia importante entre procesos y subprocesos.

Afirmación 3: La existencia de subprocesos múltiples en las aplicaciones es una característica básica y un símbolo importante de los sistemas operativos modernos. Los lectores que han utilizado el sistema operativo UNIX conocen el proceso. En el sistema operativo UNIX, la ejecución de cada aplicación registra un indicador de proceso en el núcleo del sistema operativo. El sistema operativo programa la ejecución de la aplicación y asigna los recursos del sistema de acuerdo con los asignados. flag. , pero ¿cuál es la diferencia entre un proceso y un hilo?

Los procesos y subprocesos son la unidad básica de ejecución del programa que experimenta el sistema operativo. El sistema utiliza esta unidad básica para realizar la concurrencia del sistema con la aplicación. La diferencia entre procesos y subprocesos es:

La escala de división de los subprocesos es menor que la de los procesos, lo que dificulta la concurrencia de programas multiproceso.

Además, el proceso tiene una unidad de memoria independiente durante la ejecución y varios subprocesos comparten la memoria, lo que mejora en gran medida la eficiencia de ejecución del programa.

Los hilos siguen siendo diferentes de los procesos durante la ejecución. Cada hilo independiente tiene un punto de entrada para la ejecución del programa, una secuencia de ejecución secuencial y un punto de salida para el programa. Sin embargo, los subprocesos no se pueden ejecutar de forma independiente y deben existir en el programa de aplicación, y el programa de aplicación proporciona control de ejecución de múltiples subprocesos.

Desde un punto de vista lógico, el significado de subprocesos múltiples es que en una aplicación, se pueden ejecutar múltiples partes de ejecución al mismo tiempo. Sin embargo, el sistema operativo no considera múltiples subprocesos como múltiples aplicaciones independientes para implementar la programación, gestión y asignación de recursos de procesos. Ésta es la diferencia importante entre procesos y subprocesos.

Proceso es un concepto definido originalmente en entornos de sistemas operativos multiusuario y multitarea como Unix para representar la unidad de ejecución básica de una aplicación en un entorno de memoria. Tomando el sistema operativo Unix como ejemplo, los procesos son los componentes básicos del entorno del sistema operativo Unix y la unidad básica de asignación de recursos del sistema. Casi todo el trabajo de gestión de usuarios y asignación de recursos realizado en el sistema operativo Unix se logra mediante el control del proceso de aplicación por parte del sistema operativo.

Los programas fuente escritos en C, C++, Java y otros lenguajes son compilados en archivos ejecutables por el compilador correspondiente y luego enviados al procesador de la computadora para su ejecución. En este momento, la aplicación en estado ejecutable se denomina proceso. Desde la perspectiva del usuario, un proceso es un proceso de ejecución de una aplicación. Desde la perspectiva del núcleo del sistema operativo, un proceso representa la unidad básica de recursos, como la memoria y los intervalos de tiempo de CPU asignados por el sistema operativo, y es el entorno operativo proporcionado para ejecutar programas.

La diferencia entre un proceso y una aplicación es que una aplicación se almacena como un archivo estático en un espacio de almacenamiento como el disco duro del sistema informático, mientras que un proceso es una entidad de gestión de recursos del sistema mantenida por el sistema operativo en condiciones dinámicas. Las principales características de los procesos de aplicación en un entorno multitarea incluyen:

●El proceso tiene un punto de entrada inicial de la unidad de memoria durante la ejecución, y el proceso siempre tiene un espacio de direcciones de memoria independiente durante su supervivencia;

●El estado de vida de un proceso incluye creación, listo, ejecución, bloqueo y muerte.

●La forma de ejecución de las instrucciones emitidas por el proceso de la aplicación a la CPU durante la ejecución es; diferente, y el proceso puede ser El estado se divide en estado de usuario y estado central. El proceso en modo usuario ejecuta las instrucciones de la aplicación y el proceso de aplicación en modo kernel ejecuta las instrucciones del sistema operativo.

Durante el proceso de inicio del sistema operativo Unix, el sistema crea automáticamente procesos del sistema como swapper e init, que se utilizan para administrar los recursos de memoria y programar procesos de usuario. En el entorno Unix, tanto los procesos creados por el sistema operativo como los procesos creados por la ejecución de la aplicación tienen un identificador de proceso único (PID).

Declaración 4: Durante la ejecución de una aplicación, hay una dirección de punto de entrada inicial del espacio de memoria, una secuencia de ejecución de código durante la ejecución del programa y una dirección de punto de salida de memoria utilizada para identificar el final de la proceso. Cada punto de tiempo en el proceso tiene una instrucción de procesador única correspondiente a una dirección de unidad de memoria.

El hilo definido en el lenguaje Java también incluye una dirección de punto de entrada a la memoria, una dirección de punto de salida y una secuencia de código que se puede ejecutar secuencialmente. Sin embargo, la diferencia importante entre un proceso y un subproceso es que un subproceso no puede ejecutarse solo. Debe ejecutarse en un proceso de aplicación activo. Por lo tanto, un subproceso puede definirse como un flujo de código secuencial concurrente dentro del programa.

El sistema operativo Unix y el sistema operativo Microsoft Windows admiten la ejecución simultánea de múltiples usuarios y múltiples procesos, mientras que el lenguaje Java admite la ejecución simultánea de múltiples subprocesos de ejecución dentro del proceso de la aplicación. La importancia del subproceso múltiple es que se pueden ejecutar varias unidades lógicas de una aplicación al mismo tiempo. Pero el subproceso múltiple no significa que se estén ejecutando múltiples procesos de usuario y el sistema operativo no trata cada subproceso como un proceso independiente para asignar recursos independientes del sistema. Un proceso puede crear sus procesos secundarios, que tienen códigos ejecutables y espacios de memoria de datos diferentes a los del proceso principal. En el proceso utilizado para representar la aplicación, varios subprocesos comparten el espacio de memoria de datos, pero cada subproceso mantiene una pila de ejecución independiente y un contexto de ejecución del programa (Contexto).

Basándonos en la distinción anterior, los subprocesos también pueden denominarse procesos ligeros (LWP). Se permite la colaboración de tareas y el intercambio de datos entre diferentes subprocesos, lo que lo hace muy económico en términos de consumo de recursos del sistema informático.

Los subprocesos requieren soporte del sistema operativo y no todos los tipos de computadoras admiten aplicaciones multiproceso. El lenguaje de programación Java combina el soporte de subprocesos con el entorno de ejecución del lenguaje, brindando la capacidad de ejecutar múltiples tareas simultáneamente. Esto es como una persona que hace las tareas del hogar, pone la ropa en la lavadora para que se lave automáticamente, pone el arroz en la olla arrocera y luego comienza a cocinar. Cuando los platos están listos, se cuece el arroz y se lava la ropa.

Cabe señalar que el uso de múltiples subprocesos en una aplicación no aumenta la potencia de procesamiento de datos de la CPU. Solo en una computadora con múltiples CPU o una arquitectura informática de red, después de dividir el programa Java en múltiples subprocesos de ejecución concurrentes e iniciar varios subprocesos para que se ejecuten al mismo tiempo, de modo que se ejecuten diferentes subprocesos en máquinas virtuales Java basadas en diferentes procesadores, se puede mejorar la aplicación. eficiencia de ejecución.