You are on page 1of 4

Un proceso

no es ms que una instancia de un programa en ejecucin, incluyendo los valores actuales del contador
de programa, los registros y las variables.

CPU conmuta de programa en programa.


Esta conmutacin rpida de un proceso a otro se conoce como multiprogramacin

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).

llamada al sistema para indicar al sistema operativo que ha terminado.


exit en UNIX
ExitProcess en Windows.

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.

1. En ejecucin (en realidad est usando la CPU en ese instante).


2. Listo (ejecutable; se detuvo temporalmente para dejar que se ejecute otro proceso).
3. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento externo).

Un proceso puede encontrarse en estado en ejecucin, bloqueado o listo.


El proceso puede ejecutar una llamada al sistema, como pause, para entrar al estado bloqueado.

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,

Hilos Paralelismo, -> llamadas al sistema con bloqueo


Proceso con un solo hilo Sin paralelismo, -> llamadas al sistema con bloqueo
Mquina de estados finitos Paralelismo, -> llamadas al sistema sin bloqueo, interrupciones

El modelo de procesos se basa en dos conceptos independientes: agrupamiento de recursos y ejecucin.

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.

El cdigo colocado alrededor de la llamada al sistema que se encarga de la comprobacin se conoce


como envoltura.

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.

Un algoritmo de programacin no apropiativo (nonpreemptive) selecciona un proceso para ejecutarlo y


despus slo deja que se ejecute hasta que el mismo se bloquea (ya sea en espera de una operacin de
E/S o de algn otro proceso) o hasta que libera la CPU en forma voluntaria.

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:

1. Procesamiento por lotes.


2. Interactivo.
3. De tiempo real.

Primero en entrar, primero en ser atendido


Probablemente el ms simple de todos los algoritmos de planificacin es el de tipo primero en entrar,
primero en ser atendido (FCFS, First-Come, First-Served) no apropiativo.

You might also like