You are on page 1of 45

PROCESOS I

Sistemas Operativos II
Prof. Pablo Macn
http://soii-its.blogspot.com/

Para entender qu es un
proceso y tratar de dar una
definicin, veamos primero
esta alegora:

Procesos

Un cientfico computacional
se propone a cocinar una torta
Tiene la receta, los
ingredientes y una cocina apta
para la tarea

Procesos

Cocinero Procesador
Receta Programa (algoritmo)
Ingredientes Datos de entrada

Procesos

El proceso ser la actividad de


preparar la torta en s, eso quiere
decir que el cocinero vaya
siguiendo los pasos de la receta,
agregando los ingredientes y
poniendo la torta en el horno

Procesos

En un momento dado, an no
habiendo terminado de cocinar,
se acerca la hija del cocinero
llorando porque se cort un dedo.

Procesos

Antes de ir a curarla, el cocinero


(que adems es un cientfico
computacional) anota el punto de
la receta donde estaba (se guarda
el estado el proceso)

Procesos

Podemos decir que el procesador


conmuta de un proceso a otro de
mayor prioridad

Procesos

Luego de terminar de atender a


su hijita, lee de la memoria el
estado del proceso y contina en
el mismo punto en el que lo haba
dejado

Procesos

Un proceso es una instancia de un


programa en ejecucin.
Una abstraccin del Sistema
operativo, esencial en la
multiprogramacin

Procesos: Definicin

Varias instancias del mismo


programa corriendo al mismo
tiempo son procesos diferentes,
cada uno tiene su propio
Contador de programa, variables
y espacio en la memoria

Procesos: Principios

Cada proceso tiene su propia


mquina virtual y piensa que es el
nico proceso en el sistema
En realidad el procesador conmuta
de uno a otro de manera muy
rpida

Procesos: Principios

Procesos: Principios

La velocidad a la que se ejecuta un


proceso no es siempre igual, puede
variar de una instancia a otra
En los sistemas de Tiempo Real
hay que tomar medidas

Procesos: Principios

Los Procesos deben ser creados por


el SO en algn momento.
Los SO bsicos tienen todos sus
procesos presentes todo el tiempo
Los SO grandes deben crearlos y
terminarlos en algn momento

Procesos: Creacin

Existen cuatro eventos que


provocan la creacin de procesos:
El Arranque del Sistema
Un proceso que llama a otro
Una peticin del usuario
Un trabajo por lotes

Procesos: Creacin

En el Arranque del Sistema:


Se crean los procesos en primer plano
(interactan con el usuario)
Se crean los demonios (segundo
plano) con funciones especficas

Procesos: Creacin

En los sistemas Unix-like (como


GNU/Linux) existe una llamada al
sistema denominada fork()

Procesos: Creacin

Cuando un proceso padre quiere


crear un proceso hijo ejecuta una
llamada al sistema
fork()
Crea una copia exacta del padre

Procesos: Creacin

Tan exacta que comparten el


espacio de memoria, las variables,
los registros y los archivos

Procesos: Creacin

Luego se separan, utilizando otra


llamada al sistema
execve()
El hijo reclama para s, un espacio
en la memoria, registros propios e
identificadores de archivos

Procesos: Creacin

Puede darse por


Salida normal (voluntaria)
Salida por error (voluntaria)
Error Fatal (involuntaria)
Eliminado por otro proceso
(involuntaria)

Procesos: Terminacin

La mayora de los procesos


termina de manera normal
utilizando una llamada al sistema:
UNIX y Linux: exit
Windows: ExitProcess

Procesos: Terminacin

Un error fatal puede ser tratar de


dividir por cero o hacer referencia
a una direccin de memoria que no
existe

Procesos: Terminacin

Para terminar un proceso debe


tener permisos especficos
Se utilizan tambin llamadas al
sistema:

Unix/Linux: kill
Windows: TerminateProcess

Procesos: Terminacin

En otros sistemas (no en Windows


ni en UNIX) cuando un proceso
padre termina, se eliminan todos
sus hijos

Procesos: Terminacin

En UNIX cuando se inicia el


sistema se crea un proceso que es
padre de todos:
init
A partir de l se crean todos los
dems

Procesos: Jerarqua

Como los procesos hijos de init a


su vez van creando procesos hijos,
se crea una estructura en forma de
arbol

Procesos: Jerarqua

Procesos: Jerarqua

En Windows no hay un concepto


de jerarqua de procesos
Todos los procesos son iguales

Procesos: Jerarqua

La CPU solo puede ejecutar un


proceso a la vez
Eso quiere decir que puede haber
procesos que estn esperando para
ser ejecutados y uno usando la
CPU

Procesos: Estados

Hay 3 estados bsicos


1.
2.
3.

En Ejecucin
Listo
Bloqueado

Procesos: Estados

En Ejecucin
Est utilizando la CPU en este
momento
Ningn otro proceso puede estar
ejecutndose en ese mismo momento

Procesos: Estados

Listo
El proceso est en condiciones de
utilizar la CPU en cuanto se le d
entrada
No puede hacerlo porque hay otro
proceso usando la CPU
Debe esperar a que la CPU se libere

Procesos: Estados

Bloqueado

No puede ejecutarse aunque quisiera


hasta que se cumpla determinada
condicin externa

por ejemplo: est esperando a que se


cargue un archivo de disco

Procesos: Estados

Procesos: Estados

1.

2.

3.

4.

El proceso se bloquea para recibir E/S


El planificador selecciona otro
proceso
El planificador selecciona este
proceso
La E/S ya est disponible

Procesos: Estados

1.

De en Ejecucin a Bloqueado
El SO descubre que el proceso no
puede seguir ejecutndose porque le
est faltando algn dato
El proceso se pone en pausa (pulse
una tecla para continuar)

Procesos: Transiciones

1.

De en Ejecucin a Listo
El SO cree que el proceso ya se ha
ejecutado suficiente tiempo
Guarda el estado del proceso y lo
enva a Listo para ejecutarse

Procesos: Transiciones

1.

De Listo a en Ejecucin
Vuelve a tocarle en suerte continuar
ejecutndose, desplazando al
anterior ocupante de la CPU
Retoma desde el punto en que haba
quedado

Procesos: Transiciones

1.

De Bloqueado a Listo

Cuando lo que estaba esperando


llega, el proceso vuelve a estar listo
para ejecutarse, pero debe ponerse
en la fila a esperar su turno

Procesos: Transiciones

Se los conoce como microprocesos


Son procesos dentro de otro
Varios hilos de procesamiento en
un mismo espacio de direcciones

Procesos: Hilos

Ms ligeros y fciles de crear y


destruir que los procesos
Muy tiles en sistemas con varias
CPU

Procesos: Hilos

Por ejemplo cuando estamos


escribiendo un documento largo,
el procesador de texto guarda
cada cierto tiempo el trabajo.
Eso no requiere de un proceso
nuevo, puede utilizarse un hilo

Procesos: Hilos

FELICES VACACIONES
NOS VEMOS EL 26/04
NO OLVIDEN ENVIAR POR
CORREO EL TRABAJO EL DA 24/04
pablomacon@gmail.com

You might also like