En los s.o. tradicionales cada proceso tiene un espacio
de direcciones y un solo subproceso de control
Sin embargo, hay situaciones en las que es deseable tener varios subprocesos de control en el mismo espacio de direcciones, operando de forma pseudoparalela, como si fueran procesos individuales
(salvo por el espacio de direcciones compartido).
Subprocesos
El modelo de proceso descrito hasta ahora se basa en
dos conceptos independientes: agrupamiento de
recursos y ejecución. A veces es útil separarlos, y es aquí donde entran los subprocesos.
Un proceso se puede considerar como una forma de
agrupar recursos relacionados.
El modelo de subprocesos
Un proceso tiene un espacio de direcciones que
contiene lo datos y el texto del programa, así como
otros recursos, que podrían incluir archivos abiertos,
procesos hijos, alarmas pendientes, etc.
Al juntar todas estas cosas en forma de un proceso se
les puede administrar con más facilidad.
Éste tiene un contador de programa que indica cuál
instrucción se ejecutará a continuación, tiene registros,
que contienen sus variables de trabajo actuales, y tiene
una pila, que contiene el historial de ejecución.
Los procesos sirven para agrupar recursos; los
subprocesos son las entidades que se calendarizan
para ejecutarse en la CPU.
los subprocesos comparten un espacio de direcciones, archivos abiertos y otros recursos
El termino múltiples procesos se emplea para
describir la situación en la que se permite varios
subprocesos en el mismo proceso.
Cuando un proceso con múltiples subprocesos se
ejecuta en un sistema con una sola CPU, los subprocesos se turnan para ejecutarse
Además de compartir el mismo espacio de direcciones,
todos los subprocesos comparten el mismo conjunto de
archivos abiertos, procesos hijos, alarmas, señales, etc.
Un subproceso puede estar en uno de varios estados:
en ejecución, bloqueado, listo o terminado.
¿Por qué son útiles los subprocesos?
El motivo principal es que en diversas aplicaciones, se
estén realizando varias actividades al mismo tiempo,
por lo que algunas de ellas podrían bloquearse de vez
en cuando.
Al descomponer tal aplicación en múltiples
subprocesos secuenciales que se ejecuten casi en
paralelo, se simplifica el modelo de programación.
Uso de subprocesos
Un segundo argumento es que, al no estar enlazados
con recursos, son más fáciles de crear y destruir que
los procesos. Y mejora el desempeño del CPU
Por último son útiles en sistemas con múltiples CPUs,
en los que es posible un verdadero paralelismo
Si el proceso padre tiene múltiples subprocesos, ¿ el
hijo también deberá tenerlos? De lo contrario es
posible que no funcione de forma correcta.
Página anterior | Volver al principio del trabajo | Página siguiente |