Está en la página 1de 5

Presentation.

ISMAEL ALCÁNTARA

2024-0301

Fundamento Del Computador

Resumen del Cap #2 PROCESOS E HILOS

Kelvin Albuez Blanco

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.
Si existe un esquema con diferentes niveles de prioridad de
procesos es conveniente mantener varias colas de procesos
listos, una para cada nivel de prioridad, lo que ayuda a
determinar cuál es el proceso que más conviene ejecutar a
continuación.
La sincronización explícita entre procesos es un caso particular
del estado "bloqueado". En este caso, el suceso que permite
desbloquear un proceso no es una operación de entrada/salida,
sino una señal generada a propósito por el programador desde
otro proceso.

Hilos.
Un hilo en un sistema operativo es la característica que permite a
una aplicación realizar varias tareas a la vez concurrentemente,
los distintos hilos de ejecución comparten una serie de recursos
tales como el espacio de memoria, los archivos abiertos,
situación de autentificación. Esta acción permite simplificar el
diseño de una aplicación que debe llevar a cabo distintas
funciones simultáneamente.
Los hilos son básicamente una tarea que puede ser ejecutada
en paralelo con otra tarea; teniendo en cuenta lo que es propio
de cada hilo es el contador de programa, la pila de ejecución y el
estado de la CPU (incluyendo el valor de los registros).
En muchos de los sistemas operativos que dan facilidades a los
hilos, es más rápido cambiar de un hilo a otro dentro del mismo
proceso, que cambiar de un proceso a otro. Este fenómeno se
debe a que los hilos comparten datos y espacios de direcciones,
mientras que los procesos, al ser independientes, no lo hacen.
Los hilos presentan estados, los principales de ellos son:
Ejecución, Listo y Bloqueado. No tiene sentido asociar estados de
suspensión de hilos ya que es un concepto de proceso. En todo
caso, si un proceso está expulsado de la memoria principal (ram),
todos sus hilos deberán estarlo ya que todos comparten el
espacio de direcciones del proceso.

Comunicación entre procesos.


La comunicación entre procesos es una función básica de los
sistemas operativos que provee un mecanismo que permite a los
procesos comunicarse y sincronizarse entre sí, normalmente a
través de un sistema de bajo nivel de paso de mensajes que
ofrece la red subyacente.
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).

En un sistema, los procesos pueden ejecutarse


independientemente o cooperando entre sí. Los intérpretes
de comandos son ejemplos típicos de procesos que no
precisan la cooperación de otros para realizar sus funciones.
En cambio, los procesos que sí cooperan necesitan
comunicarse entre sí para poder completar sus tareas.
La comunicación entre procesos puede estar motivada por la
competencia o el uso de recursos compartidos o porque varios
procesos deban ejecutarse sincronizadamente para completar
una tarea.
Programación Concurrente.
Se conoce por programación concurrente a la rama de la
informática que trata de las técnicas de programación que se
usan para expresar el paralelismo entre tareas y para resolver los
problemas de comunicación y sincronización entre procesos.
El principal problema de la programación concurrente
corresponde a no saber en que orden se ejecutan los programas
(en especial los programas que se comunican). Se debe tener
especial cuidado en que este orden no afecte el resultado de los
programas.

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?
 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.

También podría gustarte