El documento describe los conceptos de procesos e hilos. Explica que los procesos son programas en ejecución gestionados por el sistema operativo y que pueden estar en diferentes estados como ejecución, bloqueado o listo. También describe los cinco estados típicos de un proceso. Luego, explica que los hilos permiten la ejecución concurrente de tareas dentro de un proceso y los desafíos de la programación concurrente. Por último, presenta dos problemas clásicos de comunicación entre procesos: el problema de la cena de los fil
2. Procesos e hilo
Concepto procesos
• Los procesos: son programas en ejecución los cuales están
gestionado por el OS. El sistema operativo mantiene la
información de cada proceso, tales como sus características y
los recursos asignados, memoria, archivos abiertos y puertos
de combinación.
3.
4. Procesos e hilo
Estado de un proceso
Un proceso consta de dos modelos de estado, ya sea
estado de ejecución o no. Al crearse un nuevo proceso, se
coloca en estado de no ejecución. Sin embargo en algún
momento, el proceso en ejecución puede pasar a estado
de no ejecución, mientras que otro proceso se
seleccionará de la lista de procesos listos a ejecutar y se
pondrá en estado de ejecución.
5. Procesos e hilo
Modelo de cinco estado
➢ Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema
operativo. En general los procesos que se encuentran en este estado todavía no
fueron cargados en la memoria principal.
➢ Ejecución: es un proceso que está haciendo uso del procesador.
➢ Bloqueado: No puede ejecutarse hasta que un evento externo sea llevado a cabo.
➢ Listo: ha dejado disponible al procesador para que otro proceso pueda ocuparlo.
➢ Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea
porque terminó o por algún fallo, como un error de protección, aritmético, etc.
6. Procesos e hilo
Procesos
• Los procesos son creados y destruidos por el sistema operativo, así como
también este se debe hacer cargo de la comunicación entre procesos.
• El mecanismo por el cual un proceso crea otro proceso se denomina
bifurcación.
• El sistema operativo es el responsable de determinar las pautas de
intercalado y asignación de recursos a cada proceso.
7. Procesos e hilo
Procesos
• Es muy importante destacar la importancia de
mantener varias colas de procesos listos
cuando existe un esquema con diferentes
niveles de prioridad. Cada cola representa un
nivel de prioridad distinto y ayuda a
determinar qué proceso es más conveniente
ejecutar a continuación.
8.
9. Procesos e hilo
Hilio
• Hilo: Un hilo en un sistema operativo permite que una
aplicación realice múltiples tareas concurrentemente. Los hilos
comparten recursos como el espacio de memoria, los archivos
abiertos y la situación de autentificación, lo que simplifica el
diseño de una aplicación que necesita realizar varias funciones
simultáneamente.
10. Procesos e hilo
Hilo Ejemplo
• Un servidor web que funcione con un solo hilo de ejecución solo
podría atender a un cliente a la vez, lo que resultaría en largos tiempos
de espera para los clientes. Una solución sería crear un nuevo proceso
para cada solicitud, pero esto consume tiempo y recursos.
• En cambio, se propone utilizar hilos en lugar de procesos. Esto permite
que un proceso único utilice múltiples hilos, donde uno de ellos se
encarga de escuchar las solicitudes y, cuando llega una nueva
solicitud, se crea otro hilo para procesarla. Esta estrategia es más
eficiente, ya que los hilos comparten recursos y no requiere la creación
de procesos adicionales.
11.
12. Procesos e hilo
Funcionalidad de los hilio
• Al igual que los procesos, los hilos tienen un estado de ejecución
y pueden sincronizarse para evitar problemas de recursos
compartidos. Cada hilo tiene una tarea específica para
aumentar la eficiencia del procesador.
• Todos los hilos comparten el mismo espacio de direcciones y
otros recursos, como archivos abiertos. Las modificaciones
realizadas por un hilo pueden afectar a los demás hilos del
mismo proceso, por lo que es necesario sincronizar su actividad
para evitar interferencias o corrupción de datos.
13. Procesos e hilo
Tareas e hilos.
Unidad mínima de asignación: tarea.
Unidad mínima de expedición: hilo.
• Este se habla que dos hilos de una misma tarea, conocidos como hilos pares,
comparten el segmento de código, el segmento de datos y un espacio de pila,
es decir, los recursos asignados a la tarea.
• Se compara el control de múltiples hilos con el control de múltiples procesos.
En el caso de los procesos, cada uno opera de manera independiente, con su
propio contador de programa, registro de pila y espacio de direcciones. Esta
organización es útil cuando los trabajos realizados por los procesos no están
relacionados entre sí.
14.
15. Procesos e hilo
Comunicación entre procesos
• La comunicación entre procesos es una función esencial de los sistemas
operativos, que permite que los procesos se comuniquen y sincronicen
entre sí a través de un sistema de paso de mensajes de bajo nivel.
• Las técnicas de IPC están divididas dentro de métodos para: paso de
mensajes, sincronización, memoria compartida y llamadas de
procedimientos remotos (RPC).
16. Procesos e hilo
Comunicación entre procesos
• En un sistema, algunos procesos pueden
ejecutarse de forma independiente,
mientras que otros requieren cooperación y
comunicación con otros procesos para
completar sus tareas. Esto puede ser
motivado por la competencia por recursos
compartidos o la necesidad de ejecución
sincronizada para lograr una tarea
específica.
17.
18. Procesos e hilo
Programación concurrente
• La programación concurrente se refiere a las técnicas de
programación utilizadas para expresar el paralelismo entre tareas y
resolver los problemas de comunicación y sincronización entre
procesos.
• El principal desafío de la programación concurrente radica en el
hecho de que no se sabe en qué orden se ejecutarán los
programas, especialmente aquellos que se comunican entre sí. Por
lo tanto, es crucial tomar precauciones para garantizar que el
orden de ejecución no afecte el resultado de los programas.
19. Procesos e hilo
Problemas clásicos de IPC
El problema de la cena de los filósofos
En 1965 Dijkstra planteó y resolvió un problema de
sincronización llamado el problema de la cena de los filósofos,
que se puede enunciar como sigue. Cinco filósofos se sientan a
la mesa, cada uno con un plato de espaghetti. El espaghetti es
tan escurridizo que un filósofo necesita dos tenedores para
comerlo. Entre cada dos platos hay un tenedor. En imagen se
muestra la mesa.
Los filósofos se disponen a comer;
La vida de un filósofo consta de periodos alternos de comer y pensar. Cuando un filósofo
tiene hambre, intenta obtener un tenedor para su mano derecha, y otro para su mano
izquierda, cogiendo uno a la vez y en cualquier orden. Si logra obtener los dos tenedores,
come un rato y después deja los tenedores y continúa pensando. La pregunta clave es: puede
el lector escribir un programa para cada filósofo que permita comer equitativamente a los
filósofos y no se interbloquee?
20. Procesos e hilo
Problemas clásicos de IPC
❖ El problema de los lectores y los escritores
El problema de la cena de los filósofos es útil para modelar procesos que
compiten por el acceso exclusivo a un número limitado de recursos, como
una unidad de cinta u otro dispositivo de E/S. Otro problema famoso es el
de los lectores y escritores (Courtois et al., 1971), que modela el acceso a
una base de datos. Supóngase una base de datos, con muchos procesos que
compiten por leer y escribir en ella. Se puede permitir que varios procesos
lean de la base de datos al mismo tiempo, pero si uno de los procesos está
escribiendo (es decir, modificando) la base de datos, ninguno de los demás
debería tener acceso a ésta, ni siquiera los lectores.