La diferencia entre proceso e hilo es fácil de entender

Prefacio

Algunos puntos de conocimiento son fáciles de olvidar después de un largo período de tiempo, y serán investigados nuevamente, es mejor organizarlos cuando tenga tiempo, para que sea conveniente para los demás y para el autoexamen.

Una metáfora popular para procesos e hilos

Suponga que el poder de la fábrica es limitado y solo puede ser utilizado por un taller a la vez. En otras palabras, cuando comienza un taller, todos los demás talleres deben detenerse. La implicación detrás de esto es que una sola CPU solo puede ejecutar una tarea a la vez. El proceso es como el taller de una fábrica, representa una única tarea que la CPU puede manejar. En cualquier momento, la CPU siempre ejecuta un proceso y otros procesos están en un estado inactivo. Puede haber muchos trabajadores en un taller. Trabajan juntos para completar una tarea. Los hilos son como trabajadores en el taller.

Un proceso puede incluir varios subprocesos. El espacio del taller es compartido por los trabajadores, por ejemplo, muchas salas son accesibles para todos los trabajadores. Esto simboliza que el espacio de memoria de un proceso es compartido y cada hilo puede usar esta memoria compartida. Sin embargo, el tamaño de cada habitación es diferente, y algunas habitaciones solo pueden acomodar a una persona como máximo, como un baño. Cuando hay gente adentro, nadie más puede entrar. Esto significa que cuando un subproceso usa algo de memoria compartida, otros subprocesos deben esperar a que termine antes de poder usar esta memoria. Una forma fácil de evitar que otros entren es poner un candado en la puerta. Los que llegaron primero cerraron la puerta, y los que llegaron después vieron la cerradura y se alinearon en la puerta, esperando que se abriera antes de entrar. Esto se denomina "exclusión mutua" (exclusión mutua, abreviado como Mutex), que evita que varios subprocesos lean y escriban en un área de memoria determinada al mismo tiempo. También hay habitaciones que pueden acomodar a n personas al mismo tiempo, como la cocina. En otras palabras, si el número de personas es mayor que n, las personas adicionales solo pueden esperar afuera. Esto es como un área de memoria, que solo puede ser utilizada por un número fijo de subprocesos. La solución en este momento es colgar n llaves en la puerta. Aquellos que entran toman una llave y la cuelgan cuando salen. Los que llegaron más tarde encontraron que la llave estaba vacía y sabían que tenían que hacer cola en la puerta. Este enfoque se denomina "semáforo" (Semaphore) y se utiliza para garantizar que varios subprocesos no entren en conflicto entre sí. No es difícil ver que mutex es un caso especial de semáforo (cuando n = 1). En otras palabras, se puede utilizar este último en lugar del primero. Sin embargo, debido a que el mutex es relativamente simple y eficiente, este diseño todavía se usa cuando se debe garantizar el monopolio de recursos.

Por lo tanto, el diseño del sistema operativo se puede resumir en tres puntos:
1. En forma de multiproceso, lo que permite que se ejecuten múltiples tareas al mismo tiempo;
2. En forma de multiproceso, lo que permite que se realice una sola tarea. dividido en diferentes partes para ejecutar
3. Proporcionar un mecanismo de coordinación, por un lado, evitar conflictos entre procesos y subprocesos, y por otro lado, permitir que los recursos se compartan entre procesos e subprocesos.

En primer lugar, un resumen general.: El proceso y el subproceso son ambos una descripción de un período de tiempo, que es una descripción del período de tiempo de trabajo de la CPU.

El resto del contenido puede referirse a:

https://www.zhihu.com/question/25532384
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html


Supongo que te gusta

Origin blog.csdn.net/Ryan_lee9410/article/details/83582885
Recomendado
Clasificación