Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Problemas Clasicos de Los Procesos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 3

PROBLEMAS CLASICOS DE LOS PROCESOS

PROBLEMAS DE CENA DE FILOSOFOS


El problema de la cena de filósofos es un problema clásico de las ciencias de la
computación propuesto por Edsger Dijkstra en 1965 para representar el problema de la
sincronización de procesos es un sistema operativo.

Cinco filósofos se sientan alrededor de una mesa y pasan su vida cenando y pensando.
Cada filosofo tiene un plato de fideos y un tenedor a la izquierda de su plato. Para comer
los fideos son necesarios dos tenedores y cada filosofo puede tomar las que están a su
izquierda y derecha. Si cualquier filosofo toma un tenedor y el otro está ocupado, se
quedará esperando, con el tenedor en la mano, hasta que pueda tomar el otro tenedor,
para luego empezar a comer.

Si dos filósofos adyacentes intentan tomar el mismo tenedor a una vez/al mismo tiempo
se produce una condición de carrera: ambos compiten por tomar el mismo tenedor y uno
de ellos se queda sin comer.

Solución al Problema:

Lógicamente si son cinco filósofos y hay cinco tenedores el algoritmo debe permitir que la
mayor parte del tiempo haya dos filósofos comiendo y uno pensando.

Si todos los filósofos toman el tenedor que está a su derecha al mismo tiempo, entonces
todos se quedaran esperando eternamente, porque alguien debe liberar el tenedor que
les falta. Nadie la hará porque todos se encuentran en la misma situación (esperando que
alguno deje sus tenedores).

Entonces los filósofos se morirán de hambre, este bloqueo mutuo se denomina


interbloqueo o deadlock.

Resumiendo: El problema consiste en encontrar un algoritmo que permite que los


filósofos nunca se mueran de hambre, y que el comedor este dando de comer
constantemente y de manera lo más eficiente posible.
PROBLEMAS LECTORES Y ESCRITORES

El problema de lectores-escritores es un dilema de programación que se crea cuando


varios lectores-escritores necesitan acceder al mismo recurso. Si se les permitiera el
acceso a todos a la vez, podrían surgir problemas como sobre escrituras, información
incompleta y otros problemas. Por lo tanto, los programadores pueden restringir el acceso
para controlar que sus subprocesos de procesamiento ven el recurso y cuando,
considerando las necesidades del sistema y los usuarios. Hay varias formas de abordar el
problema de lectores-escritores.

Una de las soluciones más comunes implica el uso de semáforos para marcar el estado y
controlar el acceso.

Más de un escritor también podría crear un problema. Los cambios simultáneos en el


mismo contenido pueden sobrescribirlo y crear otros errores. Bajo el problema de
lectores-escritores, los programadores deben decidir si los lectores o los escritores tienen
prioridad a los lectores o escritores o el sistema podría asignar el acceso por orden de
llegada. Esta tercera solución puede evitar largas esperas, pero podrían tener sus propios
problemas.

Solución: la solución de este problema se basa en implementar un algoritmo eficiente en


el manejo de semáforos y memoria compartida que seguidamente descubrimos a lo largo
del programa. Se utilizan funciones necesarias para el manejo de memorias compartidas.
PROBLEMAS DE PELUQUERO O BARBERO DORMIDO

En ciencias de la computación, el problema del barbero durmiente es un problema de


sincronización.

El problema consiste en una barbería que tiene un único sillón de barbero y varias sillas
para esperar. Cuando no hay clientes, el barbero se sienta en una silla y se duerme.
Cuando llega un nuevo cliente este, o bien despierta al barbero o- si el barbero está
afeitando a otro cliente- se sienta en una silla (o se va si todos las sillas están ocupadas por
clientes esperando). El problema consiste en realizar la actividad del barbero sin que
ocurra condiciones de carrera. La solución implica el uso de semáforos y objetos de
exclusión, mutuo para proteger la sección critica.

Un semáforo es una variable protegida (o tipo abstracto de datos) que constituye el


método clásico para restringir o permitir el acceso o recursos de almacenamiento) en un
entorno de multiprocesamiento. Fueron inventados por Edsger y se usaron por primera
vez en el sistema operativo THEOS.

En electrónica y programación concurrente, se produce en programas o circuitos lógicos


que no se han construido adecuadamente para su ejecución simultánea con otros
procesos.

También podría gustarte