Вы находитесь на странице: 1из 42

Procesos e Hilos

Yesenia Calvo. Catherine Pravia. Jose Rodriguez. Aldo Sanchez. Alfredo Segura.
1

Procesos
Instancia

de un programa en ejecucin, requiriendo para ello unos recursos. una ejecucin concreta de un programa, con un camino determinado y un valor de sus variables determinados.

Es

Procesos
Por

ejemplo si lanzas Microsoft Word y VFP, entonces tienes dos procesos separados que estn corriendo al mismo tiempo aunque slo tengas una CPU. El sistema operativo asigna tiempo a cada uno de los procesos y pasa de uno a otro segn le interesa.

Procesos
Cada

proceso tiene un hilo principal, pero puede crear muchos hilos privados para su propio uso.

Grupos de procesos
Los procesos forman grupos de procesos con alguna caracterstica comn:
Conjunto

padre. Conjunto de procesos creados a partir de un Shell. Conjunto de procesos dependientes de un terminal.

de procesos creados por el mismo

Estados de un proceso
Nuevo:

Se acaba de crear. En ejecucin: La CPU est ejecutando instrucciones del proceso. Listo: todo lo necesario para ejecutarse excepto el procesador. Bloqueado: no se puede ejecutar, espera algn evento determinado o se complete una operacin de E/S (entrada / salida).

Saliente:

Se ha quitado del grupo de procesos ejecutables porque ha sido abortado por alguna razn puede incluir la posibilidad suspender y reanudar procesos la carga temporalmente de

Se

Aliviar

Depuracin

Nuevo

Listo. Se intenta que no haya demasiados procesos activos. Listo Ejecutando. Se selecciona un proceso Listo y se le asigna la CPU. Ejecutando Saliente. El proceso analiza por cualquier motivo.

Ejecutando Listo. Acaba el quantum o en algunos SSOO se desbloquea un proceso prioritario. Ejecutando Bloqueado. Solicita algo por lo que debe esperar. Bloqueado Listo. Sucede lo que estaba esperando. Listo/Bloqueado Saliente. No se muestra. A veces un padre puede terminar la ejecucin de un hijo alguna razn.

10

Control de procesos
Modos de ejecucin: Modo usuario Modo ncleo (root, protegido, supervisor...) El proceso est compuesto por la parte usuario (lo que el usuario implementa) y la parte de ncleo (las rutinas del ncleo que utiliza) No es lo mismo un cambio de proceso que un cambio de modo

11

Mecanismo de cambio de modo.


El

PC pasa a apuntar a la rutina de tratamiento de la excepcin. de modo usuario a modo ncleo.

Cambia El

SO guarda el contexto del proceso interrumpido en su BCP (bloque del control del proceso).

12

Mecanismo de cambio de proceso.


Salvamos

el estado del procesador (PC, registros...) campos BCP (estado, contabilidad, auditora...) el BCP a la cola apropiada (Listo, bloqueado...)

Actualizar

Mover

Seleccin

del nuevo proceso a ejecutar.

13

Actualizar

el BCP del proceso elegido (estado Ejecutando...) estructuras de datos de gestin de

Actualizar

memoria

Restaurar

el estado del procesador cuando se interrumpi el nuevo proceso

14

Tipos de comunicacin
Sncrona

o asncrona. Persistente (persisntent) o momentnea (transient). Directa o Indirecta. Simtrica o Asimtrica. Con uso de buffers explcito o automtico. Envo por copia el mensaje o por referencia. Mensajes de tamao fijo o variable.

15

Sncrona
Quien

Asncrona
Quien

enva permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otra tarea.

enva contina con su ejecucin inmediatamente despus de enviar el mensaje al receptor.

16

Persistente
El

Momentnea
El

receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicacin, el mensaje se almacena tanto tiempo.

mensaje se descarta si el receptor no est operativo al tiempo que se realiza la comunicacin. Por lo tanto no ser entregado.

17

Directa
Las

Indirecta
La

primitivas enviar y recibir explicitan el nombre del proceso con el que se comunican.

comunicacin indirecta se implementa mediante puertos, en alguna bibliografa se lo denomina buzones.

18

Simtrica
Todos

Asimtrica
Un

los procesos pueden enviar o recibir. Tambin llamada bidireccional para el caso de dos procesos.

proceso puede enviar, los dems procesos solo reciben. Tambin llamada unidireccional.

19

Hilos
Un

hilo de ejecucin, en sistemas operativos, es una caracterstica que permite a una aplicacin realizar varias tareas concurrentemente. un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado inmediatamente.

Cuando

20

Hilos
El

proceso sigue en ejecucin mientras al menos uno de sus hilos de ejecucin siga activo. el proceso finaliza, todos sus hilos de ejecucin tambin han terminado. Asimismo en el momento en el que todos los hilos de ejecucin finalizan, el proceso no existe ms y todos sus recursos son liberados.

Cuando

21

Los hilos se utilizan para:


Descomponer

la aplicacin en mltiples subprocesos secuenciales paralelos. solapar E/S y cmputo dentro de un mismo proceso. mltiples CPUs se puede conseguir verdadero paralelismo.

Permiten

Con

Son

ms rpidos de crear y destruir.

22

Funcin de los hilos


Al

igual que los procesos, los hilos poseen un estado de ejecucin y pueden sincronizarse entre ellos para evitar problemas de compartimiento de recursos.

23

Estados de un hilo
Los principales estados de los hilos son:
Ejecucin Listo Bloqueado.

24

Cambios de estados
Creacin
Cuando

Bloqueo

se crea un proceso se crea un hilo para ese proceso. hilo puede crear otros hilos dentro del mismo proceso.

Cuando un hilo necesita esperar por un suceso, se bloquea. El procesador podr pasar a ejecutar otro hilo que est en la cola de Listos mientras el anterior permanece bloqueado.

Este

25

Desbloqueo
Cuando

Terminacin
Cuando

el suceso por el que el hilo se bloque se produce, el mismo pasa a la cola de Listos.

un hilo finaliza se liberan tanto su contexto como sus pilas.

26

Caractersticas de Hilos
No

existe proteccin (ni se necesita) entre los hilos de un mismo proceso. el rendimiento. ms eficiente.

Mejoran

Comunicacin Soportados

por el S.O (modo ncleo) o por bibliotecas (modo usuario)

27

Hilos en modo usuario


Ventajas
El

ncleo no sabe que existen Tabla de subprocesos privada para cambios de contexto Cambio de contexto mucho ms rpido entre hilos Cada proceso puede tener su algoritmo de planificacin Menos tiempo para terminar un hilo

28

Inconvenientes
Llamadas

bloqueantes al sistema.

Fallos

de pgina.
que ceder la CPU entre ellos.

Tienen

Precisamente

queremos hilos en procesos que tienen mucha E/S para obtener paralelismo, es decir, que se estn bloqueando muy frecuentemente.

29

Hilos en modo de ncleo


Ventajas
El

ncleo mantiene la tabla de hilos, que es un subconjunto de la de procesos

Las

llamadas bloqueantes no necesitan funciones especiales


fallos de pgina no suponen un problema

Los Al

bloquearse un hilo, el ncleo puede conmutar a otro hilo de otro proceso

30

Inconvenientes
Las

llamadas bloqueantes son llamadas al sistema. creacin y destruccin de procesos es ms costoso.

La

31

Planificadores
Planificacin apropiativa
El

Planificacin no apropiativa
El

proceso puede ser interrumpido por el S.O. para entregar la CPU a otro proceso

proceso se ejecuta hasta que cede el control al S.O.

32

Existen varios tipos de planificadores

33

FCFS (Primero en llegar, primero en ser servido)


Se

le asigna la CPU al primer proceso que la requiere FIFO (first in first out)
no apropiativa.

Es

34

SJF (Primero el trabajo ms corto)


Para

procesos por lotes (o de duracin conocida) que SJF sea ptimo es necesario disponer de todos los procesos de forma simultnea descrito es no apropiativo. Para hacerlo apropiativo tendra que ser primero el que tenga menor tiempo restante (SRTF)

Para

El

35

Planificacin Round Robin o circular


A

cada proceso se le asigna un quantum de tiempo antes de consumir el quantum

Termina Queda

bloqueado (E/S) su tiempo

Consume

36

Planificacin por prioridad


Normalmente

una prioridad

los procesos tienen asociada

Se

ejecuta el proceso con mayor prioridad


de prioridades esttica o

Asignacin

dinmica

Puede

ser apropiativa o no

37

Planificacin de mltiples niveles con realimentacin


Varias

colas con distintos niveles de prioridad cola tiene su propio algoritmo de planificacin planificacin entre las distintas

Cada

Tambin

colas

38

Planificador a corto plazo (PCP)


Selecciona

de entre todos los procesos listos en memoria cul pasar a la CPU

Planificador a medio plazo (PMP)


Selecciona

qu procesos pasarn de memoria a disco (se suspendern) y viceversa

39

Planificador a largo plazo (PLP)


Selecciona

qu trabajos por lotes dejar pasar a la cola de listos en memoria

40

Diferencia entre proceso e hilo


Dentro

de un proceso puede haber varios hilos de ejecucin (varios threads). Eso quiere decir que un proceso podra estar haciendo varias cosas "a la vez". Los hilos dentro de un proceso comparten todos la misma memoria.

41

Un

proceso es, por tanto, ms costoso de lanzar, ya que se necesita crear una copia de toda la memoria de nuestro programa. Los hilos son ms ligeros. cuanto a complejidad, en los hilos, al compartir la memoria y los recursos, es casi obligado el uso de mutex o semforos, as que su programacin suele ser ms complicada y se necesita ser ms cuidadoso. Un proceso, en el momento de lanzarlo, se hace independiente del nuestro.

En

42