Professional Documents
Culture Documents
no es ms que una instancia de un programa en ejecucin, incluyendo los valores actuales del contador
de programa, los registros y las variables.
Los procesos que permanecen en segundo plano para manejar ciertas actividades como correo
electrnico, pginas Web, noticias, impresiones, etctera, se conocen como demonios (daemons).
En UNIX slo hay una llamada al sistema para crear un proceso: fork
Por lo general, el proceso hijo ejecuta despus a execve o una llamada al sistema similar para cambiar
su imagen de memoria y ejecutar un nuevo programa.
Por el contrario, en Windows una sola llamada a una funcin de Win32 (CreateProcess ) maneja la
creacin de procesos y carga el programa correcto en el nuevo proceso.
Adems de CreateProcess , Win32 tiene cerca de 100 funciones ms para administrar y sincronizar
procesos y temas relacionados.
Tarde o temprano el nuevo proceso terminar, por lo general debido a una de las siguientes
condiciones:
1. Salida normal (voluntaria).
2. Salida por error (voluntaria).
3. Error fatal (involuntaria).
4. Eliminado por otro proceso (involuntaria).
Un proceso podra terminar es que ejecute una llamada al sistema que indique al sistema operativo que
elimine otros procesos.
En UNIX esta llamada es kill .
La funcin correspondiente en Win32 es TerminateProcess .
Windows no tiene un concepto de una jerarqua de procesos. Todos los procesos son iguales.
Cuando un proceso se bloquea, lo hace debido a que por lgica no puede continuar, comnmente
porque est esperando una entrada que todava no est disponible.
Tambin es posible que un proceso, que est listo en concepto y pueda ejecutarse, se detenga debido a
que el sistema operativo ha decidido asignar la CPU a otro proceso por cierto tiempo.
Las acciones como guardar los registros y establecer el apuntador de pila no se pueden expresar ni
siquiera en lenguajes de alto nivel tales como C,
Una manera de ver a un proceso es como si fuera una forma de agrupar recursos relacionados.
Un proceso tiene un espacio de direcciones que contiene texto y datos del programa, as como otros
recursos.
El trmino multihilamiento tambin se utiliza para describir la situacin de permitir varios hilos en el
mismo proceso.
Los distintos hilos en un proceso no son tan independientes como los procesos. Todos los hilos tienen
el mismo espacio de direcciones, lo cual significa que tambin comparten las mismas variables
globales.
hilo puede estar en uno de varios estados: en ejecucin, bloqueado, listo o terminado.
Este hilo tiene la habilidad de crear hilos mediante la llamada a un procedimiento de biblioteca, como
thread_ create
Cuando un hilo termina su trabajo, puede salir mediante la llamada a un procedimiento de biblioteca,
como thread_ exit
thread_ join. Este procedimiento bloquea al hilo llamador hasta que un hilo (especfico) haya terminado
Otra llamada de hilos comn es thread_ yield, que permite a un hilo entregar voluntariamente la CPU
para dejar que otro hilo se ejecute
Hay dos formas principales de implementar un paquete de hilos: en espacio de usuario y en el kernel.
Cuando los hilos se administran en espacio de usuario, cada proceso necesita su propia tabla de hilos
privada para llevar la cuenta de los hilos en ese proceso.
UNIX existe una llamada al sistema ( select ), la cual permite al procedimiento que hace la llamada
saber si una posible llamada a read realizar un bloqueo.
Los objetivos del trabajo de una activacin del planificador son imitar la funcionalidad de los hilos de
kernel, pero con el mejor rendimiento y la mayor flexibilidad que por lo general se asocian con los
paquetes de hilos implementados en espacio de usuario.
Por el contrario, un algoritmo de planificacin apropiativa selecciona un proceso y deja que se ejecute
por un mximo de tiempo fijo.
En otras palabras, lo que el planificador debe optimizar no es lo mismo en todos los sistemas. Tres de
los entornos que vale la pena mencionar son: