Sistemas operativos modernos

Proceso 1 Proceso 1 Proceso 1 Proceso Figura 2-6. a) Tres procesos, cada uno con un subproceso. b) Un proceso con tres subprocesos. Cuando un proceso con múltiples subprocesos se ejecuta en un sistema con una sola CPU, los subprocesos se turnan para ejecutarse. En la figura 2-1 se muestra cómo funciona la multi- programación de procesos. Al conmutar entre múltiples procesos, el sistema presenta la ilusión de procesos secuenciales individuales que se ejecutan en paralelo. Los múltiples subprocesos funcionan de la misma manera. La CPU conmuta rápido entre los subprocesos y presenta la ilu­ sión de que se ejecutan en paralelo, aunque en una CPU más lenta que la real. Si un proceso tie­ ne tres subprocesos que hacen uso intensivo del procesador, parecerá que se ejecutan en paralelo, cada uno en una CPU, a un tercio de la velocidad de la CPU real. Los distintos subprocesos de un proceso no son tan independientes como lo son los proce­ sos distintos. Todos los subprocesos tienen exactamente el mismo espacio de direcciones, lo que implica que comparten las mismas variables globales. Puesto que cada subproceso puede tener acceso a todas las direcciones de memoria del espacio de direcciones del proceso, un subpro­ ceso podna leer, modificar o incluso borrar por completo la pila de otro subproceso. No existe protección entre los subprocesos porque 1) es imposible, y 2) no debería ser necesaria. A dife­ rencia del caso de procesos distintos, que podrían pertenecer a usuarios distintos y ser hostiles entre sí, un proceso siempre pertenece a un solo usuario, y es de suponer que el usuario creó múltiples subprocesos con el fin de que cooperen, no de que peleen. Además de compartir un espacio de direcciones, todos los subprocesos comparten el mismo conjunto de archivos abier­ tos, procesos hijos, alarmas, señales, etcétera, como se muestra en la figura 2-7. Así, la organi­ zación de la figura 2-6a se usa cuando los tres procesos prácticamente no tienen relación entre sí, mientras que la figura 2-6b sería apropiada cuando los tres subprocesos en realidad son par­ te del mismo trabajo y están cooperando en forma activa y estrecha. Los elementos de la primera columna son propiedades de un proceso, no de un subpro­ ceso. Por ejemplo, si un subproceso abre un archivo, los demás subprocesos del proceso lo verán, y podrán leerlo y escribir en él. Esto es lógico porque el proceso, no el subproceso, es la unidad de administración de recursos. Si cada subproceso tuviera su propio espacio de direc­ ciones, archivos abiertos, alarmas pendientes y demás, sería un proceso independiente. Lo que

RkJQdWJsaXNoZXIy MjI4NDcx