Subido por Adriel Eduardo Palestino Hernández

Hilos y procesos

Anuncio
Hilos y procesos
SISTEMAS OPERATIVOS
CARLOS FAÚNDEZ
1
Procesos
• Un proceso es un programa en
ejecución junto con su ambiente de
trabajo.
•Ambiente de trabajo:
• Valores de los registros del CPU asociados al proceso.
• Memoria asignada.
• Otros recursos asignados al proceso, ejemplo: archivos
abiertos, comunicación, etc.
CARLOS FAÚNDEZ
2
Procesos
Registros del CPU: Cambian de valor durante la ejecución del programa.
• Contador de programa ($PC).
• Puntero de la pila ($sp).
• Marco de la pila ($fp).
• Otros, dependiendo de la arquitectura de CPU.
Estos valores constituyen el contexto del proceso.
• Cambio de contexto.
• El S.O lleva registro del contexto de cada proceso en una tabla llamada
tabla de procesos.
CARLOS FAÚNDEZ
3
Procesos
Llamadas al sistema
• Los procesos invocan al S.O mediante llamadas al sistema (system call).
• Una llamada al sistema es similar a una llamada a un procedimiento,
pero el código que se ejecuta no está en el programa, sino dentro del
sistema operativo.
• El sistema operativo y los programas de usuario se ejecutan en niveles
diferentes desde el punto de vista del CPU.
• La transición de un nivel a otro consume ciclo de CPU: es mucho más
lenta una llamada al sistema que una llamada a un procedimiento
dentro del mismo programa.
CARLOS FAÚNDEZ
4
Procesos
Estado de los procesos
CARLOS FAÚNDEZ
5
Hilos
• Los hilos en ejecución son procesos ligeros o livianos.
• Subprocesos de un proceso.
• La memoria y los recursos son asignados a los procesos.
• Todos los hilos de un proceso comparten la memoria y los recursos
asignados a dicho proceso.
• Cada hilo tiene un contexto diferente.
• Puede decirse que el recurso CPU no es compartido.
• Cada hilo tiene una pila diferente.
CARLOS FAÚNDEZ
6
Hilos
Tipos de hilos
• Hilos manejados por el kernel.
• Hilos manejados a nivel del usuario (green threads).
Hilos manejados por el kernel
• El sistema operativo conoce la existencia de los hilos.
• El planificador no selecciona procesos para ser ejecutados sino hilos.
• El hilo seleccionado puede pertenecer al mismo proceso o a un proceso
diferente.
CARLOS FAÚNDEZ
7
Hilos
Hilos manejados a nivel del usuario
• El S.O no conoce la existencia de los hilos.
• Existe un único hilo por proceso.
• Hay un paquete de hilos que corre en el espacio del usuario.
• Consiste de una biblioteca de funciones para:
• Crear y destruir hilos.
• Planificación de los hilos.
• En C, la librería es pthread.h y tiene las siguientes funciones:
• pthread_t: ID del hilo.
• pthread_create: Asociar una función al hilo.
• pthread_join: Encolar el hilo para su ejecución.
CARLOS FAÚNDEZ
8
Hilos
Hilos del kernel
Cambio de contexto Lento
Al bloquearse un
Bloqueos
hilo el proceso no
tiene que bloquearse
Planificación
Expropiativa
CARLOS FAÚNDEZ
Hilos de usuario
Rápido
Al bloquearse un
hilo el proceso
debe bloquearse
No expropiativa
9
Procesos vs hilo
CARLOS FAÚNDEZ
10
Proceso vs hilo
Memoria compartida
• Varios procesos pueden acceder a bloques
de memoria compartida utilizando servicios
del sistema.
• Los hilos de un proceso puede acceder a
datos comunes.
CARLOS FAÚNDEZ
11
Descargar