Vous êtes sur la page 1sur 60

Sistemas Operativos

2014 - II
Facultad de Ingeniera
Escuela Profesional Ingeniera de Sistemas
I ng. CI P Claros Vsquez Carlos Orlando

INTRODUCCION A LOS PROCESOS
Qu es un proceso ?
Datos y operaciones son los componentes primitivos de
un calculo. Calculo es un conjunto finito de operaciones
aplicado a un conjunto finito de datos para resolver un
problema
R1
X1
P1
R2
X2
R1
R2
R3
R4
R5
X1
X2
X3
X4
P1
P2
P3
Secuencial Concurrente
R=lectura
X=Ejecucin
P=Imprir.
Proceso:
Un programa
en ejecucin
Procesos: Ejemplos
Proceso: Concepto
Abstraccin de un programa en ejecucin.

Es la entidad mnima planificable.
(Antigua)

Es la entidad mnima de asignacin de
Recursos. (Actual).




Proceso: Otras denominaciones
PROCESO: Denominacin Genrica

J OB/TRABAJ O: Sinnimo de Proceso,
generalmente asociada a procesos tipo
BATCH.

TASK/TAREA: Sinnimo de Proceso,
generalmente asociado a Procesos del
Sistema o Procesos en Tiempo Real




Estados de un Proceso
Proceso: Transiciones
LISTOEJECUCION
El despachador selecciona al proceso para ejecucin
EJECUCION LISTO
El proceso ha ejecutado demasiado tiempo, se le ha vencido el
TimeSlice
El proceso fue interrumpido y otro proceso de mayor prioridad
ha quedado en estado LISTO. (Desalojo/Preemptive)
EJECUCION BLOQUEADO
El proceso requiere algo que necesita esperar
Quiere acceder a un recurso de E/S
Debe esperar por el resultado de un Comunicacin
BLOQUEADO LISTO
Cuando el evento que estaba esperando que ocurra ha
ocurrido.

Procesos: Otra visin
Constitucin de un Proceso
Programa de Usuario
Datos de Usuario
Pila o Stack(s)
Para llamada a procedimientos y pasaje de
parmetros
Process Control Block (contexto de Ejecucin)
Atributos que necesita el OS para controlar el
proceso.Esto Incluye:
Informacin de Identificacin
Estado del Procesador
Informacin de Control
Constitucin de un Proceso
Cambio de Contexto
Cuando la OS
intercambia procesos debe
resguardar el estado del
proceso actual y cargar el
estado del nuevo proceso.

Este cambio de
Contexto representa un
OVERHEAD, no se hace
trabajo til mientras se
conmuta.

Es dependiente del
soporte de hardware
Salvar el contexto implica resguardar el PC y
otros Registros
Actualizar el PCB del proceso en ejecucin con
su nuevo estado e informacin asociada
Colocar la entrada del PCB en la cola apropiada.
LISTO, BLOQUEADO.
Seleccionar el prximo proceso a ejecutar
Actualizar el PCB del proceso seleccionado
Restaurar el contexto de CPU del proceso
seleccionado.
Cambio de Contexto
Un cambio de contexto se debe hacer cuando el
OS ha obtenido el control de la CPU
System Call
Explicitamente el proceso ha requerido un servicio del
OS. Probablemente el proceso quede bloqueado
Trap/Fault
Se ha producido un error al ejecutar la ltima
instruccin.
Interrupcin
Un evento externo ha causado una interrupcin. El
control se ha trasferido a la ISR.
Cuando hacer el Cambio?
Cambio de modo:
De usuario a sistema (excepcin, llamada o interrupcin).
De sistema a usuario (RETI).
No hay c. de contexto: Mismo proceso en distinta fase.

Cambio contexto => Cambio de proceso.
Slo cuando proceso est en fase de sistema.
El propio proceso (P):
cambia su estado.
activa el planificador-> selecciona Q.
salva su contexto en BCP.
restaura contexto de Q del BCP-> ya est ejecutando Q.
C.Contexto vs C. de Modo
Process Control Block (PCB)
Asociado a cada proceso hay un Espacio de Direcciones

El espacio de direcciones contiene:
El programa ejecutable
Los Datos del Programa
El Stack

La Tabla de Procesos es un Vector o una lista enlazada
en Memoria

Las funciones claves de la gestin de procesos son:
Creacin de Procesos
Terminacin de Procesos
Intercambio de Procesos

Espacio de Direciones
En algunos OS un proceso puede crear uno o mas
procesos hijos (child processes) los cuales pueden crear
otros nuevos procesos.

Los procesos se pueden comunicar entre s utilizando
IPC (interprocess communications).

Cada proceso tiene asignado un identificador de
proceso (PID) que le fue asignado por el OS.

El PID es un nmero creciente no repetible de cada
proceso.
Jerarqua de Procesos
139
getty
145
getty
4519
sort
3761
sh
2019
getty
2101
getty
1
init
Jerarqua de Procesos
THREADS: Concepto
THREADS: Concepto
THREADS: Concepto
THREADS: Porque utilizarlos?
Algunos programas tienen mejor rendimiento si
utilizan threads para comunicarse entre s. (Ej:
Servidores) que hacindolo utilizando solo un flujo de
instrucciones.



En sistemas multiprocesador, los threads pueden
ejecutarse en paralelismo Real, permitiendo que un
programa pueda dividir su trabajo entre distintas
CPUs. Su rendimiento es mejor que con nico hilo que
solo utilizara una CPU a la vez.
Los threads se ejecutan independiente y
simultneamente

Comparten las instrucciones del proceso y casi todos sus
datos

Si un thread realiza un cambio en un dato de los datos
compartidos este ser percibido por los otros threads en el
mismo proceso

Debido a este comportamiento, su ejecucin puede
afectar al proceso de forma sorprendente

THREADS: Caractersticas
Varios threads pueden proporcionar concurrencia
dentro de un mismo proceso


Si dos threads comparten recursos durante su
ejecucin, deben tener cuidado de que no se interfieran
uno con el otro


Un proceso tradicional de Unix solo tiene un solo
thread de control.
THREADS: Caractersticas
Un thread (o proceso liviano) es la entidad mnima
planificable.

Consiste de:
PC
Set de Registros
Su propio Stack

Un thread comparte con los threads del mismo
proceso:
Area de Cdigo (Ej: subrutinas, procedimientos)
Area de Datos
Recursos del OS (Ej: archivos abiertos)
Constitucin de un THREAD
Constitucin de un THREAD

Mientras un thread est Bloqueado esperando un
evento, otro thread del mismo proceso puede seguir
ejecutando

La Cooperacin de mltiples threads en un mismo
proceso le da mejor rendimiento y throughput.

Las Aplicaciones que utilizan buffers en comn
obtienen mayores beneficios en la utilizacin de threads

Ventajas de los THREADs
TREADS Runtime Library
TREADS Runtime Library
Ventajas
Thread switching no
involucra al Kernel
=> Se evita un cambio
de Modo.

Se puede hacer
planificacin
Especfica de acuerdo
al mejor algoritmo

Son portables
Desventajas
La mayoria de los
System calls son
bloqueantes y el
Kernel bloquea al
proceso entero

El kernel solo puede
asignar CPU a los
procesos => no
pueden usar
eficientemente
multiprocesadores
KERNEL Threads
KERNEL Threads
Ventajas
El kernel puede
planificar
simultaneamente los
threads en distintos
procesadores

El bloqueo es a nivel de
thread.

Las Rutinas del kernel
pueden ser Multithread
Desventajas
El intercambio de
thread dentro de un
mismo proceso
involucra al kernel

Tenemos 2 cambios de
modo por cada
intercambio entre
Threads

Esto disminuye el
rendimiento
KERNEL vs USER Threads
KERNEL THREADS:
Estructuras de datos pequeas (TCB) y su propio stack.
Cuando hay un cambio entre Threads de un mismo proceso
no se necesita cambiar el contexto en forma total hacindolo
ms veloz.
El Kernel planifica en forma independiente los Threads

USER-LEVEL THREADS:
Solo necesitan un stack y un PC.
El Kernel no est involucrado en el intercambio de threads.
El Kernel solo planifica al proceso.
Cuando un Thread se bloquea por un System Call, todos los
thread quedan bloqueados.
Son mas portables
TREADS: Problemas
Planificacin de CPU

La planificacin del procesador se refiere a la
manera o tcnicas que se usan para decidir cuanto
tiempo de ejecucin y cuando se le asignan CPU a
cada proceso del sistema. Esto es crucial para el
buen funcionamiento del sistema.

Planificacin de CPU
Selecciona entre los procesos que estn
LISTOS en memoria

Las decisines de planificacin de CPU
tienen lugar cuando el proceso:
1. Pasa de EJECUCIONBLOQUEADO
2. Pasa de EJECUCIONLISTO
3. Pasa de BLOQUEADOLISTO
4. Finaliza.

Niveles de Planificacin
DE LARGO PLAZO:
Decide que trabajos (conjunto de procesos) son candidatos a
convertirse en procesos compitiendo por los recursos del
sistema.

DE MEDI ANO PLAZO:
Decide que a que procesos se le otorga memoria principal
para poder ejecutar

DE CORTO PLAZO:
Decide que proceso, de los que ya estn listos es al que le toca
ahora estar utilizar la CPU
Niveles de Planificacin
Niveles de Planificacin
Proceso 3
Proceso 4
Proceso 5
Proceso n
DISCO
Proceso 1
Proceso 2
Proceso 3
Proceso m
MEMORIA
CPU
1 2
Proceso 1
Proceso 2
Sistema
Operativo
(...)
(...)
Planificacin
de Mediano
Plazo
Planificacin
de Corto Plazo
El SWAPPING
Para ejecutar los procesos deben estar total o
parcialmente en memoria principal

An con memoria virtual, mantener muchos procesos en
memoria puede deteriorar el rendimiento del sistema

El OS puede necesitar suspender ciertos procesos
volcndo su espacio de direccionamiento a un Disco.

Esto aade 2 nuevos Estados a los proceso:
Bloqueado Suspendido
Listo Suspendido
El SWAPPING: Estados
BLOQUEADOBLOQUEADO SUSPENDIDO
El OS selecciona un proceso Bloqueado para Swappearlo
y as liberar memoria principal

BLOQUEADO SUSPENDIDO LISTO SUSPENDIDO
Cuando el evento que estaba esperando que ocurra ha
ocurrido pero an no se encuentra en memoria principal

LISTO SUSPENDIDO LISTO
Seleccionado por el Planificador de Mediano Plazo para
otorgarle memoria principal

LISTO LISTO SUSPENDIDO
Cuando no hay procesos bloqueados que puedan retirarse
de memoria.
El SWAPPING: Transiciones
El proceso IDLE: (Cualquier proceso
puede definirse como IDLE)
Que hace la CPU cuando no hay procesos en estado de
Listo para Ejecutar?

Se utiliza el Proceso IDLE.

Es el proceso de menor prioridad y solo se ejecuta
cuando no hay procesos libres para ejecutar.

Se puede utilizar para medir el Porcentaje de uso de
CPU
%USO
CPU
= 100 - %USO
IDLE
Objetivos de la Planificacin
Justicia o Imparcialidad:
Todos los procesos son tratados de la misma forma, y en algn
momento obtienen su turno de ejecucin o intervalos de tiempo
de ejecucin hasta su terminacin exitosa.

Maximizar la Produccin:
El sistema debe de finalizar el mayor numero de procesos en por
unidad de tiempo.

Minimizar el Tiempo de Respuesta:
Cada usuario o proceso debe observar que el sistema les
responde consistentemente a sus requerimientos.
Objetivos de la Planificacin

Evitar el aplazamiento indefinido:
Los procesos deben terminar en un plazo finito de tiempo.

El sistema debe ser predecible:
Ante cargas de trabajo ligeras el sistema debe responder
rpido y con cargas pesadas debe ir degradndose
paulatinamente. Otro punto de vista de esto es que si se
ejecuta el mismo proceso en cargas similares de todo el
sistema, la respuesta en todos los casos debe ser similar.
Planificacin Apropiativa
La planificacin No apropiativa (Non-Preemptive):
Una vez que el CPU se le asign al proceso, ya no se le puede
arrebatar
til sistemas procesos alta prioridad requieren atencin
inmediata, (sistemas tiempo real)
Los trabajos largos atrasan a los cortos, pero el
tratamiento es ms justo

La planificacin Apropiativa (Preemptive):
Es aquella en la cual un proceso puede ser retirado de sus
estado de Ejecucin si lo hace por si mismo o por vencimiento
de su TIMESLICE o porque un proceso de Mayor prioridad se
encuentra en estado de LISTO.

FCFS
Es muy simple, los procesos reciben su turno conforme
llegan.

La ventaja de este algoritmo es que es justo y no
provoca aplazamiento indefinido.

La desventaja es que no aprovecha ninguna
caracterstica de los procesos y puede no servir para
unproceso de tiempo real.

El tiempo promedio de respuesta puede ser muy malo
comparado con el logrado por el del trabajo ms corto
primero.
ROUND ROBIN

Tambin llamada por turno, consiste en darle a cada
proceso un timeslice.

Los procesos estn ordenados en una cola circular.

La ventaja de este algoritmo es su simplicidad, es
justo y no provoca aplazamiento indefinido.

Primero el Trabajo Mas Corto
Se requiere saber o tener una estimacin de cunto
tiempo necesita el proceso para terminar.
Si se sabe, se ejecutan primero aquellos trabajos que
necesitan menos tiempo y de esta manera se obtiene el
mejor tiempo de respuesta promedio para todos los
procesos. .

Proceso Espera desde Termina Tiempo de Espera
A 0 4 4
B 0 16 16
C 0 34 34
D 0 58 58
E 0 84 84
Tiempo promedio = (4 + 16 + 34 + 58 + 84 )/5 = 39 unidades.

Primero el Trabajo Mas Corto

T
RESP1
= (8 + 12+ 16 + 20) / 4 = 14

T
RESP2
= (4 + 8 + 12 + 20) / 4 = 11

Planificacin por Prioridades
Los procesos de mayor prioridad se ejecutan primero.

Si existen varios procesos de mayor prioridad que otros, pero
entre ellos con la misma prioridad, pueden ejecutarse estos de
acuerdo a su orden de llegada o por 'round robin'.

La ventaja de este algoritmo es que es flexible en cuanto a
permitir que ciertos procesos se ejecuten primero e, incluso, por
ms tiempo.

Su desventaja es que puede provocar aplazamiento indefinido
en los procesos de baja prioridad.

Planificacin por Prioridades
Tipos de Prioridades
PRIORIDAD DE DESPACHO:
Es la prioridad que tiene en cuenta el mdulo de
Despacho del Planificador, es decir la que se tiene en
cuenta para seleccionar el prximo proceso a ejecutar de
la cola de LISTOS.


PRIORIDAD DE EJECUCION:
Se sabe que a mayor TimeSlice mayor Prioridad ya que
el proceso es interrumpido menos frecuentemente
permitiendole terminar antes que al resto.
Planificacin de trabajos en un medio ambiente
multiprogramado
La asignacin del quntumes pequeo de tiempo. Es decir, si
estn corriendo n trabajos en forma simultanea, entonces de
obtiene una participacin igual del tiempo de corrida. Veamos
el siguiente ejemplo:
Procesos Hora de Llegada Tiempo de Corrida
A
B
C
D
E
10.0
10.2
10.4
10.5
10.8
0.3 h.
0.5 h.
0.1 h.
0.4 h.
0.1 h.
Note que el trabajo A llega a las 10 a.m. Y correr durante 0.3
horas. Sin embargo, despus de correr durante 0.2 horas, llega el
trabajo B y fue colocado en memoria. Durante el segmento de
tiempo de 10.2 hasta 10.4, se divide el procesador en tajadas
(intercambiando) entre el trabajo A y B. Por tanto aunque al
trabajo A le faltaba slo 0.1 horas por terminar, el procesador
est atendiendo los dos trabajos y por tanto le tomo 0.2 horas
completar el trabajo A.
Este comentario se ilustra en la siguiente tabla:
Procesos Tiempo
de
Evento
Tiempo
de
Corrida
% de CPU x
Trabajo
Adelanto x
Trabajo
Trabajo Tiempo

Restante
10.0 Llega el
trabajo A
A 0.3
10.2 Llega B y
Termina A
1 1 0.2 A
B
0.1
0.5
10.4 Llega C y
Termina A
2 1/2 0.1 A
B
C

0.4
0.1
10.5 Llega D 2 1/2 0.05 B
C
D
0.35
0.05
0.4
10.65 Termina C 3 1/3 0.05 B
C
D
0.3

0.35
10.8 Llega E 2 1/2 0.075 B
D
E
0.225
0.275
0.1
11.1 Termina E 2 1/3 0.1 B
D
E
0.125
0.175

11.35 Termina B 2 1/2 0.125 B
D

0.05
11.4 Termina D 1 1 0.05 D
Procesos Tiempo
Corrida
Hora
Inicio
Hora
Fin
Tiempo
Retorno
A
B
C
D
E
0.3
0.5
0.1
0.4
0.1
10.0
10.2
10.4
10.5
10.8
10.4
11.35
10.65
11.4
11.1
0.4
1.15
0.25
0.9
0.3
Total: 3.00
Tiempo de Retorno T=0.6
Resumen:

Admon. tasa de respuesta ms alta
(HRN)
- BRINCH HANSEN (Br71)
- Corrige algunas deficiencias del SJF:
retraso excesivo de trabajos largos
favoritismo excesivo de trabajos cortos
- Prioridad trabajo en funcin de:
tiempo de servicio
tiempo de espera del trabajo
- Calculada a partir de:

prioridad = (tiempo espera) + (tiempo servicio)
( tiempo servicio)

- Observacin: (tiempo espera) + (tiempo servicio) es el tiempo
de respuesta del sistema para el trabajo, si ste se inicia de
inmediato
Impacto en el Rendimiento
Ts = Tiempo de Save
Tr = Tiempo de Restore
Tp= Tiempo de Planificacin
Impacto en el Rendimiento
W
UTIL
= Trabajo Util
W
TOTAL
= Trabajo Total = W
UTIL
+ (n * )

n = Nmero de cambios de Contexto
= Tiempo promedio de Cambios de Contexto
= T
SAVE
+ T
PLANIF
+ T
REST
T
PLANIF
+ 2* T
SAVE/REST
= W
UTIL
/W
TOTAL

= W
UTIL
/W
TOTAL
= W
UTIL
.
W
UTIL
+ n * (T
PLANIF
+ 2* T
SAVE/REST
)

TimeSlice/Quantum
TimeSlice Grande:
Disminuyen las interrupciones provocando tiempos de
respuesta mas largos.


TimeSlice Pequeo:
Se producen muchas interrupciones, esto implica
cambios de contexto lo que significa una reduccin en el
rendimiento. En la frmula de rendimiento es n.



= W
UTIL
.
W
UTIL
+ n * (T
PLANIF
+ 2* T
SAVE/REST
)

Vous aimerez peut-être aussi