Hilos y Procesos
En un sistema operativo, un proceso es un trabajo o un programa que puede ser ejecutado por la computadora. Piense en la aplicación MS Word, que es un proceso que se ejecuta en la computadora. Pero una aplicación puede hacer más de una cosa a la vez, lo que significa que un proceso dado en un sistema operativo puede tener uno o más subprocesos . Los hilos representan el procesamiento real del código.
Un proceso tiene sus propios registros de sistema y pila de memoria que los ayuda a ejecutar subprocesos. Los subprocesos a veces se denominan procesos ligeros . El siguiente gráfico muestra un proceso con un solo subproceso en su interior:
Los subprocesos son muy útiles en el mundo multitarea actual. Teniendo en cuenta la aplicación MS Word, es conveniente resaltar las palabras mal escritas mientras escribe; o complete el guardado automático de su información mientras trabaja en ella. Los subprocesos dentro del proceso de solicitud lo ayudan a lograr este objetivo.
diferencias
Los procesos y los subprocesos funcionan juntos, pero tienen muchas diferencias entre ellos. Por lo general, los procesos son bastante pesados (como MS Word), mientras que los subprocesos son más ligeros (como la opción de guardar en segundo plano). La siguiente tabla destaca algunas de las diferencias entre los dos.
| Procesos | Hilos |
|---|---|
| Al cambiar un proceso, se requieren los recursos del sistema operativo | No se requieren recursos del sistema operativo para el cambio de subprocesos |
| Si se bloquea un proceso, también se bloquean otros procesos que esperan en la cola | Si un subproceso está bloqueado, otro subproceso en el mismo proceso aún puede ejecutarse |
| Cada proceso usa el mismo código y tiene su propia memoria. | Todos los subprocesos pueden compartir archivos y compartir procesos secundarios |
| Una aplicación que tenga múltiples procesos utilizará más recursos del sistema | Los procesos que usan múltiples subprocesos usan menos recursos del sistema |
| Cada proceso funciona por sí solo. | Los hilos pueden acceder a datos de otros hilos |
subprocesos múltiples
Puede ser fácil confundir multitarea con multihilo. Multitarea es un término general para hacer muchas tareas al mismo tiempo. Por otro lado, los subprocesos múltiples son la capacidad de un proceso para ejecutar varios subprocesos al mismo tiempo. Nuevamente, el ejemplo de MS Word es apropiado en escenarios de subprocesos múltiples. El proceso puede revisar la ortografía, guardar automáticamente y leer archivos del disco duro, todo mientras trabaja en un documento.
Considere el siguiente diagrama. Los subprocesos comparten el mismo código, archivos y datos. Esto significa que se pueden ejecutar dos o más subprocesos al mismo tiempo (guardado automático, revisión gramatical, revisión ortográfica, recuento de palabras, etc.).
Los subprocesos múltiples proporcionan un mayor beneficio que los subprocesos únicos:
- El subprocesamiento múltiple es económico. Recuerde de la tabla anterior, cambiar hilos es más rápido que cambiar procesos.
- Si los subprocesos están bloqueados, otro subproceso aún puede ejecutarse y finalizar una tarea (por ejemplo, si la revisión gramatical está atascada, el documento aún puede guardarse automáticamente)
- Los subprocesos comparten el mismo código, datos y archivos. Esto les permite realizar varias tareas a la vez.
- Incluso si una computadora tiene 12 CPU, un proceso de un solo subproceso solo se ejecuta en una CPU. Con subprocesos múltiples, el trabajo se puede distribuir entre muchas CPU.
Tipos de hilos
Al igual que los procesos, existen dos tipos de subprocesos, según la tarea. Los subprocesos de usuario son aquellos subprocesos que no necesitan acceder a las funciones subyacentes del sistema operativo (SO), ni necesitan seguridad del sistema operativo. La creación de subprocesos de usuario es bastante genérica y no específica de ningún sistema operativo y, por lo general, es muy eficiente y rápida. Por ejemplo, la aplicación MS Word se compone principalmente de hilos de usuarios.
Los subprocesos del kernel son el tipo de subprocesos que se ejecutan dentro del kernel del sistema operativo y también admiten múltiples subprocesos y llamadas al sistema. Los subprocesos del kernel son en realidad específicos del sistema operativo, por lo que verá diferentes implementaciones en función de si el sistema operativo es Linux, Windows, Solaris, etc. Los subprocesos del kernel suelen ser más lentos que los subprocesos del usuario. Pero los subprocesos del kernel también pueden ser multiprocesos y se reprograman fácilmente si se realiza una copia de seguridad de otros subprocesos en línea.
Resumen de la lección
Tomemos un par de momentos para revisar lo que hemos aprendido sobre los subprocesos en un sistema operativo.
Un proceso es un trabajo que se ejecuta dentro de una computadora, como un proceso para mostrar un video. Tiene sus propios datos y registros de memoria. Un hilo es una acción que se lleva a cabo dentro del proceso. Debido a que existen subprocesos en los procesos, también se denominan procesos ligeros . Un proceso puede ejecutar varios subprocesos a la vez y esto se conoce como subprocesos múltiples . Debido a los subprocesos múltiples, puede descargar y ver un video, ambos al mismo tiempo. Los subprocesos, como los procesos, se ejecutan en el sistema operativo. Hay dos tipos de subprocesos: subprocesos de usuario (que se ejecutan en aplicaciones de usuario) y subprocesos de kernel (que son ejecutados por el sistema operativo).
Continua con:
- ¿Quién creó WiFi y la conexión inalámbrica a Internet?
- ¿Qué es la Ciberetnografía? Características y ejemplos
- Historia de Microsoft Windows: Un sistema operativo que definió la informática moderna
- Historia de la impresión 3D: evolución y avances
- Usos de impresoras 3D en la medicina: innovación en la fabricación de soluciones personalizadas
- PLA vs ABS: diferencias y usos
