You are on page 1of 56

SISTEMAS OPERATIVOS

Ing. Nancy Magaly Loja


2015

GESTIN DE PROCESOS

PROCESOS
INTRODUCCIN
Los sistemas de hoy en da permiten cargar varios
programas en la memoria y ejecutarlos de manera
concurrente.
La

ocupacin principal de los sistemas operativos


es la ejecucin de los programas de usuario, pero
tambin necesitan encargarse de tareas del sistema.

PROCESOS
Por

lo tanto un sistema operativo es una


coleccin de procesos (trabajo) del sistema
ejecutando cdigo del sistema y procesos de
usuario ejecutando cdigo de usuario.

PROCESOS
CONCEPTO
Los

trminos trabajo y proceso se utilizan


prcticamente de forma intercambiable.
Un proceso es una entidad activa es un programa
en ejecucin.
Un programa por s solo no es un proceso, un
programa es una entidad pasiva.

PROCESOS
CONCEPTO
Un

proceso adems del cdigo incluye parmetros


como; el contador del programa, la pila, variables
entre otros.

PROCESOS
ESTADO DE UN PROCESO

PROCESOS
BLOQUE DE CONTROL DE PROCESO

GESTIN DE PROCESOS
HEBRAS
Generalmente tenemos un proceso con una
sola hebra de ejecucin.
Ejm. Un procesador de textos se ejecuta en
una sola hebra por lo tanto no se puede
escribir caracteres y pasar el corrector
ortogrfico dentro del mismo proceso.

GESTIN DE PROCESOS
HEBRAS
Los SO actuales permiten el uso de varias
hebras (hilos).

PROCESOS
COLAS DE PLANIFICACIN
Colas

de trabajos
Colas de procesos listos o preparados
Colas de dispositivos

Colas de Planificacin

Diagrama de Colas

PLANIFICADORES
Los Planificadores son mdulos de
software encargados de determinar el
orden en que los procesos sern
ejecutados.
S.O debe seleccionar los procesos de las
distintas colas.

TIPOS DE PLANIFICADORES
1) Planificador a largo plazo
2) Planificador a mediano plazo
3) Planificador a corto plazo

PLANIFICADOR A LARGO PLAZO


Planificador a Largo Plazo (de trabajos):
-Seleccin

de trabajos a cargar en memoria principal.

Invocado
Puede

con poca frecuencia (segundos o minutos).

ser (ms) lento.

Controla

el grado de multiprogramacin en el

sistema
-Mayor

cantidad de tiempo para decidir

PLANIFICADOR A LARGO PLAZO


Seleccin

cuidadosa de procesos
Limitados por E/S:
Cola procesos listos vaca
Planificador a corto plazo poco trabajo.
Limitados por CPU:
Cola de E/S casi siempre vaca
Dispositivos ociosos
Balanceo del sistema

PLANIFICADOR A CORTO PLAZO

Seleccin

del proceso listo o preparado que


ser ejecutado a continuacin.

Invocado
muy
frecuentemente
(milisegundos).
Debe ser rpido o se desperdicia la CPU

PLANIFICADOR A MEDIANO
PLAZO
Traslado

de un proceso en memoria
principal
a
disco
(intercambio
o
swapping). Posteriormente volver a
memoria principal.
Reduce la contienda por el uso de la
CPU.
En
ocasiones
necesario
ante
los
requisitos de memoria principal.
UNIX no PLP
Tiempo compartido.

PLANIFICADOR A MEDIANO
PLAZO

Conmutacin Contexto
Cambio

de la CPU de un proceso a otro.


Requiere conservar el estado del proceso anterior
y cargar el estado guardado del nuevo proceso.
El contexto se almacena en BCP (valor de
registros, estado, infor administracin memoria)
La CC incluye trabajo extra; puede evitarse con
hilos.
Velocidad varia de mquina a mquina (HW)

Cambio de Contexto

Operaciones sobre Procesos


Procesos

ejecutan de manera concurrente y son creados


y eliminados de forma dinmica.
1) Creacin de procesos:
Un proceso puede crear varios procesos nuevos; a travs
de una llamada al sistema.
Padre e Hijos rbol de procesos.
Recursos para un proceso SW y HW
Recursos asignados por el S.O o el padre los debe
compartir.

CREACIN DE PROCESOS
Analoga

CREACIN DE PROCESOS

CREACIN DE PROCESOS
Datos

de inicializacin puede pasarse del padre al


hijo. Ejm. Nombres de archivos, dispositivos E/S.
Posibilidades Trminos Ejecucin:
1) Padre continua ejecutndose concurrentemente con
hijos.
2) Padre espera hasta que alguno o todos sus hijos hayan
terminado.

CREACIN DE PROCESOS
Posibilidades

Trminos del Espacio de Direcciones


1) El hijo es un duplicado del padre
2) Se carga un programa en el hijo
Ejm. UNIX
- Proceso nuevo fork(), duplicado del padre
- Cambia el id.
- execlp() se utiliza luego del fork(), para reemplazar el
espacio de memoria de un proceso con un programa
nuevo.
- wait()

CREACIN DE PROCESOS
EJEMPLOS

Windows NT: soporta ambos modelos


VMS: Carga un programa nuevo
UNIX: Duplicado de procesos

ELIMINACIN DE PROCESOS
El

proceso termina cuando ejecuta su ultima


proposicin y pide al sistema operativo que lo elimine
con (exit).
Devuelve datos de salida desde el hijo al padre (va
wait).
Los recursos del proceso son liberados por el S.O.
Memoria fsica y virtual
Archivos abiertos
Buffers de E/S

ELIMINACIN DE PROCESOS
Padres

pueden terminar la ejecucin de los


procesos hijos (abort):
El hijo ha excedido los recursos que se le
asignaron.
Las tareas asignadas a los hijos ya no son
necesarias.
El padre esta saliendo

Terminacin en cascada de todos sus hijos.


(VMS)

ELIMINACIN DE PROCESOS
EJEMPLO
UNIX
Podemos terminar un proceso (exit)
Padre puede esperar al hijo (wait)
Si termina el proceso padre los hijos son
adoptados por el init.

COMUNICACIN
INTERPROCESOS
Los

procesos concurrentes pueden ser:


Independientes: no puede afectar ni ser
afectado por la ejecucin de otro proceso
(no comparte datos).
Cooperativos: puede afectar y ser afectado
por la ejecucin de otro proceso (comparte
datos).

PROCESOS COOPERATIVOS
Ventajas de la cooperacin de procesos.
Informacin compartida
Aceleracin de los clculos (varios canales
o CPUs). Descomponer subtareas
Modularidad
Conveniencia (varias tareas en paralelo).

COMUNICACIN ENTRE
PROCESOS (IPC)
Mecanismos

de comunicacin interprocesos

(IPC).
1) Memoria Compartida
2) Paso de mensajes

COMUNICACIN ENTRE
PROCESOS (IPC)
1) Memoria Compartida:
-regin de memoria
-intercambiar
informacin
leyendo
y
escribiendo en la zona compartida.
-La memoria compartida es ms rpida que el
paso de msg

SSTEMAS DE MEMORIA
COMPARTIDA
Se establece una regin de memoria
compartida.
Dos o ms procesos eliminen la restriccin de
proteccin de memoria.

SITEMAS DE MEMORIA
COMPARTIDA

PROCESOS COOPERATIVOS

SISTEMAS DE MEMORIA
COMPARTIDA

COMUNICACIN ENTRE
PROCESOS (IPC)
2) Paso de mensajes
-Intercambio de msg. Entre los procesos.
-Se implementa mediante llamadas al sistema
y requiere intervencin del kernel.

SISTEMAS DE PASO DE
MENSAJES
El

S.O. proporciona los medios para que los


procesos cooperativos se comuniquen entre
s.
til en Sistemas Distribuidos.
Ejm chat

SISTEMA DE PASOS DE
MENSAJES (IPC)
La comunicacin dos operaciones:
send(message)
receive(message)

SISTEMA DE PASOS DE
MENSAJES (IPC)
Si

P y Q desean comunicarse, ellos tienen


que:
1. Establecer un (link) enlace de
comunicacin entre ellos
2. Intercambiar mensajes va send/receive

SISTEMA DE PASOS DE
MENSAJES (IPC)
Para

establecer el (link) enlace de


comunicacin, puede ser
1. fsico (ejemplo, memoria, bus en
hardware o una red)
2. lgico

SISTEMA DE PASOS DE
MENSAJES (IPC)
Mtodos para implementar lgicamente un
enlace.
Comunicacin directa o indirecta
Comunicacin simtrica o asimtrica
Almacenamiento en bfer explcito o
automtico.

COMUNICACIN DIRECTA
Comunicacin Directa
Los procesos deben nombrase uno a otro.
send (P, mensaje) enva mensaje al
proceso P
receive(Q, mensaje) recibe un mensaje
del proceso Q

COMUNICACIN DIRECTA
Comunicacin

simtrica: el emisor y el
receptor se deben de nombrar.
Comunicacin asimtrica: solo el emisor
nombra al receptor.
send (P, mensaje) enva mensaje al proceso P
receive(id, mensaje) recibe un mensaje de
cualquier proceso

COMUNICACIN INDIRECTA
Los

mensajes se envan y se reciben de


buzones (mailboxes) o puertos.
Cada buzn tiene un nico id.
Los procesos solo pueden comunicarse si
comparten un buzn.

COMUNICACIN INDIRECTA
send (A, mensaje) enva mensaje al buzn A
receive(A, mensaje) recibe un mensaje del
buzn A

COMUNICACIN INDIRECTA
Operaciones
Crear un nuevo buzn
Enviar y recibir mensajes a travs del
buzn
Eliminar el buzn

SINCRONIZACIN
La

comunicacin tiene lugar mediante


send() y receive().
Existen diferentes opciones de diseo para
implementar cada primitiva.
El paso de mensajes puede ser: Sncrono
(bloqueo) o Asncrono (sin bloqueo)

SINCRONIZACIN
Envo

con bloqueo: el emisor se bloquea


hasta q el msg es recibido por el receptor o
por el buzn.
Envo sin bloqueo: el emisor enva el mgs
y continua su operacin.

SINCRONIZACIN
Recepcin

con bloqueo: el receptor se


bloquea hasta que haya un mensaje
disponible.
Recepcin sin bloqueo: el receptor
recupera un mensaje vlido, o bien su valor
nulo.

USO DE BUFFERS
Los

mensajes residen en una cola temporal


Capacidad cero: la cola tiene una longitud
mxima de 0.
El enlace no puede tener mgs esperando en
l.
El emisor debe bloquearse hasta que el
receptor tome el msg.

USO DE BUFFERS
Capacidad

limitada:
La cola tiene
longitud finita igual a n.
Capacidad finita
Si el enlace esta lleno el emisor debe
bloquearse hasta que haya espacio en la
cola.

USO DE BUFFERS
Capacidad

ilimitada: Longitud infinita

en teora.
El emisor nunca se bloquea