Está en la página 1de 12

SISTEMAS

OPERATIVOS
(ALGORITMOS)
NOMBRE DEL PROFESOR: ARTURO RAMOS ESPINOZA
NOMBRE DEL ALUMNO: CHRISTIAN ALONSO DE LA MORA MUOZ
ING. EN COMPUTACIN 0606AM
ALGORITMO DEL BANQUERO
NEGATIVA DE ASIGNACIN DE RECURSOS
Planteado por Edsger Dijkstra.

Existe un banco que tiene una
reserva limitada de dinero a prestar y
clientes con lnea de crdito. Un cliente
pide dinero y no hay garanta de que
haga reposiciones hasta que saque la
cantidad mxima. El banco puede
rechazar el prstamo si hay riesgo de
que no tenga fondos para prestar a otros
clientes.

Vindolo como Sistema Operativo,
los clientes seran los procesos, el dinero
a prestar los recursos y el banquero el
S.O.
Para este algoritmo es importante considerar los
siguientes puntos:
Estado. Es la asignacin actual de los recursos
a los procesos.

Matriz demanda (o mximo necesario). Son
las exigencias mximas de recursos para cada
proceso.

Matriz asignacin. Son las asignaciones
actuales de recursos para cada proceso.

Vector disponible. Cantidad total de recursos
sin asignar a los procesos.

Estado seguro. Es un estado en el que existe
al menos un orden en el que todos los procesos
pueden ejecutar hasta el final sin generar
interbloqueo.
Cuando un proceso realiza una
solicitud de recursos, se supone que se
concede, se actualiza el estado y se
toma una decisin. Si se llega a un
estado seguro, se concede la peticin. Si
se llega a uno inseguro, se rechaza y el
proceso es bloqueado.
EJEMPLO:
A la derecha se tienen 5 procesos, cada uno tiene recursos de tipo A, B y C. En la primer
columna de asignados est la cantidad de recursos que el proceso ha obtenido a lo largo de un
tiempo; en la segunda columna de Mximo Necesario, estn los recursos que tiene que obtener
de cada tipo para comenzar a ser ejecutado. Por ejemplo, el P0 no ha obtenido ningn recurso
del tipo A, slo 1 del tipo B y ninguno del tipo C, y necesita para ejecutarse haber conseguido 7
del A, 5 del B y 3 del C.
En la ltima columna se tienen los recursos disponibles que da el sistema, los que se
pueden utilizar con todos los procesos. Hay 3 del A, 3 del B y 2 del C.
El algoritmo del banquero trata de asegurar qu proceso tiene un estado seguro es decir, se
requiere alcanzar el mximo requerido entre los que estn en Asignados y los que se
encuentren en Disponibles.
Entonces se va al proceso 1 y se trata de hacer lo mismo, sumar Asignados + Disponibles.
All s se tiene un ESTADO SEGURO, A con 5, B con 3 y C con 2, y como se alcanza a
llenar los Mximos, ese proceso se ejecuta.

Una vez que el proceso se ejecut, entonces se procede a SUMAR los recursos asignados
del proceso anterior a los disponibles. Hay que recordar que el proceso al terminar de
ejecutarse libera todos sus recursos, por lo tanto pasan tanto los de tipo A, B y C a
sumarse con los disponibles 3-3-2 y se tendrn nuevos DISPONIBLES que repartir, siendo
ahora stos 5-3-2.
Con estos se pasa al proceso P2 y as sucesivamente.

Ejemplo: El proceso 0 no est en estado seguro.
Si se suman Asignados + Disponibles para cada
uno de los recursos A, B y C, realmente no se
alcanzan los Mximos Requeridos.
ALGORITMO
VENTAJAS
:
No es necesario expulsar y hacer
retroceder procesos como en la
deteccin del interbloqueo.

Es menos restrictivo que la
prevencin.
Se debe conocer la mxima demanda de
recursos por anticipado

La ejecucin de los recursos no debe
estar forzada por la sincronizacin.

Se tiene un nmero fijo de procesos y
recursos.

Los procesos no finalizan mientras
retengan recursos.

Requiere que los procesos salden sus
prstamos en un tiempo finito.

DESVENTAJ
AS:
ALGORITMO DE LA CENA DE LOS
FILOSOFOS
EL PROBLEMA DE LOS FILSOFOS CENANDO O EL PROBLEMA DE LOS FILSOFOS COMENSALES
Planteado por Edsger Dijkstra.
Hay cinco filsofos sentados alrededor de una mesa que pasan su vida cenando y
pensando. Cada uno dispone de un plato de arroz y un palillo a la izquierda de su plato,
pero para comer son necesarios dos palillos y cada filsofo slo puede coger el que est
a su izquierda o el que hay a su derecha. Con un solo palillo en la mano no tienen ms
remedio que esperar hasta que atrapen otro y puedan seguir comiendo.
Si dos filsofos adyacentes intentan tomar el mismo palillo a la vez se produce una
condicin de carrera: ambos compiten por lo mismo pero uno se queda sin comer.
Si todos los filsofos cogen el palillo de su derecha al mismo tiempo, todos se quedarn
esperando eternamente porque alguien debe liberar el palillo que les falta, cosa que
nadie har porque todos se encuentran en la misma situacin (esperando que alguno
deje su palillo). Llegado esto, los filsofos se morirn de hambre. A este bloqueo mutuo
se le denomina interbloqueo.
El objetivo consiste en encontrar un
recurso que permita que los filsofos
nunca se mueran de hambre. Porque:

Dos filsofos contiguos no pueden
comer a la vez (exclusin mutua).
Si un filsofo est comiendo, los
contiguos no pueden hacerlo hasta
que quel termine (sincronizacin).
El filsofo que termina de comer
debe ceder los palillos para su
posterior utilizacin (interbloqueo).
Este sencillo planteamiento resulta muy
til para los que estudian informtica
porque ayuda a pensar en los sistemas que
tienen recursos limitados (en el ejemplo
anterior los palillos son limitados) y en los
clientes (programas y usuarios): hay que
darles servicio (comida) a todos en un
tiempo razonable.

Se trata de que los recursos sean utilizados
de la manera ms eficiente por todos los
procesos implicados. Hay algoritmos para
solucionarlo pero todos los mtodos pasan
por asignar prioridades y/o tiempos
mximos de uso de los recursos.
La finalidad es demostrar que se presentarn problemas ante la falta de
una apropiada sincronizacin y evitar la peligrosa condicin de carrera.
POSIBLES SOLUCIONES
Por turno cclico
Se empieza por un filsofo, que si quiere puede comer y despus pasa su turno al de
la derecha. Cada filsofo slo puede comer en su turno. Problema: si el nmero de
filsofos es muy alto, uno puede morir de hambre antes de su turno.
Varios turnos
Se establecen varios turnos. Para hacerlo ms claro supongamos que cada filsofo que puede comer (es su turno)
tiene una ficha que despus pasa a la derecha. Si por ejemplo hay 7 comensales podemos poner 3 fichas en
posiciones alternas (entre dos de las fichas quedaran dos filsofos).
Se establecen turnos de tiempo fijo. Por ejemplo cada 5 minutos se pasan las fichas (y los turnos) a la derecha.
En base al tiempo que suelen tardar los filsofos en comer y en volver a tener hambre, el tiempo de turno
establecido puede hacer que sea peor solucin que la anterior. Si el tiempo de turno se aproxima al tiempo medio
que tarda un filsofo en comer esta variante da muy buenos resultados. Si adems el tiempo medio de comer es
similar al tiempo medio en volver a tener hambre la solucin se aproxima al ptimo.

Colas de tenedores
Cuando un filsofo quiere comer se pone en la cola de los dos tenedores que necesita. Cuando un tenedor est
libre lo toma. Cuando toma los dos tenedores, come y deja libre los tenedores. Visto desde el otro lado, cada
tenedor slo puede tener dos filsofos en cola, siempre los mismos.
Esto crea el problema comentado de que si todos quieren comer a la vez y todos empiezan tomando el tenedor de
su derecha se bloquea el sistema.
Resolucin de conflictos en colas de tenedores
Cada vez que un filsofo tiene un tenedor espera un tiempo aleatorio para conseguir el segundo tenedor. Si en ese
tiempo no queda libre el segundo tenedor, suelta el que tiene y vuelve a ponerse en cola para sus dos tenedores.
Si un filsofo A suelta un tenedor (porque ha comido o porque ha esperado demasiado tiempo con el tenedor en la
mano) pero todava desea comer, vuelve a ponerse en cola para ese tenedor. Si el filsofo adyacente B est ya en
esa cola de tenedor (tiene hambre) lo toma y si no vuelve a cogerlo A. Es importante que el tiempo de espera sea
aleatorio o se mantendr el bloqueo del sistema.
El portero del comedor
Se indica a los filsofos que abandonen la mesa cuando no tengan hambre y que no regresen a ella hasta que
vuelvan a estar hambrientos (cada filsofo siempre se sienta en la misma silla). La misin del portero es controlar el
nmero de filsofos en la sala, limitando su nmero a n-1, pues si hay n-1 comensales seguro que al menos uno
puede comer con los dos tenedores.

También podría gustarte