Sistemas operativos modernos
2.2 SUBPROCESOS En los sistemas operativos tradicionales cada proceso tiene un espacio de direcciones y un so lo subproceso de control. De hecho, ésta es casi la definición de proceso. No obstante, abun dan las situaciones en las que es deseable tener varios subprocesos de control en el mismo espacio de direcciones, operando de forma seudoparalela, como si fueran procesos individua les (salvo por el espacio de direcciones compartido). En las secciones que siguen veremos esas situaciones y sus implicaciones. 2.2.1 El modelo de subprocesos El modelo de procesos que hemos manejado hasta ahora se basa en dos conceptos independien tes: agrupamiento de recursos y ejecución. A veces resulta útil separarlos, y es aquí donde en tran los subprocesos. Un proceso se puede considerar como una forma de agrupar recursos relacionados. Un proceso tiene un espacio de direcciones que contiene los datos y el texto del programa, así co mo otros recursos, que podrían incluir archivos abiertos, procesos hijos, alarmas pendientes, manejadores de señales, información contable, etc. Al juntar todas estas cosas en forma de un proceso, se les puede administrar con más facilidad. El otro concepto que tiene un proceso es un subproceso de ejecución, o simplemente sub proceso. Éste tiene un contador de programa que indica cuál instrucción se ejecutará a continua ción; tiene registros, que contienen sus variables de trabajo actuales, y tiene una pila, que contiene el historial de ejecución, con un marco por cada procedimiento invocado del cual todavía no se haya regresado. Aunque un subproceso debe ejecutarse en algún proceso, el subproceso y su pro ceso son conceptos distintos que pueden tratarse aparte. Los procesos sirven para agrupar recur sos; los subprocesos son las entidades que se calendarizan para ejecutarse en la CPU. Los subprocesos aportan al modelo de procesos la posibilidad de que haya varias ejecucio nes en el mismo entorno de un proceso, en gran medida independientes una de otra. Tener múl tiples subprocesos ejecutándose en paralelo en un proceso es análogo a tener múltiples procesos ejecutándose en paralelo en una computadora. En el primer caso, los subprocesos comparten un espacio de direcciones, archivos abiertos y otros recursos. En el segundo, los procesos compar ten una memoria física, discos, impresoras y otros recursos. Debido a que los subprocesos tienen algunas de las propiedades de los procesos, a veces se les llama procesos ligeros. También se em plea el término múltiples subprocesos para describir la situación en la que se permiten varios subprocesos en el mismo proceso. En la figura 2-6a se muestran tres procesos tradicionales. Cada uno tiene su propio espa cio de direcciones y un solo subproceso de control. En contraste, en la figura 2-6b se muestra un solo proceso con tres subprocesos de control. Aunque en ambos casos hay tres subprocesos, en la figura 2-6a cada uno opera en un espacio de direcciones distinto, mientras que en la figu ra 2-6b los tres comparten el mismo espacio de direcciones.
RkJQdWJsaXNoZXIy MjI4NDcx