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